背景
在分享完AI Agent 新选择:Coze Studio 开源上手实录,能替代 dify 吗?,有粉丝希望我分享下知识库相关的。我先把问的比较多的问题进行答疑。
上期答疑
如何添加多个LLM

在
backend/conf/model目录下,多复制几个yaml文件,在template中有相应的模板。从模板上的内容来看,内部原来是一个结构化的配置,开源以后,精简了,直接剥离成了yaml文件,根据数据结构反向开发定制可以实现在线灵活配置。

如何关闭思考过程
meta.conn_config.enable_thinking赋值为false即可。
重启coze-server
docker compose --profile '*' up -d --force-recreate --no-deps coze-server

还是有些小瑕疵的
知识库相关配置
coze studio的知识库,依赖:存储、向量数据库,向量模型,向量模型配置和LLM不太一样。向量模型在.env中配置。
存储方式配置
向量化需要上传文件到服务中,所以向量模型配置之前,需要先配置上传方式(coze studio 叫上组件)。在coze studio中,上传组件的配置就是上传方式的配置,支持:
-
• minio: 这个是开源默认的 -
• 火山引擎对象存储TOS -
• 火山引擎 ImageX
需要注意的是, 需要将
MINIO_ENDPOINT中的配置中的localhost:9000不需要动,内部做了一些特殊处理,改成容器名称也是可以的
# Storage component
export STORAGE_TYPE="minio"
export STORAGE_BUCKET="opencoze"
# MiniIO
export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=minioadmin123
export MINIO_DEFAULT_BUCKETS=milvus
export MINIO_AK=$MINIO_ROOT_USER
export MINIO_SK=$MINIO_ROOT_PASSWORD
export MINIO_ENDPOINT="localhost:9000"
export MINIO_API_HOST="http://${MINIO_ENDPOINT}"
OCR 配置
如果上传的文件是扫描件,coze studio支持通过ocr将扫描件解析,需要开通火山引擎的OCR产品服务,这个就不做讲解了。
向量存储配置
向量化存储目前支持两种:
-
• milvus -
• vikingdb: 火山引擎的服务
我使用本地的milvus,和minio一样,不需要改动,改成coze-milvus:19530 也可以
export VECTOR_STORE_TYPE="milvus"
# milvus vector store
export MILVUS_ADDR="coze-milvus:19530"
向量化模型配置
本来想试用本地Ollama做向量模型的,折腾了1个多小时,没有成功,一直报
panic: InitializeInfra failed, err=Init - initPrimaryServices failed, err: init vector store failed, err=init milvus embedding failed, err=init knowledge embedding failed, type not configured

压根没有实现,然后在github上找了issue


官方说会在1~2天把ollama补上。先试用在线的
创建火山引擎向量模型接入点

配置
在.env中配置
export EMBEDDING_TYPE="ark"
export ARK_EMBEDDING_MODEL="自己的接入点"
export ARK_EMBEDDING_AK="自己的api key"
export ARK_EMBEDDING_DIMS="2048"
export ARK_EMBEDDING_BASE_URL="https://ark.cn-beijing.volces.com/api/v3"
重启coze-server
docker compose --profile '*' up -d --force-recreate --no-deps coze-server
知识库使用
创建知识库

-
• 点击资源库右上角资源中的知识库

-
• 知识库有3类:文本格式、表格、照片 -
• 文本格式,可以本地文档,可以自定义文档 -
• 我以文本格式为示例进行创建

点击上传,或者拖入上传即可。
pdf 解析

点击下一步

-
• 在coze studio 中,文件解析策略有两种 -
• 精准解析:精准解析需要用到 OCR来处理扫描件 -
• 快速解析:适用于存文本 -
• 分段策略 -
• 自动分段与清洗:傻瓜式操作 -
• 自定义分段:分段标识都用了下拉选,降低了普通用户的使用成本,也可以自定义分隔符。

-
• 分段可以进行预览,但是不能跟随对比,

普通的向量模型,没法识别表格,我切换下视觉向量模型试试。
重启下coze-server

-
• 可以看到表格式识别出来了,但是图片还是不显示(别急,后面可以看到)

点击确认。
可以看到图片已经提取了出来。然后一直0%,去查下issue
目前还不支持图像向量化模型。,还得切回到文本模型。

切回以后还能识别….
markdown解析

这里一定要把扫描件给取消了,要不然会一直卡住,它是根据你的设置去处理的,而不是根据你的文档处理。

-
• 可以看到md里的图片都被抓到了,看链接已经存入minio里了 -
• 向量化以后的结果,分段重叠了10%,所以看到很明显的衔接。
工作流中使用

基本上延续了coze的能力。

画了一个简单的知识库工作流。

-
• 知识库检索,支持添加多个知识库 -
• 搜索策略:支持、混合、语义、全文 -
• 可以设置召回数量、最小匹配度 -
• 可以勾选是否查询改写:查询改写在某些场景下很关键,可以极大的提升效率

很简单的提示词
查到内容总是感觉差点意思。效果并不理想
在智能体中使用

-
• 1需要在提示词中调用recallKnowledge -
• 2可以添加多个知识库
总结
-
• coze studio 的向量还在不断地完善过程中,预估这周ollama会上,自定义http需要按规范实现 -
• 知识库目前不支持外挂,这个在企业中是一个很大的问题,后续开源社区肯定会支持,迟早的问题 -
• 整体检索效果相对来说比较差,这个可能是我使用的问题
后记
-
• coze studio 从发布以后还没有一个release版本,功能还在逐步完善中,文档写了,有的还没有实现 -
• 从目前的状况来看,还有一段路要走,就看字节投入和开源社区的建设了,目前由21个提交者涨到了28个,不过后来者提交的代码很少,代码的理解还是需要一定的时间的 -
• 整个的关注度在不断地提升,势头特别猛,这几天已经涨到了近12k了











