【Rust日报】rig - 构建可扩展、模块化且高效的 LLM 驱动应用程序
rig - 构建可扩展、模块化且高效的 LLM 驱动应用程序Rig 是一个 Rust 库,用于构建可扩展、模块化且高效的 LLM 驱动应用程序。您可以在官方文档和 crate API 参考中找到更多信息。全面支持 LLM 补全和嵌入式工作流简洁但强大的抽象层,兼容主流 LLM 提供商(如 OpenAI、Cohere)和向量存储(如 MongoDB、内存存储)轻量集成:通过极少的样板代码即可将 LL
rig - 构建可扩展、模块化且高效的 LLM 驱动应用程序
Rig 是一个 Rust 库,用于构建可扩展、模块化且高效的 LLM 驱动应用程序。
您可以在官方文档和 crate API 参考中找到更多信息。
-
全面支持 LLM 补全和嵌入式工作流
-
简洁但强大的抽象层,兼容主流 LLM 提供商(如 OpenAI、Cohere)和向量存储(如 MongoDB、内存存储)
-
轻量集成:通过极少的样板代码即可将 LLM 无缝集成到您的应用中
use rig::{completion::Prompt, providers::openai};
#[tokio::main]
async fn main() {
// Create OpenAI client and model
// This requires the `OPENAI_API_KEY` environment variable to be set.
let openai_client = openai::Client::from_env();
let gpt4 = openai_client.agent("gpt-4").build();
// Prompt the model and print its response
let response = gpt4
.prompt("Who are you?")
.await
.expect("Failed to prompt GPT-4");
println!("GPT-4: {response}");
}
https://github.com/0xPlaygrounds/rig
Statum - 构建有限状态机的零样板 Rust 库
Statum 是一个用于构建有限状态机的零样板 Rust 库,支持编译时状态转换验证。
为什么选择 Statum?
-
编译时安全:状态转换在编译阶段验证,确保无非法转换。
-
简洁的宏:使用简洁的宏定义状态和状态机,减少样板代码。
-
状态特定数据:轻松添加和访问与特定状态绑定的数据。
-
持久化友好:可从外部数据源无缝重建状态机。
use statum::{state, machine};
#[state]
pub enum TaskState {
New,
InProgress,
Complete,
}
#[machine]
struct Task<S: TaskState> {
id: String,
name: String,
}
impl Task<New> {
fn start(self) -> Task<InProgress> {
self.transition()
}
}
impl Task<InProgress> {
fn complete(self) -> Task<Complete> {
self.transition()
}
}
fn main() {
let task = Task::new("task-1".to_owned(), "Important Task".to_owned())
.start()
.complete();
}
https://github.com/eboody/statum
--
From 日报小组 Mike
社区学习交流平台订阅:
-
Rustcc论坛: 支持rss
-
微信公众号:Rust语言中文社区
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)