AxonHub 的 API key profile 到底在管什么
Question(问题)
Projects(项目)里能配 Profiles(配置),API Keys(API 密钥)里也能配 API Key Profiles(配置文件管理)。那 API Key Profiles(配置文件管理)这层到底在管什么?
Short Answer(简答)
API Key Profiles(配置文件管理)主要管这把 API Key(API 密钥)的“允许范围”,不是主路由优先级本身。
最重要的几项是:
modelIDs:允许请求哪些逻辑模型名channelIDs / channelTags:允许这把 API Key(API 密钥)走哪些 Channel(渠道)范围modelMappings:是否把一个请求模型名改写成另一个模型名
Facts(事实)
- API Keys(API 密钥)页面里,英文文案是
API Key Profiles,中文文案是配置文件管理。 - Projects(项目)页面里,英文文案是
Profiles,中文文案是配置。 - 数据库里
api_keys表直接有一个profilesJSON 字段;每把 API Key(API 密钥)各自保存自己的 profiles(配置文件管理)。 - 当前数据库里:沉浸式翻译这把 key 已有
轻量文本处理,闪电说这把 key 的profiles还是 null。 - 前端打开 API Key Profiles(配置文件管理)弹窗时,直接读取当前选中 API Key(API 密钥)的
apiKeyDetail.profiles作为初始数据,没有全局 profile 池可下拉复用。 - 代码里
GetActiveProfile()会先取 API Key(API 密钥)当前激活的 profile。 model_access.go会用 profile 里的modelIDs检查请求模型是否允许。select_candidates.go会把 project profile 和 API key profile 的channelIDs / channelTags叠加到候选 Channel(渠道)过滤里。model_mapper.go只在有modelMappings时才会做模型名改写。- 模型 association 的
priority定义在模型设置里,不在 API Key Profiles(配置文件管理)里。
Interpretation(解释)
所以 API Key Profiles(配置文件管理)更像“权限 / 范围 / 规则模板”,而不是“候选上游优先级表”。
你可以把它理解成:
- 模型菜单:决定怎么路由
- API Key Profiles(配置文件管理):决定这把 API Key(API 密钥)允许看到和碰到什么
Related Pages(相关页面)
Open Questions(待解问题)
- 项目 profile 之后是否也值得单独整理一页?
- 后续是否需要给不同用途的 key 统一命名 profile 规范?
Next Checks(后续核查)
- 后续如果开始大量使用不同用途 key,再补一页 project profile 与 API key profile 的对照。