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
社区学习交流平台订阅:
1
共 0 条评论, 1 页
评论区
写评论还没有评论