模型
理解两级模型结构、类型匹配、凭据端点解析与团队配额语义
模型是 Agent 对话、知识库嵌入与工作流媒体节点共同调用的底层能力。Clouisle 把「供应商连接」与「团队可用范围」拆成两层:管理员维护全局注册表,团队只看到被授权的子集。
两级结构
- 全局模型注册表(管理员):每个条目是一个具体模型,携带
provider、model_id、model_type、base_url、加密保存的api_key、定价与能力标记。provider、model_id、model_type创建后不可修改。 - 团队模型授权(
TeamModel):把全局模型的「团队 + 模型」关系单独建一条记录,携带四项配额、启用开关与优先级,并累计当日/当月用量。
两级分离的意义:同一把上游密钥只登记一次,却可以按团队分别限流、单独停用,撤销某个团队的授权不会影响其他团队。
授权、修改配额、启停授权与撤销授权都只限超级管理员;后端接口直接依赖 get_current_active_superuser,团队管理员提交会收到 403。团队管理员在团队页看到的授权列表是只读的。
模型类型
ModelType 共 9 种:chat、embedding、rerank、tts、stt、audio_generation、text_to_image、text_to_video、decision。
类型决定调用协议,必须与供应商匹配:Agent 用 chat,知识库用 embedding(可选 rerank),媒体节点用 text_to_image / text_to_video,工作流决策节点用 decision。decision 是 TypeSafe 专有的非生成式协议,只有 typesafe 供应商可用;embedding 同样有 15 个供应商的白名单。创建接口只校验这两类组合,其他错配要等到首次调用才报错——完整支持矩阵见供应商、模型类型与模型发现。
凭据与端点
api_key 由后端加密保存,任何读取接口只返回 has_api_key,不回显明文。除 ollama 外所有供应商都必须提供密钥,且 openai(sk- 前缀)与 anthropic(sk-ant- 前缀)会在保存前校验格式。
实际请求地址按「模型 base_url → 类型专属默认端点 → 供应商默认端点」依次解析,因此 volcengine 的 TTS 模型与对话模型会打到不同主机。所有出网地址都必须命中站点设置中的模型端点白名单(按 scheme + host + port 精确匹配,忽略路径),否则保存、测试与运行都会被拒绝。
能力标记
capabilities 里的 function_call、vision、streaming、json_mode 直接决定运行时行为:未开启 function_call 的对话模型不能调用工具,Agent 因此无法使用工具。启用工具前应确认模型真实支持函数调用,而不是只勾选标记。
团队配额
授权可配置每日/月度 Token 与请求限额;null 表示无限制,0 是合法的零限额。判定语义不同:Token 限额按「已用 + 本次预估 > 限额」拒绝,请求限额按「已用 >= 限额」拒绝。用量在下一个自然日/自然月的首次检查时惰性归零。超限返回业务错误 6103(HTTP 429,消息「模型配额已用尽」)。
优先级与默认模型
授权的 priority 默认为 0,只影响同类型模型的排序(数值越大越靠前),不改变可用性。全局注册表另有 is_default:每个 model_type 至多一个默认模型,设置新默认会清除同类型旧标记,未显式指定模型的选择器与知识库嵌入会回退到它。
这篇文章对你有帮助吗?