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

基于OpenAI Cookbook代码,从AI-Search获取完整上下文字段的方法

问题与解决方法:Azure OpenAI + AI搜索返回字段缺失

问题描述

参考OpenAI Cookbook中Azure环境下基于私有数据对话的代码示例,代码可正常运行,但返回结果仅包含content和score字段,id、title、filepath、url等字段均为null,返回示例如下:

{"content":"", "id":null,"title":null,"filepath":null,"url":null,"metadata":{"chunking":"orignal document size=2000. Scores=3.6962261Org Highlight count=31."},"chunk_id":"0"}

在Azure OpenAI Chat Playground中可直接选择AI搜索索引的字段,对应示例聊天应用能正确显示这些字段,但不清楚在代码中何处指定这些额外字段,也未找到相关示例。

解决步骤

1. 确认AI搜索索引字段状态

首先确保你的Azure AI搜索索引中确实存在id、title、filepath、url这些字段,且数据导入时已正确填充对应值。

2. 修改检索配置中的返回字段

在调用Azure OpenAI的对话补全接口时,需要在数据源配置中明确指定要返回的字段列表,具体修改位置如下:

Python SDK示例修改

找到代码中构建Azure搜索扩展配置的部分,添加fieldsToReturn参数,填入需要返回的字段名:

from openai import AzureOpenAI

client = AzureOpenAI(
    azure_endpoint="你的Azure OpenAI端点",
    api_key="你的API密钥",
    api_version="2024-02-15-preview"
)

response = client.chat.completions.create(
    model="你的部署名称",
    messages=[{"role": "user", "content": "你的查询内容"}],
    extra_body={
        "dataSources": [
            {
                "type": "AzureCognitiveSearch",
                "parameters": {
                    "endpoint": "你的AI搜索端点",
                    "key": "你的AI搜索密钥",
                    "indexName": "你的搜索索引名称",
                    "fieldsToReturn": ["id", "title", "filepath", "url"],  # 指定需返回的字段
                    "queryType": "semantic",
                    "semanticConfiguration": "你的语义配置名称",
                    "topNDocuments": 3
                }
            }
        ]
    }
)

如果直接调用REST API,同样需要在请求体的dataSources[0].parameters中添加fieldsToReturn数组,包含目标字段名。

3. 验证结果

修改后重新运行代码,返回的检索结果中指定字段将不再为null,会填充索引中对应的实际值。

注意事项

  • 字段名必须与Azure AI搜索索引中的字段名完全一致,区分大小写。
  • 若使用语义检索,确保语义配置未限制这些字段的返回权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 18:15:12