-
Notifications
You must be signed in to change notification settings - Fork 2.3k
5. 基础组件配置
部署 Coze Studio 开源版之后,如需使用图片上传功能,或知识库相关功能,应参考本文档配置功能相关的基础组件。这些组件通常依赖火山引擎等第三方服务,配置组件时需要填写第三方服务的账号密钥等鉴权配置。
在多模态对话场景,往往需要在对话中上传图片、文件等信息,例如在智能体调试区域中发送图片消息:
此功能由上传组件提供。Coze Studio 上传组件目前支持以下三种,你可以任选一种作为上传组件。
- (默认)minio:图片和文件自动上传至本地主机的 minio 服务,通过指定端口号可访问。但本地主机必须配置公网域名,否则已上传的图片和文件只能生成内网访问链接,无法被大模型读取和识别。
- 火山引擎对象存储 TOS:图片和文件自动上传至指定的火山引擎对象存储 TOS 服务,并生成一个公网可访问的 URL。如果选择 TOS,必须先开通 TOS 并在 Coze Studio 中配置火山密钥。
- 火山引擎 ImageX:图片和文件自动上传至指定的火山引擎 ImageX,并生成一个公网可访问的 URL。如果选择 ImageX,必须先开通 ImageX 并在 Coze Studio 中配置火山密钥。
上传组件的配置方式如下:
-
设置上传组件类型。 在 docker 目录中打开
.env
文件,配置项 "FILE_UPLOAD_COMPONENT_TYPE" 的值表示上传组件类型。-
storage(默认):表示使用
STORAGE_TYPE
配置的存储组件,STORAGE_TYPE
默认为 minio,也支持配置为 tos。 - imagex:表示使用火山 ImageX 组件。
# This Upload component used in Agent / workflow File/Image With LLM , support the component of imagex / storage # default: storage, use the settings of storage component # if imagex, you must finish the configuration of <VolcEngine ImageX> export FILE_UPLOAD_COMPONENT_TYPE="storage"
-
storage(默认):表示使用
-
为上传组件添加秘钥等配置。 同样在 docker 目录的
.env
文件中,根据组件类型填写以下配置。组件类型 配置方式 示例 minio
(默认)1. 在 Coze studio 项目的 docker/.env
文件中,FILE_UPLOAD_COMPONENT_TYPE 设置为 storage。
2. 在 Storage component 区域,设置 STORAGE_TYPE 为 minio。
3. 在 MiniO 区域,维持默认配置即可。
如果你选择在火山引擎等公共云上部署 Coze Studio,则需要提前为你的云服务器开放 8888、8889 端口的访问权限。
tos 1. 开通火山引擎 TOS 产品。
2. 在 Coze studio 项目的docker/.env
文件中,FILE_UPLOAD_COMPONENT_TYPE 设置为 storage。
3. 在 Storage component 区域,设置 STORAGE_TYPE 为 tos。
4. 在 TOS 区域,填写以下参数:
* TOS_ACCESS_KEY:火山引擎密钥 AK。获取方式可参考获取火山引擎 API 密钥。
* TOS_SECRET_KEY:火山引擎密钥 SK。获取方式可参考获取火山引擎 API 密钥。
* TOS_ENDPOINT:TOS 服务的 Endpoint,获取方式可参考地域和访问域名。
* TOS_REGION:TOS 服务所在的地域,获取方式可参考地域和访问域名。
imagex 1. 开通火山引擎 veImageX 产品,并创建素材托管服务。操作步骤可参考火山 veImageX 官方文档。注意创建素材托管服务时需要填写域名,建议提前获取一个可用的公开域名。
2. 在 Coze studio 项目的docker/.env
文件中,FILE_UPLOAD_COMPONENT_TYPE 设置为 imagex。
3. 在 VolcEngine ImageX 区域,填写以下参数:
* VE_IMAGEX_AK:火山引擎密钥 AK。获取方式可参考获取火山引擎 API 密钥。
* VE_IMAGEX_SK:火山引擎密钥 SK。获取方式可参考获取火山引擎 API 密钥。
* VE_IMAGEX_SERVER_ID:火山引擎 veImageX 产品服务管理页面展示的服务 ID。
* VE_IMAGEX_DOMAIN:创建服务时指定的域名。
* VE_IMAGEX_TEMPLATE:图片处理配置的模板名称。
-
执行以下命令重启服务,使以上配置生效。
docker compose --profile '*' up -d --force-recreate --no-deps coze-server
文档解析是信息入库的必要前置环节,也是整个流程的起点。文档解析器能够从 PDF、DOCX 等多种类型的文档中抽取文本、表格等核心内容,这些内容在经过后续组件处理后,最终被存储到知识库中。 Coze Studio 支持用户通过修改配置定制文档解析器。目前,支持的文档解析器类型如下:
- 内置文档解析器:提供基本的文档解析能力,支持处理 PDF、TXT、Markdown、DOCX、CSV、XLSX、JSON 等多种类型文件。Coze Studio 默认使用内置文档解析器,无需调整配置。
- PaddleOCR 文档解析器:对于 PDF 文件,采用 PaddleOCR 的 PP-StructureV3 版面解析方案,提供更强大的文档解析能力,不仅可以提取文本、表格、公式、图片、印章等版面元素,还可以保持版面的原始阅读顺序,尤其适合处理扫描件。对于其他类型的文件,目前与内置文档解析器的功能相同。
如果希望使用 PaddleOCR 文档解析器,可参考如下步骤将文档解析器由内置文档解析器改为 PaddleOCR:
-
参考 PaddleOCR 安装文档 安装飞桨框架与 PaddleOCR 推理包。 为了取得最佳精度,PP-StructureV3 的默认配置需要使用较多计算资源。建议准备 16 GB 以上显存的 GPU,并安装 GPU 版本的飞桨框架。如果希望使用更少的计算资源,例如用 CPU 部署服务,可参考后续步骤说明调整产线配置。
-
执行以下命令,安装服务化部署所需依赖:
paddlex --install serving
-
执行如下命令,以默认配置运行 PP-StructureV3 产线推理服务:
paddlex --serve --pipeline PP-StructureV3 --port <端口号>
如果希望调整产线配置(例如希望更换轻量级模型以使用更少的计算资源),可参考如下步骤:
- 通过
paddlex --get_pipeline_config PP-StructureV3
获取默认产线配置文件。 - 根据需要修改产线配置文件。例如:
- 关闭不需要用到的功能,如设置
use_formula_recognition
为False
以禁用公式识别。 - 使用轻量级的模型,如将 OCR 模型替换为
mobile
版本、换用轻量的公式识别模型 PP-FormulaNet-S 等。
- 关闭不需要用到的功能,如设置
- 以修改后的配置运行产线推理服务:
paddlex --serve --pipeline <配置文件路径> --port <端口号>
。 关于 PaddleOCR 产线的更多说明,可以参考 PP-StructureV3 产线使用文档 以及 PaddleOCR 服务化部署文档。 - 在本地项目中填写文档解析器配置。
- 进入
docker
目录。 - 打开文件
.env
,将PARSER_TYPE
设置为paddleocr
,将PADDLEOCR_STRUCTURE_API_URL
设置为上一步骤启动的 PP-StructureV3 产线推理服务的 API URL,例如http://localhost:9999/layout-parsing
。 - 保存配置。
- 进入
完成配置修改后,执行以下命令重启 Coze Studio 后端服务。
docker compose --profile '*' up -d --force-recreate --no-deps coze-server
在创建知识库时,如果上传的本地文件是扫描件,往往需要开启 ORC 功能来识别图片或文件中的文字信息。配置示例如下:
在 Coze Studio 开源版中开启 OCR 功能前,应先配置提供 OCR 能力的底层服务。目前,支持如下类型的底层 OCR 服务,对接时任选其一即可:
- 火山引擎 OCR:火山引擎提供的商业化产品 OCR 产品。
- PaddleOCR:百度飞桨推出的开源 OCR 方案,默认使用最新的 PP-OCRv5 模型。
如果选择火山引擎 OCR 方案,需要先在火山开通 OCR 产品,并在本地项目中填写 ORC 配置,将 OCR 组件的 AK、SK 配置为火山引擎的密钥对。详细操作步骤如下:
-
开通火山引擎通用文字识别产品。 你可以根据页面提示完成开通。开通产品后,通用文字识别产品页面显示接入状态为正式开通,示例如下:
-
获取火山账号的 AK 和 SK,后续步骤中需要使用。 获取方式可参考火山官方文档。
-
在本地项目中填写 ORC 配置。
- 进入目录
docker/
目录。 - 打开文件
.env
,修改 VE_OCR_AK、VE_OCR_SK 配置项。- VE_OCR_AK:配置为步骤二中获取的火山账号 AK。
- VE_OCR_SK:配置为步骤二中获取的火山账号 SK。
- 保存配置。
# Settings for OCR # If you want to use the OCR-related functions in the knowledge base feature,You need to set up the OCR configuration. # Currently, Coze Studio has built-in Volcano OCR. # ocr_type: default type `ve` export OCR_TYPE="ve" # ve ocr export VE_OCR_AK="" export VE_OCR_SK=""
- 进入目录
-
执行以下命令重启服务。
docker compose --profile '*' up -d --force-recreate --no-deps coze-server
如果希望使用 PaddleOCR 方案,可参考如下步骤:
-
参考 PaddleOCR 安装文档 安装飞桨框架与 PaddleOCR 推理包。为了取得最佳精度,默认的 PP-OCRv5 配置需要使用较多计算资源。建议准备 8 GB 以上显存的 GPU,并安装 GPU 版本的飞桨框架。如果希望使用更少的计算资源,例如用 CPU 部署服务,可参考后续步骤说明调整产线配置。
-
执行以下命令,安装服务化部署所需依赖:
paddlex --install serving
-
执行如下命令,以默认配置运行通用 OCR 产线推理服务:
paddlex --serve --pipeline OCR --port <端口号>
如果希望调整产线配置(例如,希望更换轻量级模型以使用更少的计算资源),可参考如下步骤:
- 通过
paddlex --get_pipeline_config OCR
获取默认产线配置文件。 - 根据需要修改产线配置文件。
例如使用轻量级的模型,如将文本检测模型(
SubModules.TextDetection.model_name
)与文本识别模型(SubModules.TextRecognition.model_name
)分别替换为PP-OCRv5_mobile_det
和PP-OCRv5_mobile_rec
。 - 以修改后的配置运行产线推理服务:
paddlex --serve --pipeline <配置文件路径> --port <端口号>
。 关于 PaddleOCR 产线的更多说明,可以参考 通用 OCR 产线使用文档 以及 PaddleOCR 服务化部署文档。 - 在本地项目中填写 OCR 配置。
- 进入
docker
目录。 - 打开文件
.env
,将OCR_TYPE
设置为paddleocr
,将PADDLEOCR_OCR_API_URL
设置为上一步骤启动的通用 OCR 产线推理服务的 API URL,例如http://localhost:8999/ocr
。 - 保存配置。
- 进入
- 完成配置修改后,执行以下命令重启 Coze Studio 后端服务。
docker compose --profile '*' up -d --force-recreate --no-deps coze-server
Coze Studio 知识库功能依赖向量化存储组件,目前支持以下两种组件:
- milvus:开源的高性能向量数据库,专注于解决大规模向量相似度搜索(如图片、视频、文本的语义检索)问题。milvus 未内置 embedding 模型,需要另外添加本地部署的 embedding 模型。
- vikingdb:火山引擎提供的新一代分布式向量数据库,专为超大规模向量数据管理与检索设计。vikingdb 内置多个可选的向量化模型,目前可选的 embedding 模型列表可参考VikingDB 模型列表,你也可以选择本地部署的 embedding 模型。
配置流程如下:
-
进入
docker/
目录,打开文件.env
,找到 vectorstore 配置模块。 以下部分为 vectorstore 配置模块。# Settings for VectorStore # VectorStore type: milvus / vikingdb # If you want to use vikingdb, you need to set up the vikingdb configuration. export VECTOR_STORE_TYPE="milvus" # milvus vector store export MILVUS_ADDR="localhost:19530" # vikingdb vector store for Volcengine export VIKING_DB_HOST="" export VIKING_DB_REGION="" export VIKING_DB_AK="" export VIKING_DB_SK="" export VIKING_DB_SCHEME="" export VIKING_DB_MODEL_NAME="" # if vikingdb model name is not set, you need to set Embedding settings
-
选择你需要的向量库类型,修改对应配置项。
- milvus:填写以下配置
- VECTOR_STORE_TYPE 设置为
milvus
。 - MILVUS_ADDR 设置为
localhost:19530
。
- VECTOR_STORE_TYPE 设置为
- vikingdb:开通火山引擎方舟平台的知识库模块,获取火山账号的密钥(AK、SK),并填写以下配置
- VIKING_DB_HOST:方舟知识库的域名。详细说明可参考火山官方文档。
- VIKING_DB_REGION:方舟知识库所在地域,华北:cn-beijing,华东:cn-shanghai,柔佛:ap-southeast-1。
- VIKING_DB_AK:火山引擎账号 AK。获取方式可参考火山官方文档。
- VIKING_DB_SK:火山引擎账号 SK。获取方式可参考火山官方文档。
- VIKING_DB_SCHEME:http 或 https。
- VIKING_DB_MODEL_NAME:可选的 embedding 模型列表可参考 VikingDB 模型列表。如需选用本地部署的 embedding 模型,此处留空,并填写 Embedding 模型部分的配置。详细说明可参考下文向量化模型(Embedding)。
- milvus:填写以下配置
-
保存文件。
-
执行以下命令重启服务。
docker compose --profile '*' up -d --force-recreate --no-deps coze-server
Coze Studio 开源版支持自定义设置知识库向量化依赖的 Embedding 模型,使知识库的向量化环节效果更符合指定场景的业务需求。
- 如果向量化存储模块使用 milvus,则必须参考本文档设置 Embedding 模型。
- VikingDB 向量库自带 Embedding 功能,如果向量化存储模块使用 milvus,则可以自行选择使用预置的 VikingDB 模型或者使用 OpenAI 或其他模型。
Coze Studio 支持四种方式接入向量化模型:
接入方式 | 说明 |
---|---|
openai | OpenAPI 向量模型协议,兼容 OpenAPI 协议的模型均可以使用该 protocol。请注意: * base_url 通常以 /v1 结尾,不包含 /embeddings 。 * OPENAI_EMBEDDING_REQUEST_DIMS 为请求 API 时传递的 dimensions,用于要求输出指定维度的向量。部分模型不支持该字段调用会报错,此时请置空该字段。 |
ark | 火山方舟向量模型协议。 |
ollama | ollama 向量模型协议。 |
http | 专用协议,要求用户对部署的模型服务自行封装,需要同时输出稠密+稀疏向量,具体请参考源代码。 |
配置流程如下:
-
进入
docker/
目录,打开文件:.env
,找到 Embedding 配置模块。 -
选择向量化模型类型,并填写对应的配置参数。其中 BASE_URL 的填写可参考【模型配置】-【配置参考】小节 详细配置如下:
# Settings for Embedding # The Embedding model relied on by knowledge base vectorization does not need to be configured # if the vector database comes with built-in Embedding functionality (such as VikingDB). Currently, # Coze Studio supports four access methods: openai, ark, ollama, and custom http. Users can simply choose one of them when using # embedding type: openai / ark / ollama / http export EMBEDDING_TYPE="ark" export EMBEDDING_MAX_BATCH_SIZE=100 # openai embedding export OPENAI_EMBEDDING_BASE_URL="" # (string, required) OpenAI embedding base_url export OPENAI_EMBEDDING_MODEL="" # (string, required) OpenAI embedding model export OPENAI_EMBEDDING_API_KEY="" # (string, required) OpenAI embedding api_key export OPENAI_EMBEDDING_BY_AZURE=false # (bool, optional) OpenAI embedding by_azure export OPENAI_EMBEDDING_API_VERSION="" # (string, optional) OpenAI embedding azure api version export OPENAI_EMBEDDING_DIMS=1024 # (int, required) OpenAI embedding dimensions export OPENAI_EMBEDDING_REQUEST_DIMS=1024 # (int, optional) OpenAI embedding dimensions in requests, need to be empty if api doesn't support specifying dimensions. # ark embedding export ARK_EMBEDDING_MODEL="" # (string, required) Ark embedding model export ARK_EMBEDDING_API_KEY="" # (string, required) Ark embedding api_key export ARK_EMBEDDING_DIMS="2048" # (int, required) Ark embedding dimensions export ARK_EMBEDDING_BASE_URL="" # (string, required) Ark embedding base_url export ARK_EMBEDDING_API_TYPE="" # (string, optional) Ark embedding api type, should be "text_api" / "multi_modal_api". Default "text_api". # ollama embedding export OLLAMA_EMBEDDING_BASE_URL="" # (string, required) Ollama embedding base_url export OLLAMA_EMBEDDING_MODEL="" # (string, required) Ollama embedding model export OLLAMA_EMBEDDING_DIMS="" # (int, required) Ollama embedding dimensions # http embedding export HTTP_EMBEDDING_ADDR="" # (string, required) http embedding address export HTTP_EMBEDDING_DIMS=1024 # (string, required) http embedding dimensions
-
保存文件。
-
执行以下命令重启服务。
docker compose --profile '*' up -d --force-recreate --no-deps coze-server
Coze Studio 知识库提供文本转 SQL(NL2SQL)、一句话生成 Query(Message to Query)、图像标注(Image Annotation)、workflow 大模型节点召回知识库等功能,这些功能统一依赖于 Coze Studio 预配置的 AI 生成模型。在 Coze Studio 开源版中使用这些功能前,你需要先配置这个AI 生成模型。
- 此处配置的 AI 生成模型只在 NL2SQL、Message to Query、Image Annotation、Workflow knowledge recall 四个场景中生效。
- 如果需要在不同场景中使用不同模型,你可以通过添加前缀来针对特定场景应用特定配置,例如图片标注场景需要配置视觉模型,其余场景不需要,则可以新增
export IA_BUILTIN_CM_OPENAI_MODEL="xxx"
来配置图片标注场景专用的视觉模型。
配置步骤如下:
-
进入
docker/
目录。 -
打开文件:
.env
,找到 Model for knowledge 配置模块。修改以下配置:- 设置模型类型:通过参数 BUILTIN_CM_TYPE 设置 NL2SQL 等 AI 生成场景的模型。支持设置为 openai、ark、deepseek、ollama 或 qwen。
-
设置模型鉴权等参数:不同的模型对应不同的参数配置,你可以在配置文件中找到各个模型的配置参数区域。例如 ark 模型应设置以下参数:
- BUILTIN_CM_ARK_API_KEY:火山方舟 API Key,获取方式可参考获取火山方舟 API Key。
- BUILTIN_CM_ARK_MODEL:方舟模型 ID,可参考 火山方舟模型列表。
# Settings for Model # Model for knowledge nl2sql, messages2query (rewrite), image annotation # add prefix to assign specific model, downgrade to default config when prefix is not configured: # 1. nl2sql: NL2SQL_ (e.g. NL2SQL_BUILTIN_CM_TYPE) # 2. messages2query: M2Q_ (e.g. M2Q_BUILTIN_CM_TYPE) # 3. image annotation: IA_ (e.g. IA_BUILTIN_CM_TYPE) # 4. workflow knowledge recall: WKR_ (e.g. WRK_BUILTIN_CM_TYPE) # supported chat model type: openai / ark / deepseek / ollama / qwen export BUILTIN_CM_TYPE="openai" # type openai export BUILTIN_CM_OPENAI_BASE_URL="" export BUILTIN_CM_OPENAI_API_KEY="" export BUILTIN_CM_OPENAI_BY_AZURE=true export BUILTIN_CM_OPENAI_MODEL="" # type ark export BUILTIN_CM_ARK_API_KEY ="" export BUILTIN_CM_ARK_MODEL ="" # type deepseek export BUILTIN_CM_DEEPSEEK_BASE_URL = "" export BUILTIN_CM_DEEPSEEK_API_KEY = "" export BUILTIN_CM_DEEPSEEK_MODEL = "" # type ollama export BUILTIN_CM_OLLAMA_BASE_URL = "" export BUILTIN_CM_OLLAMA_MODEL = "" # type qwen export BUILTIN_CM_QWEN_BASE_URL = "" export BUILTIN_CM_QWEN_API_KEY = "" export BUILTIN_CM_QWEN_MODEL = ""
-
保存文件。
-
执行以下命令重启服务。
docker compose --profile '*' up -d --force-recreate --no-deps coze-server
沙箱功能提供了一个安全隔离的沙箱环境,供 Workflow 代码节点运行用户配置的 python 代码。 默认情况下,代码会在服务环境的 Python 虚拟环境 (venv) 中直接运行。如果你有隔离需求,可以通过修改下面的环境变量来配置:
- 进入
docker/
目录。 - 打开文件:
.env
,找到CODE_RUNNER_TYPE
配置项,将其修改为sandbox,并配置sandbox的依赖配置项,保存
# CODE_RUNNER_TYPE 支持 sandbox / local,默认为 local
export CODE_RUNNER_TYPE="sandbox"
# 注意:下面的配置仅在 CODE_RUNNER_TYPE=sandbox 时生效
export CODE_RUNNER_ALLOW_ENV="" # 限制环境变量读取,用逗号分隔,例如: "PATH,USERNAME"
export CODE_RUNNER_ALLOW_READ="" # 读权限,用逗号分隔,例如: "/tmp,./data"
export CODE_RUNNER_ALLOW_WRITE="" # 写权限,用逗号分隔,例如:"/tmp,./data"
export CODE_RUNNER_ALLOW_RUN="" # 运行权限,用逗号分隔,例如:"python,git"
# 网络访问权限,用逗号分隔,例如:"api.test.com,api.test.org:8080"
# 默认配置的 CDN 支持下载运行 pyodide 所需的包,如果删除的话沙箱可能无法正常运行。
export CODE_RUNNER_ALLOW_NET="cdn.jsdelivr.net"
export CODE_RUNNER_ALLOW_FFI="" # 外部函数接口,用逗号分隔,例如:"/usr/lib/libm.so"
export CODE_RUNNER_NODE_MODULES_DIR="" # deno modules 路径,默认使用项目路径,例如:"/tmp/path/node_modules"
export CODE_RUNNER_TIMEOUT_SECONDS="" # 代码执行超时时间,默认 60s,例如:"2.56"
export CODE_RUNNER_MEMORY_LIMIT_MB="" # 代码运行内存限制,默认 100MB,例如:"256"
- 执行以下命令重启服务。
docker compose --profile '*' up -d --force-recreate --no-deps coze-server