You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure部署CrewAI遇DuplicateIDError:文档ID重复致Upsert失败

CrewAI Azure环境初始化重复ID报错解决方案

问题核心

本地运行正常的CrewAI多智能体系统,在Azure环境初始化Crew时触发知识源相关报错:

crewai Failed to upsert documents: "Expected IDs to be unique, found 28 Duplicate IDs"

解决步骤

  • 修正文档ID生成逻辑
    本地正常但Azure出错,通常是ID生成依赖本地唯一标识(如相对文件路径哈希)导致全局重复。将Document对象的id改为全局唯一生成方式,示例代码:

    from uuid import uuid4
    from langchain_core.documents import Document
    
    # 替换原有ID生成逻辑
    doc = Document(
        page_content="文档内容",
        metadata={"source": "知识源路径"},
        id=str(uuid4())  # 生成全局唯一UUID
    )
    
  • 清理Azure向量库重复条目
    根据报错给出的UUID列表,删除向量数据库中已存在的重复文档。若使用CrewAI集成的向量存储,执行以下操作:

    # 假设vector_store为已初始化的向量存储实例
    duplicate_ids = ["UUID1", "UUID2", ...]  # 报错中的重复UUID列表
    vector_store.delete(ids=duplicate_ids)
    
  • 确保知识源加载幂等性
    检查Azure环境中是否存在重复触发初始化逻辑的情况,添加加载前校验:

    • 将知识源文件的哈希值存入文档metadata;
    • 加载前查询向量库,若已存在对应哈希的文档则跳过加载。
  • 对齐本地与Azure依赖版本
    对比两边环境的crewai、langchain及Azure相关依赖版本,避免版本差异导致逻辑异常。检查命令:

    pip list | grep -E "crewai|langchain|azure"
    

内容的提问来源于stack exchange,提问作者Ray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 06:12:10