使用AzureOpenAI的gpt-35-turbo-1106调用create_sql_agent报错咨询
问题分析与解决方案
错误根源
你遇到的TypeError: Completions.create() got an unexpected keyword argument 'tools',核心原因有两个:
- Azure OpenAI API版本过低:
tools参数属于OpenAI Chat Completions的工具调用能力,Azure OpenAI需要api_version≥2023-10-01-preview才支持该参数,旧版本API仅支持基础补全接口,无法识别tools。 - LLM实例或agent_type配置不匹配:若误用了针对文本补全的
AzureOpenAI类(对应Completions接口)而非聊天补全的AzureChatOpenAI类,或者agent_type配置未适配Azure环境,会导致代码错误调用不支持tools的接口。
模型支持确认
Azure OpenAI的gpt-35-turbo-1106模型完全支持工具调用/Function Calling能力,因此可以用于创建SQL agent,只需配置正确。
修复步骤
- 指定兼容的API版本:初始化Azure OpenAI客户端时,必须设置
api_version="2023-10-01-preview"或更高版本(如2024-02-15-preview):from langchain.chat_models import AzureChatOpenAI llm = AzureChatOpenAI( azure_deployment="gpt-35-turbo-1106", api_version="2023-10-01-preview", temperature=0 ) - 确保使用正确的LLM类:必须用
AzureChatOpenAI(对应Chat Completions接口)而非AzureOpenAI(对应Completions接口),后者不支持tools参数。 - 验证agent_type配置:若使用LangChain的
create_sql_agent,agent_type="openai-tools"是兼容Azure的,但前提是LLM实例为AzureChatOpenAI且API版本达标。若仍有问题,可尝试切换为agent_type="openai-functions"(部分LangChain版本中对Azure的适配更稳定)。
内容的提问来源于stack exchange,提问作者user24243499
相关产品推荐
相关产品推荐

