majiayu000/litellm-rs

GitHub: majiayu000/litellm-rs

一个用 Rust 编写的高性能 AI 网关,以 OpenAI 兼容格式统一调用 100 多家大模型 API,兼具智能路由与企业级特性。

Stars: 24 | Forks: 5

# litellm-rs 一个用 Rust 编写的高性能 AI Gateway - 使用 OpenAI 格式调用 100+ LLM API。 [![Crates.io](https://img.shields.io/crates/v/litellm-rs.svg)](https://crates.io/crates/litellm-rs) [![文档](https://docs.rs/litellm-rs/badge.svg)](https://docs.rs/litellm-rs) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) ## 功能特性 - **100+ AI Providers** - OpenAI, Anthropic, Google, Azure, AWS Bedrock 等 - **OpenAI 兼容 API** - OpenAI SDK 的直接替代品 - **高性能** - 10,000+ 请求/秒,<10ms 路由开销 - **智能路由** - 负载均衡、故障转移、成本优化 - **企业级就绪** - 认证、限流、缓存、可观测性 ## 快速开始 ### 作为库 (API 集成) ``` use litellm_rs::{completion, user_message, system_message}; #[tokio::main] async fn main() -> Result<(), Box> { // Set your API key std::env::set_var("OPENAI_API_KEY", "sk-..."); let response = completion( "gpt-4", vec![ system_message("You are a helpful assistant."), user_message("Hello!"), ], None, ).await?; println!("{}", response.choices[0].message.content.as_ref().unwrap()); Ok(()) } ``` ### 作为 Gateway 服务器 ``` # 安装 cargo install litellm-rs # 运行 gateway --config config/gateway.yaml ``` ## 安装 ``` # Full gateway with SQLite + Redis (default) [dependencies] litellm-rs = "0.3" # API-only - lightweight, no actix-web/argon2/aes-gcm/clap [dependencies] litellm-rs = { version = "0.3", default-features = false } # API-only with metrics [dependencies] litellm-rs = { version = "0.3", default-features = false, features = ["lite"] } # Gateway server without storage [dependencies] litellm-rs = { version = "0.3", default-features = false, features = ["gateway"] } ``` ## 支持的提供商 | Provider | Chat | Embeddings | Images | Audio | |----------|------|------------|--------|-------| | OpenAI | ✅ | ✅ | ✅ | ✅ | | Anthropic | ✅ | - | - | - | | Google (Gemini) | ✅ | ✅ | ✅ | - | | Azure OpenAI | ✅ | ✅ | ✅ | ✅ | | AWS Bedrock | ✅ | ✅ | - | - | | Google Vertex AI | ✅ | ✅ | ✅ | - | | Groq | ✅ | - | - | ✅ | | DeepSeek | ✅ | - | - | - | | Mistral | ✅ | ✅ | - | - | | Cohere | ✅ | ✅ | - | - | | OpenRouter | ✅ | - | - | - | | Together AI | ✅ | ✅ | - | - | | Fireworks AI | ✅ | ✅ | - | - | | Perplexity | ✅ | - | - | - | | Replicate | ✅ | - | ✅ | - | | Hugging Face | ✅ | ✅ | - | - | | Ollama | ✅ | ✅ | - | - | | 以及 80+ 更多... | | | | | ## 环境变量 ``` # Provider API Keys OPENAI_API_KEY=sk-... ANTHROPIC_API_KEY=sk-ant-... GOOGLE_API_KEY=... AZURE_OPENAI_API_KEY=... AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=... GROQ_API_KEY=... DEEPSEEK_API_KEY=... # 可选 LITELLM_VERBOSE=true # Enable verbose logging ``` ## 示例 ### 多 Provider 路由 ``` use litellm_rs::{completion, user_message}; // Automatically routes to the right provider based on model name let openai = completion("gpt-4", vec![user_message("Hi")], None).await?; let anthropic = completion("anthropic/claude-3-opus", vec![user_message("Hi")], None).await?; let google = completion("gemini/gemini-pro", vec![user_message("Hi")], None).await?; let bedrock = completion( "bedrock/us.anthropic.claude-3-5-sonnet-20241022-v2:0", vec![user_message("Hi")], None, ) .await?; ``` ### Embeddings ``` use litellm_rs::{embedding, embed_text}; // Single text let embedding = embed_text("text-embedding-3-small", "Hello world").await?; // Batch let embeddings = embedding( "text-embedding-3-small", vec!["Hello", "World"], None, ).await?; ``` ### 流式传输 ``` use litellm_rs::{completion_stream, user_message}; use futures::StreamExt; let mut stream = completion_stream( "gpt-4", vec![user_message("Tell me a story")], None, ).await?; while let Some(chunk) = stream.next().await { if let Ok(chunk) = chunk { print!("{}", chunk.choices[0].delta.content.unwrap_or_default()); } } ``` ## 性能 - **吞吐量**: 10,000+ 请求/秒 - **延迟**: <10ms 路由开销 - **内存**: ~50MB 基础占用 - **并发**: 基于 Tokio 的完全异步 ## 文档 - [API 文档](https://docs.rs/litellm-rs) - [配置指南](./config/gateway.yaml.example) - [示例](./examples/) ## 安全 请参阅 [SECURITY.md](./SECURITY.md) 了解安全策略和漏洞报告。 ## 许可证 MIT 许可证 - 详情请参阅 [LICENSE](./LICENSE)。 ## 致谢 灵感来源于 [LiteLLM](https://github.com/BerriAI/litellm) (Python)。
标签:Actix-web, AI网关, Anthropic, API管理, API集成, AWS Bedrock, Azure OpenAI, CIS基准, GPT-4, LLM API, OpenAI兼容, Redis, Rust, Rust库, SQLite, 反向代理, 可观测性, 可视化界面, 大模型开发工具, 大语言模型蜜罐, 失败转移, 搜索引擎查询, 统一接口, 缓存, 网络流量审计, 负载均衡, 通知系统, 通知系统, 配置错误