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

Azure OpenAI接入自有数据API返回异常问题排查及代码修正咨询

问题排查:Azure OpenAI结合Cognitive Search时API调用无有效响应

可能的问题原因

  • 系统提示词未引导模型使用检索文档
    你代码中的系统提示为"How can I help you today!",没有明确告知模型需要利用Azure Cognitive Search返回的检索文档来生成回答。而Azure OAI Studio Playground中默认的RAG场景系统提示会包含类似"基于提供的文档内容回答问题"的指令,这是导致两者行为差异的核心原因。模型在没有明确引导的情况下,会忽略检索到的文档内容,直接返回无相关信息的提示。

  • AzureExtensionsOptions配置不完整
    虽然调试能看到搜索结果,但可能缺少关键配置项(比如TopNDocuments控制返回文档数量,ShouldRestrictResultScope强制模型仅使用检索内容),导致模型无法正确识别或使用检索到的文档。

代码修改建议

1. 更新系统提示词

修改系统消息,明确要求模型基于检索到的文档回答:

Messages = {
    new ChatMessage(ChatRole.System, "你是专业助手,需严格根据Azure Cognitive Search检索到的文档内容回答用户问题。如果文档中没有相关信息,再告知无法提供对应答案。"),
    new ChatMessage(ChatRole.User, _prompt)                  
},

2. 完善AzureExtensionsOptions配置

添加TopNDocuments和ShouldRestrictResultScope配置,确保模型优先使用检索结果:

AzureExtensionsOptions = new AzureChatExtensionsOptions()
{
    Extensions =
    {
        new AzureCognitiveSearchChatExtensionConfiguration()
        {
            SearchEndpoint = new Uri(searchEndpoint),
            SearchKey = new AzureKeyCredential(searchKey),
            IndexName = searchIndex,
            TopNDocuments = 5, // 控制返回的文档数量,可根据需求调整
            ShouldRestrictResultScope = true // 强制模型仅使用检索到的文档内容
        },
    }
},

3. 确认DeploymentName配置

代码中DeploymentName被注释掉,需确保实际调用时已正确赋值为你的GPT-4 Turbo部署名称:

DeploymentName = "你的GPT-4 Turbo部署名称", // 取消注释并填写正确名称

验证要点

  • 调试时确认检索到的文档内容与用户提问相关
  • 检查API调用时的请求参数是否与Playground中的请求参数一致(可通过Playground的"View Code"功能对比请求结构)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 23:46:30