Files
mimiclaw/taolun.md
Z.To 46e46b0a13
Some checks failed
Build / idf-build (push) Has been cancelled
增加项目注释
2026-03-31 17:56:51 +08:00

145 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 讨论记录:增加国内大模型厂商接入
## 对话概述
**日期**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密钥的安全存储和传输