介绍

ai-lib是一个生产级的Rust库,提供统一、注重可靠性的多提供商AI SDK。它通过提供单一、一致的接口,消除了与多个AI提供商集成的复杂性。

通知:v0.3.4 已发布 —— 提供商故障转移支持、主要提供商扩展、增强多模态内容创建和新导入系统。如需企业能力,请探索ai-lib-pro:高级路由、可观测性、安全与成本管理。

目标

  • 降低集成成本:支持20+个AI提供商
  • 提高成功率和尾延迟:通过内置的可靠性原语
  • 提供一致的流式处理和函数调用:跨所有提供商的语义
  • 保持提供商中立和可扩展性:支持可插拔的传输和指标

核心功能

  • 统一API:跨所有支持的提供商的聊天完成接口
  • 流式支持:一致的增量处理(SSE + 模拟回退)
  • 函数调用:标准化的工具模式和策略
  • 多模态内容:支持文本、图像、音频(在提供商支持的地方)
  • 可靠性原语:指数退避重试、熔断器、速率限制
  • 模型管理:基于性能的选择、负载均衡、健康监控
  • 批处理:可配置并发限制的批处理
  • 可观测性钩子:自定义指标和监控集成
  • 渐进式配置:从环境变量到显式构建器模式

支持的提供商

ai-lib支持20+个AI提供商,包括OpenAI、Groq、Anthropic、Gemini、Mistral、Cohere、Azure OpenAI、Ollama、DeepSeek、Qwen、百度文心、腾讯混元、科大讯飞星火、月之暗面Kimi、HuggingFace、TogetherAI、xAI Grok,以及 OpenRouter、Replicate、Perplexity、AI21、智谱AI、MiniMax。

快速开始

use ai_lib::prelude::*;

#[tokio::main]
async fn main() -> Result<(), AiLibError> {
    let client = AiClient::new(Provider::Groq)?;
    let req = ChatCompletionRequest::new(
        client.default_chat_model(),
        vec![Message {
            role: Role::User,
            content: Content::new_text("你好,世界!".to_string()),
            function_call: None,
        }]
    );
    let resp = client.chat_completion(req).await?;
    println!("回答: {}", resp.choices[0].message.content.as_text());
    Ok(())
}

下一步:阅读快速开始,再查看特性开关(Features),最后探索高级示例

Build: b635c6a · 2025-09-17T16:29:53.062Z · v0.21