首页手机Autogen 集成本地LLM:api_type 参数错误解析与配置指南 Autogen 集成本地LLM:api_type 参数错误解析与配置指南

Autogen 集成本地LLM:api_type 参数错误解析与配置指南 Autogen 集成本地LLM:api_type 参数错误解析与配置指南

圆圆2025-08-06 00:00:32次浏览条评论

Autogen 集成本地LLM:api_type 参数错误解析与配置指南论文旨在解决在使用 Autogen 框架集成本地大型语言模型(LLM)时,遇到的 TypeError: create() got an意外关键字参数 'api_type' 错误。该错误是由于 Autogen 近期更新文章中为保持与 OpenAI API 兼容而删除了 config_list 配置中的 api_type 参数之后。将详细解析错误原因,并提供正确的配置方法,帮助用户顺利运行 Autogen 与本地 LLM理解 Autogen 与本地 LLM 集成

autogen 是一个强大的多智能体编程框架,它允许开发者通过配置不同的智能体来自动化复杂的任务。在使用 autogen 时,通常需要配置一个或多个大型语言模型(llm)作为智能体的“大脑”。除了使用 openai 的官方 api 外,autogen 也支持通过兼容 openai api 接口的本地 llm 服务(如 lm studio、ollama)等)进行集成。

典型的 Autogen 配置会使用 config_list 来定义 LLM 的连接参数,包括 api_base(API 端点地址)和 api_key(API 密钥,对于本地模型通常设置“NULL”或任意字符串)。在某些旧版本的 Autogen 中,为了明确指定 API 类型,还包含 api_type 参数。

以下是一个常见的、可能导致问题的配置示例:from autogen import AssistantAgent, UserProxyAgentconfig_list = [ { quot;api_typequot;: quot;open_aiquot;, # 导致错误的参数 quot;api_basequot;: quot;http://localhost:1234/v1quot;, quot;api_keyquot;: quot;NULLquot; }]llm_config = {'config_list': config_list}assistant = AssistantAgent( name=quot;assistantquot;, llm_config = llm_config)user_proxy = UserProxyAgent( name=quot;user_proxyquot;, human_input_mode=quot;NEVERquot;, max_consecutive_auto_reply=100,)task = quot;quot;quot;写一个python方法,输出数字1到100quot;quot;quot;user_proxy.initiate_chat(助手, message=task)登录后复制

当运行上述代码时,如果Autogen版本较新,可能会遇到以下错误:TypeError:create() got an Unexpected keywords argument 'api_type'登录后复制TypeError:create() got an Unexpected keywords argument 'api_type'错误分析

这个TypeError明确指出create()方法接收到了一个它不需要的关键字参数'api_type'。从堆栈发生跟踪中可以看出,这个错误在 Autogen 内部调用 OpenAI 兼容客户端的创建方法时。

错误发生的根本原因在于 Autogen 框架的演进。为了更好地与 OpenAI 官方 API 的最新版本保持兼容性,Autogen 团队在近期版本中对 LLM 方式配置进行了调整。其中一项重要的修改是删除了 config_list 中对 api_type

这意味着,当 Autogen 内部的 openai 客户端尝试处理 config_list 时,其中如果包含 api_type 参数,它会将其作为无效参数传递给底层的 openai.completions.create 或 openai.chat.completions.create 方法,从而导致 TypeError。解决方案:删除 api_type 参数

解决此问题的方法非常直接:从 config_list 配置中删除 api_type 参数即可。

由于 Autogen 已经默认将所有 config_list 中的配置视为兼容 OpenAI API 的格式,因此不再需要通过 api_type: "open_ai" 来显式声明。对于本地 LLM 服务,只要它们提供了兼容 OpenAI 接口的端点,Autogen 就能正确识别并使用。

以下是修改后面的代码示例:from autogen import AssistantAgent,UserProxyAgent# 修改后面的 config_list,重新了了quot;api_typequot;参数config_list = [ { quot;api_basequot;: quot;http://localhost:1234/v1quot;, # LM Studio等本地LLM服务的地址 quot;api_keyquot;: quot;NULLquot; # 本地LLM通常不需要API Key,设为quot;NULLquot;即可 }]llm_config = {'config_list': config_list}assistant = AssistantAgent( name=“;助理”;, llm_config = llm_config)user_proxy = UserProxyAgent( name=quot;user_proxyquot;, human_input_mode=quot;NEVERquot;, max_consecutive_auto_reply=100,)task = quot;quot;quot;写一个 python 方法,输出数字 1 到 100quot;quot;quot;user_proxy.initiate_chat(assistant, message=task)登录复制

通过删除 api_type 参数,Autogen将能够正确地解析配置,并交互使用本地LLM服务进行。最佳实践与注意事项保持Autogen更新:遇到类似问题时,首先检查您使用的Autogen版本是否为最新。Autogen作为一个积极开发的开源项目,其API和内部实现会不断更新。通过pip install --upgrade pyautogen命令可以更新到最新版本。查阅官方文档与更新日志:遇到配置问题时,Autogen的官方文档和GitHub仓库的发布说明(Release)注释)是解决问题的最佳资源。它们会详细说明任何破坏性变更(破坏兼容性:确保您的本地LLM服务(如LM Studio、Ollama等)确实提供了与OpenAI API兼容的接口。大多数流行的本地LLM解决方案都旨在提供这种兼容性,但仍需确认其文档。调试:如果问题存在,可以尝试在llm_config中添加verbose=True来更详细的日志输出,这有助于定位问题。

总结

在使用 Autogen 框架集成本地 LLM 时,遇到 TypeError:create() got an Unexpected keywords argument 'api_type' 错误,是由于 Autogen 版本更新后删除了 config_list 中 api_type 参数的支持。解决方案是简单地从配置中删除该参数。遵循论文提供的修改方法和最佳实践,可以帮助您更全面地在 Autogen 中使用本地 LLM的强大能力,构建和运行多智能体应用。

以上就是Autogen集成本地LLM:api_type参数错误解析与配置指南的详细内容,更多请关注乐哥常识网其他相关文章!

Autogen 集成
怎么样设置日期自动 日期设置为自动更新的格式
相关内容
发表评论

游客 回复需填写必要信息