5.1 KiB
5.1 KiB
Rust LLM应用开发库
Rust LLM AI 向量数据库 Agent
目录
Rig 是什么?
Rig 是一个用于构建可扩展、模块化、符合人体工程学的 LLM 驱动应用程序的 Rust 库。
更多关于此 crate 的信息可以在官方文档和 crate 文档(API 参考)中找到。
特性
- 支持多轮流式传输和提示的智能体工作流
- 完整的 GenAI 语义约定 兼容性
- 20+ 模型提供商,统一在单一接口下
- 10+ 向量存储集成,统一在单一接口下
- 完整支持 LLM 补全和嵌入工作流
- 支持转录、音频生成和图像生成模型能力
- 以最少的样板代码将 LLM 集成到您的应用中
- 完整的 WASM 兼容性(仅核心库)
谁在使用 Rig?
以下是使用 Rig 的公司和个人的非完整列表:
- St Jude —— 在
proteinpaint(一款基因组可视化工具)中使用 Rig 构建聊天机器人功能。 - Coral Protocol —— 大量使用 Rig,包括内部使用以及作为 Coral Rust SDK 的一部分。
- VT Code —— 一款基于 Rust 的终端编码智能体,通过 Tree-sitter 和 ast-grep 实现语义代码智能。使用
rig简化 LLM 调用并实现模型选择器。 - Dria —— 去中心化 AI 网络,当前将 Rig 用于其计算节点。
- Nethermind —— 在其 Neural Interconnected Nodes Engine 框架中使用 Rig。
- Neon —— 在其 app.build V2 Rust 版本中使用 Rig。
- Listen —— 致力于成为 AI 投资组合管理智能体首选框架,驱动 Listen 应用。
您也在生产中使用 Rig?提交 Issue 将您的名字添加进来!
快速开始
cargo add rig-core
简单示例
use rig::{client::CompletionClient, completion::Prompt, providers::openai};
#[tokio::main]
async fn main() {
// 创建 OpenAI 客户端和模型
// 需要设置 `OPENAI_API_KEY` 环境变量
let openai_client = openai::Client::from_env();
let gpt4 = openai_client.agent("gpt-4").build();
// 提示模型并打印响应
let response = gpt4
.prompt("Who are you?")
.await
.expect("Failed to prompt GPT-4");
println!("GPT-4: {response}");
}
注意:使用 #[tokio::main] 需要启用 tokio 的 macros 和 rt-multi-thread 特性,或直接使用 full 启用所有特性(cargo add tokio --features macros,rt-multi-thread)。
您可以在各 crate 的 examples 目录(如 rig-core/examples)中找到更多示例。更详细的使用案例会定期发布在我们的 Dev.to 博客,并添加到 Rig 官方文档 (docs.rig.rs)。
支持的集成
向量存储以独立的伴生 crate 形式提供:
- MongoDB:
rig-mongodb - LanceDB:
rig-lancedb - Neo4j:
rig-neo4j - Qdrant:
rig-qdrant - SQLite:
rig-sqlite - SurrealDB:
rig-surrealdb - Milvus:
rig-milvus - ScyllaDB:
rig-scylladb - AWS S3Vectors:
rig-s3vectors - HelixDB:
rig-helixdb
以下提供商以独立的伴生 crate 形式提供:
- AWS Bedrock:
rig-bedrock - Fastembed:
rig-fastembed - Eternal AI:
rig-eternalai - Google Vertex:
rig-vertexai
我们还有一些其他关联 crate,提供使用 Rig 时可能有用的附加功能:
rig-onchain-kit—— Rig Onchain Kit,旨在使 Solana/EVM 与 Rig 之间的交互更易于实现。