添加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
相关产品推荐
相关产品推荐

