catalog/repos/0xplaygrounds--rig.md

103 lines
5.1 KiB
Markdown
Raw Normal View History

2026-04-07 11:44:56 +08:00
# Rust LLM应用开发库
`Rust` `LLM` `AI` `向量数据库` `Agent`
## 目录
- [目录](#目录)
- [Rig 是什么?](#rig-是什么)
- [高级特性](#高级特性)
- [谁在生产中使用 Rig](#谁在生产中使用-rig)
- [快速开始](#快速开始)
- [简单示例](#简单示例)
- [集成支持](#集成支持)
## Rig 是什么?
Rig 是一个用于构建可扩展、模块化、符合人体工程学的 **LLM 驱动**应用程序的 Rust 库。
更多关于此 crate 的信息可以在[官方文档](https://docs.rig.rs)和 [crate 文档](https://docs.rs/rig-core/latest/rig/)API 参考)中找到。
## 特性
- 支持多轮流式传输和提示的智能体工作流
- 完整的 [GenAI 语义约定](https://opentelemetry.io/docs/specs/semconv/gen-ai/) 兼容性
- 20+ 模型提供商,统一在单一接口下
- 10+ 向量存储集成,统一在单一接口下
- 完整支持 LLM 补全和嵌入工作流
- 支持转录、音频生成和图像生成模型能力
- 以最少的样板代码将 LLM 集成到您的应用中
- 完整的 WASM 兼容性(仅核心库)
## 谁在使用 Rig
以下是使用 Rig 的公司和个人的非完整列表:
- [St Jude](https://www.stjude.org/) —— 在 [`proteinpaint`](https://github.com/stjude/proteinpaint)(一款基因组可视化工具)中使用 Rig 构建聊天机器人功能。
- [Coral Protocol](https://www.coralprotocol.org/) —— 大量使用 Rig包括内部使用以及作为 [Coral Rust SDK](https://github.com/Coral-Protocol/coral-rs) 的一部分。
- [VT Code](https://github.com/vinhnx/vtcode) —— 一款基于 Rust 的终端编码智能体,通过 Tree-sitter 和 ast-grep 实现语义代码智能。使用 `rig` 简化 LLM 调用并实现模型选择器。
- [Dria](https://dria.co/) —— 去中心化 AI 网络,当前将 Rig 用于其[计算节点](https://github.com/firstbatchxyz/dkn-compute-node)。
- [Nethermind](https://www.nethermind.io/) —— 在其 [Neural Interconnected Nodes Engine](https://github.com/NethermindEth/nine) 框架中使用 Rig。
- [Neon](https://neon.com) —— 在其 [app.build](https://github.com/neondatabase/appdotbuild-agent) V2 Rust 版本中使用 Rig。
- [Listen](https://github.com/piotrostr/listen) —— 致力于成为 AI 投资组合管理智能体首选框架,驱动 [Listen 应用](https://app.listen-rs.com/)。
您也在生产中使用 Rig[提交 Issue](https://www.github.com/0xPlaygrounds/rig/issues) 将您的名字添加进来!
## 快速开始
```bash
cargo add rig-core
```
### 简单示例
```rust
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`](./rig-core/examples))中找到更多示例。更详细的使用案例会定期发布在我们的 [Dev.to 博客](https://dev.to/0thtachi),并添加到 Rig 官方文档 [(docs.rig.rs)](http://docs.rig.rs)。
## 支持的集成
向量存储以独立的伴生 crate 形式提供:
- MongoDB[`rig-mongodb`](https://github.com/0xPlaygrounds/rig/tree/main/rig-mongodb)
- LanceDB[`rig-lancedb`](https://github.com/0xPlaygrounds/rig/tree/main/rig-lancedb)
- Neo4j[`rig-neo4j`](https://github.com/0xPlaygrounds/rig/tree/main/rig-neo4j)
- Qdrant[`rig-qdrant`](https://github.com/0xPlaygrounds/rig/tree/main/rig-qdrant)
- SQLite[`rig-sqlite`](https://github.com/0xPlaygrounds/rig/tree/main/rig-sqlite)
- SurrealDB[`rig-surrealdb`](https://github.com/0xPlaygrounds/rig/tree/main/rig-surrealdb)
- Milvus[`rig-milvus`](https://github.com/0xPlaygrounds/rig/tree/main/rig-milvus)
- ScyllaDB[`rig-scylladb`](https://github.com/0xPlaygrounds/rig/tree/main/rig-scylladb)
- AWS S3Vectors[`rig-s3vectors`](https://github.com/0xPlaygrounds/rig/tree/main/rig-s3vectors)
- HelixDB[`rig-helixdb`](https://github.com/0xPlaygrounds/rig/tree/main/rig-helixdb)
以下提供商以独立的伴生 crate 形式提供:
- AWS Bedrock[`rig-bedrock`](https://github.com/0xPlaygrounds/rig/tree/main/rig-bedrock)
- Fastembed[`rig-fastembed`](https://github.com/0xPlaygrounds/rig/tree/main/rig-fastembed)
- Eternal AI[`rig-eternalai`](https://github.com/0xPlaygrounds/rig/tree/main/rig-eternalai)
- Google Vertex[`rig-vertexai`](https://github.com/0xPlaygrounds/rig/tree/main/rig-vertexai)
我们还有一些其他关联 crate提供使用 Rig 时可能有用的附加功能:
- `rig-onchain-kit` —— [Rig Onchain Kit](https://github.com/0xPlaygrounds/rig-onchain-kit),旨在使 Solana/EVM 与 Rig 之间的交互更易于实现。