参考 Issue: “Knowledge” is not working: “tool invoke error: ‘Document’ object has no attribute ‘doc_metadat’"#14900

Dify 在调用知识库时,字段 doc_metadata 拼写错误成了 doc_metadat,官方已在上周修复了源码,但 docker 镜像迟迟未发布,需要自己更新镜像中的代码。

# 使用 bash 终端进入容器
docker exec -it <your_container_name> /bin/bash

容器名一般是 docker-api-1,可以通过 docker ps 命令来查看

修复文件第 175 行的代码错误:

sed -i '175c"doc_metadata": document.doc_metadata, # type:ignore' \ 
  core/tools/utils/dataset_retriever/dataset_retriever_tool.py
exit # 退出 docker 容器
# 提交对镜像的修改
docker commit <your_container_name> langgenius/dify-api:1.0.1

编辑 docker-compose.yaml 文件,将所有 dify-api 版本替换为 1.0.1

然后执行启动命令,docker 会重新创建容器:

docker compose up -d