首页经验autogenerated Autogen 本地 LLM 配置指南:解决 api_type 兼容性错误

autogenerated Autogen 本地 LLM 配置指南:解决 api_type 兼容性错误

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

Autogen 本地 LLM 配置指南:解决 api_type 兼容性错误本教程旨在解决使用 Autogen 框架连接本地大型语言模型(如通过 LM Studio 运行的 LLM)时遇到的 TypeError: create() got an意外关键字参数 'api_type' 错误。该错误是由于 Autogen 近期为保持与 OpenAI API 兼容,移除了 config_list 中 api_type 参数导致。解决方案是简单地从配置中删除此参数,确保本地 LLM服务端运行正确即可。理解 api_type 错误

在使用 autogen 框架与本地大型语言模型(llm)进行交互时,开发者可能会遇到一个 typeerror: create() got an意外关键字参数 'api_type' 的错误。该错误通常发生在配置 config_list 尝试连接本地 llm 服务(例如通过 lm studio 启动的 llama 2 模型)时,尤其是当用户在配置中显式指定 api_type 时: “open_ai”参数时。

以下是导致此错误的典型代码片段: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 到 100 的数字quot;quot;user_proxy.initiate_chat(assistant, message=task)登录后复制

上述运行代码时,程序会发送如下回溯信息,明确指出create()函数接收到了一个意料之外的api_type关键字参数:TypeError:create()得到了一个意外的关键字参数'api_type'登录后复制错误来源分析

这个TypeError的根本原因在于Autogen库的近期更新。

为了与 OpenAI 官方 API 的最新规范保持一致,Autogen 内部删除了对 config_list 中 api_type 字段的显式要求。

具体来说:兼容性调整:Autogen 旨在提供与 OpenAI API 兼容的接口。随着 OpenAI API 客户端库的演进,某些参数可能不再需要或以不同方式更好的处理。自动推断:为了符合 OpenAI API 规范的本地 LLM 服务(如 LM Studio 提供的 /v1)接口),Autogen 现在能够根据 api_base 的格式和服务的响应,自动推断其为 OpenAI 类型服务,因此不再需要或接受用户手动指定的 api_type 参数。版本迭代:软件库会不断更新和优化。在某个版本中有效的配置,在后续版本中可能因功能调整或接口优化而被移除或修改。

因此,当你在新版本的 Autogen 中继续使用已保留的 api_type 参数时,就会触发TypeError。解决方案:删除 api_type 参数

解决此问题的方法非常直接:从 config_list 的字典配置中删除 api_type 字段即可。Autogen 会正确识别你的本地 LLM 服务。

修改后面的配置与完整示例

以下是修改后面的config_list配置和完整的Autogen示例代码:from autogen import AssistantAgent,UserProxyAgent#后面的配置列表:删除修改 quot;api_typequot;config_list = [ { quot;api_basequot;: quot;http://localhost:1234/v1quot;, #确保此地址与您的本地LLM服务匹配 quot;api_keyquot;: quot;NULLquot; # 本地LLM 需要API Key,可设为NULL或任意字符串 }]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, # 设置最大连续自动回复次数 # 添加一个终止条件,小区无限循环 is_termination_msg=lambda x: quot;terminate; in x.get(quot;contentquot;, quot;quot;).lower() or quot;exitquot; in x.get(quot;contentquot;, quot;quot;).lower(), #配置代码执行环境,如果本地没有Docker,可以设置为False code_execution_config={quot;use_dockerquot;:False,quot;work_dirquot;:quot;codingquot;})#定义任务task = quot;quot;quot;请编写一个Python函数,该函数打印从1到100的所有数字。quot;quot;quot;print(quot;---开始对话 ---quot;)#启动对话user_proxy.initiate_chat( Assistant,message=task)print(quot;---对话结束 ---quot;)登录后复制注意事项与最佳实践本地LLM服务运行状态:在运行Autogen代码之前,请务必确保您的本地LLM服务(如LM Studio、Ollama、vLLM等)已启动并在 api_base 指定的端口上监听。例如,LM Studio 默认可能在 http://localhost:1234 运行,其 OpenAI 兼容接口通常为 http://localhost:1234/v1。

你可以尝试在浏览器或使用curl命令访问http://localhost:1234/v1/models来验证服务是否有效。api_key:对于本地LLM服务,api_key字段通常可以设置为“NULL”或任何非空字符串,因为它通常不用于认证。如果你的本地服务确实需要API Key,请替换为实际的Key。Autogen版本:保持Autogen库更新到最新版本,确认最佳的兼容性和新功能。如果遇到问题,首先检查库的最新文档和发布说明,因为配置方式可能会随版本更新而变化。错误排查:如果移除在 api_type 后仍然遇到连接问题,请检查本地 LLM 服务的日志,确认其是否正常响应 API 请求。网络配置(如防火墙)也可能影响连接。对话终止条件:在 UserProxyAgent 中,设置 human_input_mode="NEVER"可以实现对话。为了避免无限循环,强烈建议设置 max_consecutive_auto_reply 和 is_termination_msg 来定义对话的终止条件,确保代理能够在完成任务后自行停止。代码执行环境:对于需要执行代码的任务,UserProxyAgent 的 code_execution_config 配置也很重要。例如,"use_docker": False 可以让代码在本地环境中直接执行,调试。"work_dir": "coding" 指定了代码执行的目录工作总结。

TypeError: create() got an意外关键字参数 'api_type' 错误是Autogen 库更新后,由于配置中使用了已废弃的参数而引起的高效解决。此问题的关键在于理解 Autogen OpenAI API 兼容性的调整,并简单地从 config_list 中删除 api_type 参数。通过遵循本文提供的修改方法和最佳实践,你可以顺利完成 Autogen 框架与本地 LLM 服务集成,享受的代理协作体验。

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

Autogen 本地
attrs 数据类嵌套列表的优雅处理:利用 cattrs 进行复杂数据结构化
相关内容
发表评论

游客 回复需填写必要信息