介绍
ai-lib是一个生产级的Rust库,提供统一、注重可靠性的多提供商AI SDK。它通过提供单一、一致的接口,消除了与多个AI提供商集成的复杂性。
通知:v0.3.0 已发布 —— 统一传输与统一 SSE、模型路由 MVP(
ModelArray
+ 健康检查 + 路由指标)、拦截器示例等。详见路由与可观测性文档。
目标
- 降低集成成本:支持17+个AI提供商
- 提高成功率和尾延迟:通过内置的可靠性原语
- 提供一致的流式处理和函数调用:跨所有提供商的语义
- 保持提供商中立和可扩展性:支持可插拔的传输和指标
核心功能
- 统一API:跨所有支持的提供商的聊天完成接口
- 流式支持:一致的增量处理(SSE + 模拟回退)
- 函数调用:标准化的工具模式和策略
- 多模态内容:支持文本、图像、音频(在提供商支持的地方)
- 可靠性原语:指数退避重试、熔断器、速率限制
- 模型管理:基于性能的选择、负载均衡、健康监控
- 批处理:可配置并发限制的批处理
- 可观测性钩子:自定义指标和监控集成
- 渐进式配置:从环境变量到显式构建器模式
支持的提供商
ai-lib支持17+个AI提供商,包括OpenAI、Groq、Anthropic、Gemini、Mistral、Cohere、Azure OpenAI、Ollama、DeepSeek、Qwen、百度文心、腾讯混元、科大讯飞星火、月之暗面Kimi、HuggingFace、TogetherAI和xAI Grok。
快速开始
use ai_lib::{AiClient, Provider, Message, Role, Content, ChatCompletionRequest};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = AiClient::new(Provider::Groq)?;
let req = ChatCompletionRequest::new(
client.default_chat_model(),
vec![Message::user(Content::new_text("你好,世界!"))]
);
let resp = client.chat_completion(req).await?;
println!("回答: {}", resp.first_text()?);
Ok(())
}