Skip to content

5. 模型配置

kidkidkid edited this page Aug 8, 2025 · 13 revisions

Coze Loop 开源版通过 Eino 框架支持多种 LLM 模型,本文档介绍支持的模型列表及为 Coze Loop 配置模型的操作步骤。

模型列表

Coze Loop 开源版支持的模型如下:

  • 火山方舟 | Byteplus ModelArk
  • 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 配置模型

在部署 Coze Loop 开源版之前,你需要先填写模型配置文件 conf/default/app/runtime/model_config.yaml,为罗盘设置可用的模型列表。

  • model_config.yaml 配置文件中,每个 id 表示一个模型,编号必须从 0 开始。
  • 模型配置最关键的步骤是设置 model 和 api_key 字段,请确保填写的字段值正确。
  • 不同系列的模型,配置字段不同,各个模型的配置示例可参考配置文件示例,修改其中关键配置即可使用,需要修改的字段使用 Change It 做了标注。

步骤一:修改模型配置文件

此处以 OpenAI火山方舟模型为例,演示配置模型文件的操作步骤,你可以快速配置模型以便安装和测试 Coze Loop 开源版。对于 DeepSeek 等模型,你可以参考模型配置文档填写配置文件。

  1. 进入目录 conf/default/app/runtime/

  2. 编辑文件 model_config.yaml,修改 api_key 和 model 字段。 以下内容表示为 Coze Loop 开源版配置火山方舟的豆包模型、OpenAI 模型。使用以下内容覆盖原文件,然后修改其中的 api_key 和 model,将其替换为你的 OpenAI 和火山方舟模型的配置参数。

    models:
      - id: 1
        name: "doubao"
        frame: "eino"
        protocol: "ark"
        protocol_config:
          base_url: ""         # 默认为https://ark.cn-beijing.volces.com/api/v3/,若使用Byteplus ModelArk,请指定为https://ark.ap-southeast.bytepluses.com/api/v3/
          api_key: "*727e****" # 方舟模型 API Key,中国境内用户参考火山方舟文档 https://www.volcengine.com/docs/82379/1541594;非中国境内的用户可参考 BytePlus ModelArk 文档 https://docs.byteplus.com/en/docs/ModelArk/1361424?utm_source=github&utm_medium=readme&utm_campaign=coze_open_source
          model: "ep-****"    # 方舟模型Endpoint ID,中国境内用户参考火山方舟文档 https://www.volcengine.com/docs/82379/1099522;非中国境内的用户可参考 BytePlus ModelArk 文档 https://docs.byteplus.com/en/docs/ModelArk/1099522?utm_source=github&utm_medium=readme&utm_campaign=coze_open_source
        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"
  3. 保存文件。

步骤二:应用配置

  • 首次部署 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)。

配置文件示例

各模型的完整配置示例及字段说明可参考 conf/default/app/model_config_example。 你也可以参考以下最简配置。模型字段配置基本相同,差异在于 protocal 字段。

Ark 火山方舟

- id: 1                   # Change It
  name: "your model name" # Change It
  frame: "eino"
  protocol: "ark" 
  protocol_config:
    base_url: "" # 默认为https://ark.cn-beijing.volces.com/api/v3/,若使用Byteplus ModelArk,请指定为https://ark.ap-southeast.bytepluses.com/api/v3/
    api_key: ""  # 方舟模型 API Key,中国境内用户参考火山方舟文档 https://www.volcengine.com/docs/82379/1541594;非中国境内的用户可参考 BytePlus ModelArk 文档 https://docs.byteplus.com/id/docs/ModelArk/1361424?utm_source=github&utm_medium=readme&utm_campaign=coze_open_source
    model: ""    # 方舟模型Endpoint ID,中国境内用户参考火山方舟文档 https://www.volcengine.com/docs/82379/1099522;非中国境内的用户可参考 BytePlus ModelArk 文档 https://docs.byteplus.com/id/docs/ModelArk/1099522?utm_source=github&utm_medium=readme&utm_campaign=coze_open_source
  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"

Claude

- 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"

Deepseek

- 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"

Gemini

- 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"

Ollama

- 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"

OpenAI

- 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

如果使用 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"

Qwen

- 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"

Arkbot

- id: 1                   # Change It
  name: "your model name" # Change It
  frame: "eino"
  protocol: "arkbot" 
  protocol_config:
    base_url: "" # 默认为https://ark.cn-beijing.volces.com/api/v3/,若使用Byteplus ModelArk,请指定为https://ark.ap-southeast.bytepluses.com/api/v3/
    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"

Clone this wiki locally