早期预览

Ai-lib: 一个API客户端连通所有AI模型 (Rust)

一个API客户端,多个提供商:可靠流式处理、函数调用、推理大模型与可观测性 — SDK开销<1ms。

双许可证 MIT / Apache-2.0 · 专注生产级抽象 · 无供应商锁定

核心价值

多提供商统一

单一抽象覆盖 OpenAI / Groq / Anthropic / Gemini / Mistral / Cohere 等。

一致的流式与增量

标准增量格式,隐藏底层 SSE 差异。

推理大模型

内置支持 Groq Qwen、DeepSeek R1 等推理大模型,提供结构化输出。

可靠性原语

重试 / 超时 / 分类错误 / 代理 / 连接池。

模型策略

性能 / 成本 / 健康 / 加权路由。

低开销

SDK 层额外延迟 ~0.6–0.9ms(基准方法透明)。

渐进式复杂度

从 quick_chat 到自定义传输/指标按需扩展。

安装与快速开始

添加依赖后,可使用统一的API立即调用任意受支持的提供商。

[dependencies]
ai-lib = "0.2.21"
tokio = { version = "1", features = ["full"] }
futures = "0.3"

快速开始

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 {
            role: Role::User,
            content: Content::Text("你好,世界!".to_string()),
            function_call: None,
        }]
    );
    let resp = client.chat_completion(req).await?;
    println!("回答: {}", resp.choices[0].message.content.as_text());
    Ok(())
}

环境变量配置

# 设置API密钥
export GROQ_API_KEY=your_groq_api_key
export OPENAI_API_KEY=your_openai_api_key
export ANTHROPIC_API_KEY=your_anthropic_api_key

# 代理配置(可选)
export AI_PROXY_URL=http://proxy.example.com:8080

流式处理

use futures::StreamExt;

let mut stream = client.chat_completion_stream(req).await?;
while let Some(chunk) = stream.next().await {
    let c = chunk?;
    if let Some(delta) = c.choices[0].delta.content.clone() {
        print!("{delta}");
    }
}

支持的提供商

统一枚举 Provider,无需为不同 API 分别写适配器;本地 + 云可混合(例如 Ollama + OpenAI)。

OpenAI favicon OpenAI
Groq favicon Groq
Anthropic favicon Anthropic
Gemini favicon Gemini
Mistral favicon Mistral
Cohere favicon Cohere
HuggingFace favicon HuggingFace
TogetherAI favicon TogetherAI
DeepSeek favicon DeepSeek
Qwen favicon Qwen
Baidu Wenxin favicon Baidu Wenxin
Tencent Hunyuan favicon Tencent Hunyuan
iFlytek Spark favicon iFlytek Spark
Moonshot Kimi favicon Moonshot Kimi
Azure OpenAI favicon Azure OpenAI
Ollama favicon Ollama
xAI Grok favicon xAI Grok

性能与方法说明

以下指标为 SDK 自身层(排除模型推理)。详情见仓库 README。请使用你的实际工作负载再行基准验证。

0.6–0.9ms 每请求额外延迟
<2ms 统一流式解析开销
11K–13K 模拟吞吐 req/s

提示:真实场景受提供商速率限制与网络影响。数值并非保证,仅供参考。

架构快照

分层设计:应用 → 高级 API → 统一抽象 → 提供商适配器 → 传输(HTTP/流式 + 可靠性)→ 通用类型。

架构快照图:展示应用、高级API、统一抽象、适配器、传输与通用类型分层
示意图:点击放大查看。

商业与支持

当前阶段:征集早期使用反馈与企业级需求。欢迎联系我们获取演示与合作方案。

常见问题

是否支持本地推理? 是,集成 Ollama,可与云模型混合编排。
如何判断错误是否可重试? 错误类型区分瞬态与永久,可用 e.is_retryable()。
是否会记录用户内容? 默认不记录请求/响应内容,可自行添加指标。
是否支持函数调用? 通过 Tool + FunctionCallPolicy 统一封装。
何时不该用 ai-lib? 只需一次性调用单一供应商的简单脚本,可直接用官方 SDK。