此页面解释了 MetaGPT 如何与各种语言模型提供商集成,包括架构、配置选项和支持的 LLM 服务。它涵盖了支持与不同 AI 模型通信的底层框架,同时为系统的其余部分保持一致的接口。
MetaGPT 采用以 BaseLLM 抽象类为中心的提供商驱动架构,该类定义了所有 LLM 提供商实现必须遵循的通用接口。这种设计允许框架轻松地在不同的 LLM 服务之间切换,同时为更高级别的组件保持相同的 API。
来源: metagpt/provider/base_llm.py metagpt/llm.py metagpt/configs/llm_config.py
MetaGPT 使用注册表模式来管理 LLM 提供商。每个提供商实现都使用 @register_provider 装饰器进行注册,该装饰器支持其 LLM 类型。当请求 LLM 时,系统会根据配置的 LLM 类型选择适当的提供商。
来源: metagpt/provider/llm_provider_registry.py metagpt/provider/openai_api.py43-56
BaseLLM 抽象基类定义了所有提供商实现必须实现的通用接口。主要方法包括:
| 方法 | 描述 |
|---|---|
aask() | 用于从 LLM 请求补全的主要方法 |
acompletion() | 从 LLM 获取原始补全对象 |
acompletion_text() | 从 LLM 获取文本补全 |
_achat_completion() | 用于聊天补全的提供商特定实现 |
_achat_completion_stream() | 用于流式聊天补全的提供商特定实现 |
所有方法都是异步的,以便在与 LLM 服务通信时允许非阻塞 I/O。
来源: metagpt/provider/base_llm.py35-411
LLMConfig 类提供了一种灵活的方式来配置 LLM 交互的各个方面。它包括:
OpenAI 的示例配置
来源: metagpt/configs/llm_config.py9-135
MetaGPT 通过其提供商系统支持广泛的 LLM 提供商
| 提供商 | LLM 类型 | 模型 |
|---|---|---|
| OpenAI | OPENAI | GPT-3.5, GPT-4 等。 |
| Anthropic | ANTHROPIC, CLAUDE | Claude 模型 |
| AWS Bedrock | BEDROCK | Amazon Titan, Claude, Mistral 等。 |
| Google Gemini | GEMINI | Gemini 模型 |
| Baidu QianFan | QIANFAN | ERNIE 模型等。 |
| Aliyun DashScope | DASHSCOPE | Qwen 模型等。 |
| 智谱 AI | ZHIPUAI | GLM 模型 |
| Ollama | OLLAMA | 各种开源模型 |
| Azure OpenAI | AZURE | Azure 托管的 OpenAI 模型 |
| 许多其他 | 多种 | 请参阅 LLMType 枚举 |
该系统是可扩展的,允许通过实现 BaseLLM 接口并通过 @register_provider 装饰器进行注册,轻松添加新的提供商。
来源: metagpt/provider/__init__.py1-39 metagpt/configs/llm_config.py19-46
MetaGPT 包含一个全面的系统,用于跟踪不同提供商和模型的令牌使用情况和成本。
令牌计数系统估算消息和补全中使用的令牌数量,允许:
CostManager 类根据不同模型的定价跟踪令牌使用情况并计算成本。
来源: metagpt/utils/token_counter.py10-541 metagpt/provider/base_llm.py130-138
为了处理可能超出令牌限制的对话,MetaGPT 包含一个消息压缩系统。
来源: metagpt/provider/base_llm.py338-410
要在 MetaGPT 应用程序中使用 LLM:
来源: metagpt/llm.py1-21 metagpt/provider/base_llm.py177-206
一些提供商支持除文本提示外的图像输入。
来源: metagpt/provider/base_llm.py62-81
一些提供商支持显式的推理能力。
来源: metagpt/configs/llm_config.py111-113 metagpt/provider/base_llm.py48-56
像 OpenAI 这样的某些提供商支持图像生成。
来源: metagpt/provider/openai_api.py301-320 tests/metagpt/provider/test_openai.py132-141
要向 MetaGPT 添加新的 LLM 提供商,您需要:
BaseLLM 的新类@register_provider 装饰器注册提供商示例结构
来源: metagpt/provider/openai_api.py57-327 metagpt/provider/anthropic_api.py14-86
MetaGPT 中的 LLM 集成系统提供了一个灵活且可扩展的框架,用于与各种 LLM 提供商进行交互。其主要特点包括:
这种模块化设计允许 MetaGPT 适应快速发展的 LLM 格局,同时为系统的其余部分保持一致的接口。
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(be6921)