AutoGen 本地 LLM 配置指南:解决 api_type 错误

心靈之曲
发布: 2025-08-05 23:42:12
原创
1106人浏览过

autogen 本地 llm 配置指南:解决 api_type 错误

本文旨在解决用户在使用 AutoGen 框架与本地大型语言模型(LLM)集成时,遇到的 TypeError: create() got an unexpected keyword argument 'api_type' 错误。该错误是由于 AutoGen 库近期更新,移除了 config_list 中 api_type 参数的支持,以更好地兼容 OpenAI API 标准。通过移除配置中的 api_type 字段,用户可以顺利连接并使用本地 LLM 服务。

错误现象分析

当用户尝试使用 AutoGen 库配置本地 LLM 服务(例如通过 LM Studio 启动的 Llama 2 模型),并在 config_list 中指定 api_type: "open_ai" 时,程序会抛出 TypeError: create() got an unexpected keyword argument 'api_type' 异常。以下是典型的错误代码示例:

from autogen import AssistantAgent, UserProxyAgent

config_list = [
    {
        "api_type": "open_ai", # 导致错误的原因
        "api_base": "http://localhost:1234/v1",
        "api_key": "NULL"
    }
]

llm_config = {'config_list': config_list}

assistant = AssistantAgent(
    name="assistant",
    llm_config = llm_config
)

user_proxy = UserProxyAgent(
    name="user_proxy",
    human_input_mode="NEVER",
    max_consecutive_auto_reply=100,
)

task = """write a python method to output numbers 1 to 100"""

user_proxy.initiate_chat(
    assistant,
    message=task
)
登录后复制

运行上述代码将产生类似以下的错误堆栈信息:

TypeError: create() got an unexpected keyword argument 'api_type'
登录后复制

此错误明确指出 create() 方法不接受 api_type 参数。尽管在 AutoGen 的早期版本或某些示例中可能存在此参数,但为了与 OpenAI 官方 API 保持一致性,AutoGen 核心库已移除对 api_type 的显式支持。现在,只要 api_base 指向一个兼容 OpenAI API 规范的端点(例如 /v1 路径),AutoGen 就会自动将其视为 OpenAI 兼容服务。

解决方案

解决此问题的方法非常直接:从 config_list 中的配置字典中移除 api_type 字段即可。AutoGen 会根据 api_base 的格式自动识别服务类型。

Alkaid.art
Alkaid.art

专门为Phtoshop打造的AIGC绘画插件

Alkaid.art 153
查看详情 Alkaid.art

以下是修正后的代码示例:

from autogen import AssistantAgent, UserProxyAgent

# 修正后的 config_list,移除了 "api_type" 字段
config_list = [
    {
        "api_base": "http://localhost:1234/v1", # 确保指向本地LLM服务的V1兼容API端点
        "api_key": "NULL" # 对于本地LLM,通常设置为"NULL"或任意字符串
    }
]

llm_config = {'config_list': config_list}

assistant = AssistantAgent(
    name="assistant",
    llm_config = llm_config
)

user_proxy = UserProxyAgent(
    name="user_proxy",
    human_input_mode="NEVER",
    max_consecutive_auto_reply=100,
)

task = """write a python method to output numbers 1 to 100"""

user_proxy.initiate_chat(
    assistant,
    message=task
)
登录后复制

关键修正点: 移除了 config_list 中字典内的 "api_type": "open_ai" 行。

注意事项与最佳实践

  1. api_base 的格式: 确保 api_base 指向的本地 LLM 服务端点是符合 OpenAI API 规范的,通常这意味着 URL 应该以 /v1 结尾(例如 http://localhost:1234/v1)。LM Studio、Ollama 等工具通常会提供这样的兼容端点。
  2. api_key 的处理: 对于本地 LLM 服务,api_key 字段通常不是必需的,但 AutoGen 的 OpenAI 客户端可能仍要求其存在。在这种情况下,可以将其设置为 "NULL"、"sk-xxxx" 或任何非空字符串作为占位符。
  3. 版本兼容性: AutoGen 库的更新迭代较快,API 可能会发生变化。在遇到类似 TypeError 或配置问题时,建议查阅 AutoGen 的官方文档或 GitHub 仓库(尤其是 CHANGELOG 或 Roadmap 部分),以获取最新的配置要求和 API 规范。
  4. 调试本地 LLM 服务: 在运行 AutoGen 之前,请确保您的本地 LLM 服务(如 LM Studio)已正确启动,并且其监听的端口与 api_base 中指定的端口一致。可以通过在浏览器中访问 api_base 地址(例如 http://localhost:1234/v1/models)来验证服务是否正常运行。

总结

TypeError: create() got an unexpected keyword argument 'api_type' 错误是由于 AutoGen 库为保持与 OpenAI API 的兼容性而移除了 api_type 参数所致。用户只需从 config_list 中移除此参数,并确保 api_base 正确指向本地 LLM 服务的 OpenAI 兼容端点,即可顺利使用 AutoGen 与本地 LLM 进行交互。定期查阅官方文档是保持代码与库最新版本兼容性的重要习惯。

以上就是AutoGen 本地 LLM 配置指南:解决 api_type 错误的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号