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

添加Azure Cognitive Search数据源至Azure OpenAI API时遇400错误

问题解决:Azure OpenAI添加dataSources参数报BadRequestError

问题原因

普通Chat Completions接口不支持dataSources参数,该参数仅适用于Azure OpenAI的检索增强生成(RAG)专用接口;同时你当前使用的API版本(2023-09-01-preview)不支持RAG功能,且参数命名格式不符合SDK要求。

解决方案

1. 升级OpenAI Python SDK

确保使用v1.10.0及以上版本,执行命令:

pip install --upgrade openai

2. 使用支持RAG的API版本

将API版本指定为2024-02-15-preview或更高(如2024-05-01-preview)。

3. 调用专用RAG接口并修正参数格式

替换接口方法为chat.completions_with_search.create,同时将驼峰式参数名改为下划线格式:

修正后的代码示例:

import os
from openai import AzureOpenAI

client = AzureOpenAI(
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_key=os.environ["AZURE_OPENAI_KEY"],
    api_version="2024-02-15-preview"
)

response = client.chat.completions_with_search.create(
    messages = [
        {
            "role": "system",
            "content": "当用户提供项目名称作为输入时,执行以下步骤:步骤1:从文件中获取项目的项目等级。"
        },
        {
            "role": "user",
            "content": '项目名称:"Test project" '
        }
    ],
    model = "GPT-3.5 Turbo",
    seed = 42,
    temperature = 0,
    max_tokens = 800,
    data_sources = [
        {
            "type": "AzureCognitiveSearch",
            "parameters": {
                "endpoint": os.environ["SEARCH_ENDPOINT"],
                "key": os.environ["SEARCH_KEY"],
                "index_name": "test-index"
            }
        }
    ]
)

print(response.choices[0].message.content)

关键注意点

  • 接口方法必须用completions_with_search.create,而非普通的completions.create
  • API版本需≥2024-02-15-preview
  • SDK参数使用下划线命名(data_sources、index_name),而非驼峰式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:33:16