-
Notifications
You must be signed in to change notification settings - Fork 703
5. 模型配置
Coze Loop 开源版通过 Eino 框架支持多种 LLM 模型,本文档介绍支持的模型列表及为 Coze Loop 配置模型的操作步骤。
Coze Loop 开源版支持的模型如下:
- Ark/ArkBot (火山方舟)
- OpenAI
- DeepSeek
- Claude
- Gemini
- Ollama
- Qwen
- Qianfan
在修改模型配置之前,请确保你已经了解了以下注意事项:
- 保证每个模型的 id 全局唯一且大于0,模型上线后请勿修改 id。
- 在删除模型之前,请确保此模型已无线上流量。
- 请确保评估器可使用的模型都具有较强的 function call 能力,否则可能导致评估器无法正常工作。
- 如果使用 Qianfan 模型,除配置文件
model_config.yaml外,还需要在conf/default/app/runtime/model_runtime_config. yaml文件中配置 qianfan_ak 和 qianfan_sk。
在部署 Coze Loop 开源版之前,你需要先填写模型配置文件 conf/default/app/runtime/model_config.yaml,为罗盘设置可用的模型列表。
-
model_config.yaml配置文件中,每个 id 表示一个模型,编号必须从 0 开始。 - 模型配置最关键的步骤是设置 model 和 api_key 字段,请确保填写的字段值正确。
- 不同系列的模型,配置字段不同,各个模型的配置示例可参考配置文件示例,修改其中关键配置即可使用,需要修改的字段使用 Change It 做了标注。
此处以 OpenAI 和火山方舟模型为例,演示配置模型文件的操作步骤,你可以快速配置模型以便安装和测试 Coze Loop 开源版。对于 DeepSeek 等模型,你可以参考模型配置文档填写配置文件。
-
进入目录
conf/default/app/runtime/。 -
编辑文件
model_config.yaml,修改 api_key 和 model 字段。 以下内容表示为 Coze Loop 开源版配置火山方舟的豆包模型、OpenAI 模型。使用以下内容覆盖原文件,然后修改其中的 api_key 和 model,将其替换为你的 OpenAI 和火山方舟模型的配置参数。models: - id: 1 name: "doubao" frame: "eino" protocol: "ark" protocol_config: api_key: "727exxxxxx" # 火山方舟 API Key,获取方式可参考 https://www.volcengine.com/docs/82379/1541594 model: "ep-xxxxxxxx" # 火山方舟模型接入点的 Endpoint ID,获取方式可参考 https://www.volcengine.com/docs/82379/1099522 param_config: param_schemas: - name: "temperature" label: "生成随机性" desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 “Top p” 同时调整。" type: "float" min: "0" max: "1.0" default_val: "0.7" - name: "max_tokens" label: "最大回复长度" desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。" type: "int" min: "1" max: "4096" default_val: "2048" - name: "top_p" label: "Top P" desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。" type: "float" # min: "0.001" max: "1.0" default_val: "0.7" - id: 2 name: "openapi" frame: "eino" protocol: "openai" protocol_config: api_key: "***" # OpenAI API Key model: "***" # OpenAI 模型 ID param_config: param_schemas: - name: "temperature" label: "生成随机性" desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 “Top p” 同时调整。" type: "float" min: "0" max: "1.0" default_val: "0.7" - name: "max_tokens" label: "最大回复长度" desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。" type: "int" min: "1" max: "4096" default_val: "2048" - name: "top_p" label: "Top P" desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。" type: "float" # min: "0.001" max: "1.0" default_val: "0.7"
-
保存文件。
-
首次部署 Coze Loop 开源版: 修改配置文件之后,直接启动服务即可,详细操作步骤可参考快速开始。
# 启动服务,默认为开发模式 docker compose up --build -
部署后修改模型配置: Coze Loop 开源版支持自动监听模型配置文件。所以修改模型配置文件后无需执行任何操作即可生效。 部分场景下文件监听可能失效,例如 macOS 中文件挂载监听可能会失败。如果发现模型列表未更新,可以执行以下命令手动重启服务,无需重新构建镜像。
# 重启服务,并保持RUN_MODE一致 docker compose restart app
模型具体代码结构定义见backend/modules/llm/domain/entity/manage.go。以下为完整的模型配置字段,其中标明了各字段的含义以及是否必选。
| 参数 | 是否必选 | 示例 | 参数描述 |
|---|---|---|---|
| id | 必选 | 1 | 唯一标识,需大于 0。 |
| name | 必选 | GPT-4 多模态模型 | 模型名称(如 "your-model-name")。 |
| desc | 可选 | 支持图像理解和文本生成的智能助手 | 模型描述(如 “多模态对话模型”)。 |
| ability.function_call | 可选 | true | 启用函数调用能力(默认 false)。 |
| ability.multi_modal | 可选 | true | 启用多模态能力(默认 false),需同时配置ability.multi_modal.image。 |
| ability.multi_modal.image.url_enabled | 可选 | true | 允许通过 URL 处理图像(需先启用multi_modal)。 |
| ability.multi_modal.image.binary_enabled | 可选 | true | 允许通过二进制数据处理图像(需先启用multi_modal)。 |
| ability.multi_modal.image.max_image_size | 可选 | 20 | 图像最大大小(MB),0 表示不限制。 |
| ability.multi_modal.image.max_image_count | 可选 | 5 | 图像最大数量,0 表示不限制。 |
| frame | 必选 | eino | 固定值 "eino"。 |
| protocol | 必选 | openai | 模型协议类型,可选:ark/openai/deepseek/qwen/qianfan 等。 |
| protocol_config.api_key | 必选 | sk-abc1234567890xyz | 模型 API 密钥(如 OpenAI 的 sk-xxx)。 |
| protocol_config.model | 必选 | gpt-4-1106-preview | 调用的模型名称(如 "gpt-4")。 |
| protocol_config.base_url | 可选 | https://api.openai.com/v1 | 模型 API 基础 URL,不填则使用默认值。 |
| protocol_config_ark.region | 可选 | cn-east-2 | 仅 ark 协议:区域配置(如 "cn-north-1")。 |
| protocol_config_ark.access_key | 可选 | ark-access-key-123 | 仅 ark 协议:访问密钥。 |
| protocol_config_ark.secret_key | 可选 | ark-secret-key-456 | 仅 ark 协议:密钥。 |
| protocol_config_open_ai.by_azure | 可选 | true | 仅 openai 协议:是否使用 Azure 版(默认 false)。 |
| protocol_config_claude.by_bedrock | 可选 | true | 仅 claude 协议:是否使用 Bedrock 版(默认 false)。 |
| scenario_configs.default.scenario | 可选 | default | 默认场景标识,未匹配场景时使用此配置。 |
| scenario_configs.default.quota.qpm | 可选 | 60 | 默认场景 QPM 限制(0 表示不限)。 |
| scenario_configs.default.unavailable | 可选 | false | 默认场景模型可见性(true 表示不可见,默认 false)。 |
| scenario_configs.evaluator.unavailable | 可选 | true | 评估器场景:若模型不支持函数调用,需设为 true。 |
| param_config.param_schemas.name | 必选 | temperature | 参数名称(如 "temperature")。 |
| param_config.param_schemas.label | 必选 | 生成随机性 | 前端显示名称(如 “生成随机性”)。 |
| param_config.param_schemas.desc | 必选 | 值越高,输出越多样创新 | 前端描述(如 “调高使输出更多样”)。 |
| param_config.param_schemas.type | 必选 | float | 参数类型(float/int/bool/string)。 |
| param_config.param_schemas.min | 必选 | 0 | 参数最小值(如 temperature 的 0)。 |
| param_config.param_schemas.max | 必选 | 1.0 | 参数最大值(如 max_tokens 的 4096)。 |
| param_config.param_schemas.default_val | 必选 | 0.7 | 参数默认值(如 top_p 的 0.7)。 |
各模型的完整配置示例及字段说明可参考 backend/modules/llm/infra/config/model_repo_example。
你也可以参考以下最简配置。模型字段配置基本相同,差异在于 protocal 字段。
- id: 1 # Change It
name: "your model name" # Change It
frame: "eino"
protocol: "ark"
protocol_config:
api_key: "" # Change It。修改为你已申请的 API Key
model: "" # Change It。修改为你已开通的模型 ID
param_config: # 一般无需修改,决定了前端可调的参数有哪些,可调范围和默认值是多少
param_schemas:
- name: "temperature"
label: "生成随机性"
desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 “Top p” 同时调整。"
type: "float"
min: "0"
max: "1.0"
default_val: "0.7"
- name: "max_tokens"
label: "最大回复长度"
desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。"
type: "int"
min: "1"
max: "4096"
default_val: "2048"
- name: "top_p"
label: "Top P"
desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。"
type: "float" #
min: "0.001"
max: "1.0"
default_val: "0.7"- id: 1 # Change It
name: "your model name" # Change It
frame: "eino"
protocol: "claude"
protocol_config:
api_key: "" # Change It。修改为你已申请的 API Key
model: "" # Change It。修改为你已开通的模型 ID
param_config: #一般无需修改,决定了前端可调的参数有哪些,可调范围和默认值是多少
param_schemas:
- name: "temperature"
label: "生成随机性"
desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 “Top p” 同时调整。"
type: "float"
min: "0"
max: "1.0"
default_val: "0.7"
- name: "max_tokens"
label: "最大回复长度"
desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。"
type: "int"
min: "1"
max: "4096"
default_val: "2048"
- name: "top_p"
label: "Top P"
desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。"
type: "float" #
min: "0.001"
max: "1.0"
default_val: "0.7"- id: 1 # Change It
name: "your model name" # Change It
frame: "eino"
protocol: "deepseek"
protocol_config:
api_key: "" # Change It。修改为你已申请的 API Key
model: "" # Change It。修改为你已开通的模型 ID
param_config: #一般无需修改,决定了前端可调的参数有哪些,可调范围和默认值是多少
param_schemas:
- name: "temperature"
label: "生成随机性"
desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 “Top p” 同时调整。"
type: "float"
min: "0"
max: "1.0"
default_val: "0.7"
- name: "max_tokens"
label: "最大回复长度"
desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。"
type: "int"
min: "1"
max: "4096"
default_val: "2048"
- name: "top_p"
label: "Top P"
desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。"
type: "float" #
min: "0.001"
max: "1.0"
default_val: "0.7"- id: 1 # Change It
name: "your model name" # Change It
frame: "eino"
protocol: "gemini"
protocol_config:
api_key: "" # Change It。修改为你已申请的 API Key
model: "" # Change It。修改为你已开通的模型 ID
param_config: #一般无需修改,决定了前端可调的参数有哪些,可调范围和默认值是多少
param_schemas:
- name: "temperature"
label: "生成随机性"
desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 “Top p” 同时调整。"
type: "float"
min: "0"
max: "1.0"
default_val: "0.7"
- name: "max_tokens"
label: "最大回复长度"
desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。"
type: "int"
min: "1"
max: "4096"
default_val: "2048"
- name: "top_p"
label: "Top P"
desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。"
type: "float" #
min: "0.001"
max: "1.0"
default_val: "0.7"- id: 1 # Change It
name: "your model name" # Change It
frame: "eino"
protocol: "ollama"
protocol_config:
base_url: "" # Change It。修改为模型访问的URL。
api_key: "" # Change It。修改为你已申请的 API Key
model: "" # Change It。修改为你已开通的模型 ID
param_config: #一般无需修改,决定了前端可调的参数有哪些,可调范围和默认值是多少
param_schemas:
- name: "temperature"
label: "生成随机性"
desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 “Top p” 同时调整。"
type: "float"
min: "0"
max: "1.0"
default_val: "0.7"
- name: "max_tokens"
label: "最大回复长度"
desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。"
type: "int"
min: "1"
max: "4096"
default_val: "2048"
- name: "top_p"
label: "Top P"
desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。"
type: "float" #
min: "0.001"
max: "1.0"
default_val: "0.7"- id: 1 # Change It
name: "your model name" # Change It
frame: "eino"
protocol: "openai"
protocol_config:
api_key: "" # Change It。修改为你已申请的 API Key
model: "" # Change It。修改为你已开通的模型 ID
param_config: #一般无需修改,决定了前端可调的参数有哪些,可调范围和默认值是多少
param_schemas:
- name: "temperature"
label: "生成随机性"
desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 “Top p” 同时调整。"
type: "float"
min: "0"
max: "1.0"
default_val: "0.7"
- name: "max_tokens"
label: "最大回复长度"
desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。"
type: "int"
min: "1"
max: "4096"
default_val: "2048"
- name: "top_p"
label: "Top P"
desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。"
type: "float" #
min: "0.001"
max: "1.0"
default_val: "0.7"如果使用 Qianfan 模型,除配置文件model_config.yaml外,还需要在backend/modules/llm/infra/config/runtime_config.yaml 文件中配置 qianfan_ak 和 qianfan_sk。
- id: 1 # Change It
name: "your model name" # Change It
frame: "eino"
protocol: "qianfan"
protocol_config:
model: "" # Change It。修改为你已开通的模型 ID
param_config: #一般无需修改,决定了前端可调的参数有哪些,可调范围和默认值是多少
param_schemas:
- name: "temperature"
label: "生成随机性"
desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 “Top p” 同时调整。"
type: "float"
min: "0"
max: "1.0"
default_val: "0.7"
- name: "max_tokens"
label: "最大回复长度"
desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。"
type: "int"
min: "1"
max: "4096"
default_val: "2048"
- name: "top_p"
label: "Top P"
desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。"
type: "float" #
min: "0.001"
max: "1.0"
default_val: "0.7"- id: 1 # Change It
name: "your model name" # Change It
frame: "eino"
protocol: "qwen"
protocol_config:
api_key: "" # Change It。修改为你已申请的 API Key
model: "" # Change It。修改为你已开通的模型 ID
param_config: #一般无需修改,决定了前端可调的参数有哪些,可调范围和默认值是多少
param_schemas:
- name: "temperature"
label: "生成随机性"
desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 “Top p” 同时调整。"
type: "float"
min: "0"
max: "1.0"
default_val: "0.7"
- name: "max_tokens"
label: "最大回复长度"
desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。"
type: "int"
min: "1"
max: "4096"
default_val: "2048"
- name: "top_p"
label: "Top P"
desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。"
type: "float" #
min: "0.001"
max: "1.0"
default_val: "0.7"- id: 1 # Change It
name: "your model name" # Change It
frame: "eino"
protocol: "arkbot"
protocol_config:
api_key: "" # Change It。修改为你已申请的 API Key
model: "" # Change It。修改为你已开通的模型 ID
param_config: #一般无需修改,决定了前端可调的参数有哪些,可调范围和默认值是多少
param_schemas:
- name: "temperature"
label: "生成随机性"
desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 “Top p” 同时调整。"
type: "float"
min: "0"
max: "1.0"
default_val: "0.7"
- name: "max_tokens"
label: "最大回复长度"
desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。"
type: "int"
min: "1"
max: "4096"
default_val: "2048"
- name: "top_p"
label: "Top P"
desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。"
type: "float" #
min: "0.001"
max: "1.0"
default_val: "0.7"