coze开源版(宝塔)

coze已经开源,本着大佬不用教,小白从简的原则,这里只教一下宝塔面板上使用的方法。

环境要求

2核4G

提前安装 Docker、Docker Compose,并启动 Docker 服务

国内服务器自行解决镜像源的问题


  1. 宝塔面板进入文件界面,选择想要放置项目的目录,这里以/www为例

  2. 进入/www文件夹,点击菜单栏里的终端,输入以下命令克隆代码

    git clone https://github.com/coze-dev/coze-studio.git

    执行完毕后长这样:

    然后关闭终端窗口

  3. 刷新一下目录进入coze-studio文件夹

  1. 然后进入/www/coze-studio/backend/conf/model 文件夹,第一次进入长这样:

  1. 然后点新建空白文本,命名为模型名称.yaml

openai-gpt-4o.yaml

  1. 双击打开文件,填入下面的内容(需要将秘钥替换成自己的实际秘钥),以下划线部分为必填,点击可查看说明

更多字段说明参考官方说明文档

id: 2001
name: GPT-4o
icon_uri: default_icon/openai_v2.png
icon_url: ""
description:
    zh: gpt 模型简介
    en: Multi-modal, 320ms, 88.7% MMLU, excels in education, customer support, health, and entertainment.
default_parameters:
    - name: temperature
      label:
        zh: 生成随机性
        en: Temperature
      desc:
        zh: '- **temperature**: 调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与“Top p”同时调整。'
        en: '**Temperature**:\n\n- When you increase this value, the model outputs more diverse and innovative content; when you decrease it, the model outputs less diverse content that strictly follows the given instructions.\n- It is recommended not to adjust this value with \"Top p\" at the same time.'
      type: float
      min: "0"
      max: "1"
      default_val:
        balance: "0.8"
        creative: "1"
        default_val: "1.0"
        precise: "0.3"
      precision: 1
      options: []
      style:
        widget: slider
        label:
            zh: 生成多样性
            en: Generation diversity
    - name: max_tokens
      label:
        zh: 最大回复长度
        en: Response max length
      desc:
        zh: 控制模型输出的Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。
        en: You can specify the maximum length of the tokens output through this value. Typically, 100 tokens are approximately equal to 150 Chinese characters.
      type: int
      min: "1"
      max: "4096"
      default_val:
        default_val: "4096"
      options: []
      style:
        widget: slider
        label:
            zh: 输入及输出设置
            en: Input and output settings
    - name: top_p
      label:
        zh: Top P
        en: Top P
      desc:
        zh: '- **Top p 为累计概率**: 模型在生成输出时会从概率最高的词汇开始选择,直到这些词汇的总概率累积达到Top p 值。这样可以限制模型只选择这些高概率的词汇,从而控制输出内容的多样性。建议不要与“生成随机性”同时调整。'
        en: '**Top P**:\n\n- An alternative to sampling with temperature, where only tokens within the top p probability mass are considered. For example, 0.1 means only the top 10% probability mass tokens are considered.\n- We recommend altering this or temperature, but not both.'
      type: float
      min: "0"
      max: "1"
      default_val:
        default_val: "0.7"
      precision: 2
      options: []
      style:
        widget: slider
        label:
            zh: 生成多样性
            en: Generation diversity
    - name: frequency_penalty
      label:
        zh: 重复语句惩罚
        en: Frequency penalty
      desc:
        zh: '- **frequency penalty**: 当该值为正时,会阻止模型频繁使用相同的词汇和短语,从而增加输出内容的多样性。'
        en: '**Frequency Penalty**: When positive, it discourages the model from repeating the same words and phrases, thereby increasing the diversity of the output.'
      type: float
      min: "-2"
      max: "2"
      default_val:
        default_val: "0"
      precision: 2
      options: []
      style:
        widget: slider
        label:
            zh: 生成多样性
            en: Generation diversity
    - name: presence_penalty
      label:
        zh: 重复主题惩罚
        en: Presence penalty
      desc:
        zh: '- **presence penalty**: 当该值为正时,会阻止模型频繁讨论相同的主题,从而增加输出内容的多样性'
        en: '**Presence Penalty**: When positive, it prevents the model from discussing the same topics repeatedly, thereby increasing the diversity of the output.'
      type: float
      min: "-2"
      max: "2"
      default_val:
        default_val: "0"
      precision: 2
      options: []
      style:
        widget: slider
        label:
            zh: 生成多样性
            en: Generation diversity
    - name: response_format
      label:
        zh: 输出格式
        en: Response format
      desc:
        zh: '- **文本**: 使用普通文本格式回复\n- **Markdown**: 将引导模型使用Markdown格式输出回复\n- **JSON**: 将引导模型使用JSON格式输出'
        en: '**Response Format**:\n\n- **Text**: Replies in plain text format\n- **Markdown**: Uses Markdown format for replies\n- **JSON**: Uses JSON format for replies'
      type: int
      min: ""
      max: ""
      default_val:
        default_val: "0"
      options:
        - label: Text
          value: "0"
        - label: Markdown
          value: "1"
        - label: JSON
          value: "2"
      style:
        widget: radio_buttons
        label:
            zh: 输入及输出设置
            en: Input and output settings
meta:


    capability:
        function_call: true
        input_modal:
            - text
            - image
        input_tokens: 128000
        json_mode: false
        max_tokens: 128000
        output_modal:
            - text
        output_tokens: 16384
        prefix_caching: false
        reasoning: false
        prefill_response: false
    conn_config:
        base_url: "https://one.ocoolai.com/v1"

        timeout: 0s

        temperature: 0.7
        frequency_penalty: 0
        presence_penalty: 0
        max_tokens: 4096
        top_p: 1
        top_k: 0
        stop: []
        openai: null
        claude: null
        ark: null
        deepseek: null
        qwen: null
        gemini: null
        custom: {}
    status: 0

  1. 编辑完成后保存文档,每个模型一个yaml文件,想要多个模型参考上述步骤重复添加

  1. 回到项目目录,点击docker文件夹进入,点击.env.example文件,原地复制粘贴,在弹窗里将文件名重命名为.env ,然后点击确认

  1. 双击.env 文件,找到#openai embedding 部分

  • 将base URL改为https://one.ocoolai.com/v1

  • embedding model改为text-embedding-3-large(或其他嵌入模型)

  • API Key填成你自己的秘钥

  • by azure改为false

  • 向量维度(DIMS)填3072 -说明这个是模型支持的向量维度,每个模型的不一样,需要自行查询

  • request dims小于向量维度即可 -这个是期望返回的向量维度,建议一致,都填3072

然后点击保存并关闭窗口

  1. docker-compose.yaml文件需要说明一下,如果你的宝塔面板有安装过MySQL和Redis建议将端口映射改一下防止冲突,全新安装可以忽略,当然也建议修改一下,防止以后跟其他服务端口冲突。

  • MySQL将3306:3306改为3307或者其他差不多的数字3306

  • Redis也一个道理,改成其他数字:6479

  1. 然后保存,在docker文件夹内点击顶栏终端,执行docker-compose up -d

  2. 等全部执行完成后,访问服务器IP地址:8888 ,输入一个邮箱地址和密码点击注册即可

最后更新于

这有帮助吗?