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

基于Azure OpenAI与Embeddings的RAG聊天应用知识库调用异常排查

问题分析:Azure OpenAI RAG应用调用模型自身知识库的原因

可能的原因及对应解决方法

1. Azure OpenAI部署的模型配置异常

  • 检查Azure OpenAI Studio中gpt-35-turbo部署的附加功能,部分部署可能默认开启了平台层面的知识增强选项,导致模型优先调用自身训练数据而非仅依赖传入的RAG上下文。
  • 解决:在Azure OpenAI Studio的部署管理页面,关闭不必要的知识增强类附加配置,确保模型仅使用prompt中传入的上下文内容。

2. Prompt指令约束强度不足

  • 当前system prompt中"Don't use any other data sources except the provided pdf"的表述对Azure版本模型的约束性不够,模型可能忽略该指令。
  • 解决:强化指令表述,例如修改为:
    你必须完全依赖下方提供的PDF上下文内容回答问题,绝对禁止使用自身知识库中的任何信息。如果上下文无相关内容,直接回答"我不知道"。
    
    同时确认{context}变量在prompt中的位置正确,确保上下文内容被模型正确识别。

3. 文本分割参数不合理导致检索失效

  • 你设置的RecursiveCharacterTextSplitter参数chunk_size=10过小,生成的文本碎片几乎不具备有效语义信息,检索器无法匹配到相关内容,模型只能 fallback 到自身知识库。
  • 解决:调整分割参数,建议将chunk_size设为500-1000,chunk_overlap设为50-100,保证生成的文本块具备足够的语义信息供检索匹配。

4. AzureChatOpenAI实例缺失部署名称参数

  • 你的AzureChatOpenAI实例未指定azure_deployment参数,LangChain可能无法关联到你在Azure上创建的特定模型部署,导致使用默认配置(可能包含额外知识增强)。
  • 解决:补充部署名称参数:
    client = AzureChatOpenAI(
         api_key = os.getenv("AZURE_OPENAI_API_KEY"), 
         api_version = os.getenv("AZURE_OPENAI_API_VERSION"), 
         azure_endpoint = os.getenv("AZURE_OPENAI_API_BASE"),
         azure_deployment="你的gpt-35-turbo部署名称"  # 新增此参数
        )
    

5. Embeddings与LLM的API版本不兼容

  • AzureOpenAIEmbeddings使用的api_version为2024-04-01-preview,而AzureChatOpenAI使用环境变量中的版本,两者版本不一致可能导致检索匹配精度下降,最终模型 fallback 到自身知识。
  • 解决:确保两者使用相同的api_version,例如统一设置为2024-04-01-preview。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 06:12:04