AIC AIZS API
这是一个用 Rust 编写的统一中文大语言模型 API 客户端库,支持多个主流的中文大语言模型服务,包括:
- 阿里通义千问
- 腾讯混元
- 百度文心一言
- 讯飞星火
- DeepSeek
特性
- 统一的 API 接口
- 异步支持
- 强类型系统
- 错误处理
- 超时控制
- 完整的测试用例
安装
在你的 Cargo.toml 文件中添加以下依赖:
[dependencies]
aic_aizs_api = "0.1.0"
使用方法
DeepSeek
use aic_aizs_api::models::deepseek::DeepseekClient;
use aic_aizs_api::types::Message;
use aic_aizs_api::traits::LLMClient;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = DeepseekClient::new("your-api-key".to_string());
let messages = vec![
Message::system("You are a helpful assistant."),
Message::user("What is Rust programming language?"),
];
let response = client.chat(messages).await?;
println!("Response: {}", response);
Ok(())
}
环境变量配置
各模型需要配置对应的环境变量:
export DEEPSEEK_API_KEY=your_api_key
export HUNYUAN_APP_ID=your_app_id
export HUNYUAN_API_KEY=your_api_key
export TONGYI_API_KEY=your_api_key
export WENXIN_API_KEY=your_api_key
export WENXIN_SECRET_KEY=your_secret_key
export XINGHUO_APP_ID=your_app_id
export XINGHUO_API_KEY=your_api_key
export XINGHUO_API_SECRET=your_api_secret
API 文档
LLMClient Trait
所有模型客户端都实现了 LLMClient trait:
#[async_trait]
pub trait LLMClient {
async fn chat(&self, messages: Vec<Message>) -> Result<String>;
}
Message 类型
用于发送消息的结构体:
pub enum Message {
System(String),
User(String),
Assistant(String),
}
错误处理
库使用 anyhow 进行错误处理,所有错误都会被包装成 Result 类型返回。常见错误包括:
- API 密钥无效
- 网络连接问题
- API 调用超时
- 服务端错误
- 响应解析错误
贡献
欢迎提交 Pull Request 或创建 Issue。
许可证
MIT License