AIC AIZS API
这是一个用 Rust 编写的统一中文大语言模型 API 客户端库,支持多个主流的中文大语言模型服务,包括:
- 阿里通义千问
- 腾讯混元
- 百度文心一言
- 讯飞星火
- DeepSeek
author
- 作者:天边云
- 网址:http://www.aizs.com
特性
- 统一的 API 接口:所有模型共用同一套接口,便于切换和集成
- 异步支持:基于 tokio 的异步实现,提供高性能的并发处理能力
- 强类型系统:充分利用 Rust 的类型系统,提供类型安全的 API
- 错误处理:使用 anyhow 提供清晰的错误处理机制
- 超时控制:内置请求超时机制,防止请求挂起
- 完整的测试用例:每个模型都配备了单元测试
- 可扩展性:易于添加新的模型支持
支持的模型
阿里通义千问
- 支持最新的通义千问大模型
- 支持 qwen-turbo 等多个模型版本
- 支持温度和最大令牌数调整
腾讯混元
- 支持最新的腾讯混元大模型
- 支持温度和 top_p 参数调整
- 支持自定义模型参数
百度文心一言
- 支持最新的文心一言大模型
- 自动处理 access_token 获取和刷新
- 支持对话上下文管理
讯飞星火
- 支持最新的讯飞星火大模型
- 支持自定义域名和参数配置
- 提供完整的会话管理
DeepSeek
- 支持最新的 DeepSeek 大模型
- 支持自定义模型参数
- 提供简单易用的接口
安装
在你的 Cargo.toml 文件中添加以下依赖:
[]
= "0.1.0"
= { = "1.0", = ["full"] }
详细使用示例
基础用法
use DeepseekClient;
use Message;
use LLMClient;
async
多模型集成示例
use ;
async
async
环境变量配置
各模型需要配置对应的环境变量。在 Windows 系统中,可以通过以下方式设置:
# DeepSeek
$env:DEEPSEEK_API_KEY="your_api_key"
# 腾讯混元
$env:HUNYUAN_APP_ID="your_app_id"
$env:HUNYUAN_API_KEY="your_api_key"
# 阿里通义千问
$env:TONGYI_API_KEY="your_api_key"
# 百度文心一言
$env:WENXIN_API_KEY="your_api_key"
$env:WENXIN_SECRET_KEY="your_secret_key"
# 讯飞星火
$env:XINGHUO_APP_ID="your_app_id"
$env:XINGHUO_API_KEY="your_api_key"
$env:XINGHUO_API_SECRET="your_api_secret"
API 文档
LLMClient Trait
所有模型客户端都实现了 LLMClient trait:
Message 类型
用于发送消息的结构体:
错误处理
库使用 anyhow 进行错误处理,所有错误都会被包装成 Result 类型返回。常见错误包括:
- API 密钥无效:检查环境变量中的 API 密钥是否正确设置
- 网络连接问题:检查网络连接和代理设置
- API 调用超时:可能需要调整超时设置或检查网络状况
- 服务端错误:查看具体的错误信息和 HTTP 状态码
- 响应解析错误:通常是 API 响应格式发生变化导致
性能优化建议
- 合理设置超时时间
- 使用连接池
- 启用压缩
- 复用客户端实例
- 使用异步并发处理多个请求
常见问题
-
API 密钥配置问题
- 确保环境变量正确设置
- 检查密钥格式是否正确
-
网络连接问题
- 检查防火墙设置
- 确认代理配置
-
响应解析错误
- 查看原始响应内容
- 确认 API 版本是否兼容
版本历史
- v0.1.0
- 初始版本发布
- 支持五大中文大语言模型
- 提供统一的异步接口
贡献指南
- Fork 项目
- 创建特性分支
- 提交更改
- 推送到分支
- 创建 Pull Request
许可证
MIT License
鸣谢
感谢以下项目和团队:
- Rust 语言团队
- tokio 异步运行时
- reqwest HTTP 客户端
- serde 序列化框架