Files
mimiclaw/taolun.md

145 lines
4.4 KiB
Markdown
Raw Normal View History

2026-03-31 17:56:51 +08:00
# 讨论记录:增加国内大模型厂商接入
## 对话概述
**日期**2026-03-31
**目标**:为 MimiClaw 项目增加国内大模型厂商的接入,特别是硅基流动和火山方舟(豆包模型)
## 对话内容
### 用户需求
用户希望给当前项目增加国内大模型厂商的接入,包括:
1. 硅基流动的免费模型
2. 火山方舟的豆包模型
### 项目现状分析
#### 项目基本信息
- **项目名称**MimiClaw
- **运行平台**ESP32-S3纯C语言
- **交互方式**Telegram机器人
- **功能**AI助手支持工具调用本地记忆
#### 当前LLM集成状态
1. **支持的提供商**
- Anthropic (Claude)
- OpenAI (GPT)
2. **配置方式**
- 构建时配置:`main/mimi_secrets.h`
- 运行时配置串口CLI命令存储在NVS中
3. **关键代码文件**
- `main/llm/llm_proxy.c`LLM代理核心实现
- `main/llm/llm_proxy.h`LLM代理头文件
- `main/mimi_config.h`:全局配置定义
- `main/cli/serial_cli.c`:命令行界面
4. **提供商检测机制**
- `provider_is_openai()`函数检查是否为OpenAI提供商
- 根据提供商选择不同的API URL、Host和Path
### 国内大模型厂商API兼容性调研
#### 硅基流动 (SiliconFlow)
- **API兼容性**OpenAI兼容模式
- **Base URL**`https://api.siliconflow.cn/v1`
- **特点**
- 提供100+高性能大模型
- 新用户注册送免费额度
- 价格比OpenAI官方便宜80%+
- 支持OpenClaw等工具集成
#### 火山方舟 (字节跳动豆包模型)
- **API兼容性**兼容OpenAI SDK
- **Base URL**`https://ark.cn-beijing.volces.com/api/v3`
- **特点**
- 豆包大模型系列
- 新用户首次开通可享受50万token免费试用
- 支持函数调用、工具调用等高级功能
### 技术实现分析
#### 当前架构特点
1. **提供商抽象**
- 使用`s_provider`变量存储提供商名称
- 通过`provider_is_openai()`函数区分提供商
- 根据提供商选择不同的API配置
2. **API调用流程**
- 构建请求体
- 设置请求头(根据提供商不同)
- 发送HTTP请求
- 解析响应(根据提供商不同)
3. **工具调用支持**
- 支持Anthropic的tool_use格式
- 支持OpenAI的function calling格式
- 有格式转换函数`convert_tools_openai()`
#### 实现方案讨论
由于硅基流动和火山方舟都提供OpenAI兼容的API理论上可以复用现有的OpenAI集成代码只需要
1. 修改Base URL
2. 可能需要调整认证方式
3. 可能需要处理特定的模型名称
## 待解决问题
1. **认证方式差异**
- 硅基流动使用API Key
- 火山方舟:可能使用不同的认证方式
2. **模型名称规范**
- 需要了解具体的模型ID格式
- 例如:硅基流动的`deepseek-ai/DeepSeek-V3`,火山方舟的豆包模型名称
3. **功能支持差异**
- 工具调用格式是否完全兼容
- 上下文长度限制
- 特殊功能支持情况
## 下一步计划
基于讨论,制定了以下实施计划:
### 阶段一:准备与设计
1. 详细调研硅基流动和火山方舟的API文档
2. 确定具体的实现方案
3. 设计配置结构和命令行接口
### 阶段二:核心实现
1. 修改LLM代理以支持新的提供商
2. 添加配置管理功能
3. 更新命令行界面
### 阶段三:测试与优化
1. 功能测试
2. 性能优化
3. 文档更新
## 相关资源
### 项目文件
- `main/llm/llm_proxy.c`LLM代理实现
- `main/llm/llm_proxy.h`LLM代理头文件
- `main/mimi_config.h`:配置定义
- `main/cli/serial_cli.c`:命令行界面
### 外部文档
- 硅基流动OpenClaw集成文档
- 火山方舟兼容OpenAI SDK文档
- ESP32-S3开发文档
## 技术要点总结
1. **复用现有架构**可以充分利用现有的OpenAI集成代码
2. **提供商扩展**:需要扩展提供商检测和配置机制
3. **配置管理**需要支持新的API密钥和Base URL配置
4. **兼容性处理**可能需要处理API响应格式的细微差异
## 风险与挑战
1. **API兼容性风险**:虽然声称兼容,但可能存在细微差异
2. **内存限制**ESP32-S3内存有限需要确保新功能不会导致内存不足
3. **网络稳定性**国内网络环境可能影响API调用稳定性
4. **认证安全性**需要确保API密钥的安全存储和传输