langchain-rust:用Rust构建LLM应用的最佳工具
langchain-rust是Rust语言实现的LangChain,为开发者提供了一套强大的工具和组件,用于构建基于大型语言模型(LLM)的应用程序。本文将为大家介绍langchain-rust的主要特性、安装使用方法以及相关学习资源,帮助开发者快速上手这个优秀的Rust LLM开发框架。
项目简介
langchain-rust是LangChain的Rust语言实现版本,旨在通过组合性的方式帮助开发者使用Rust构建LLM应用。该项目提供了丰富的组件和工具,包括:
- 多种LLM模型支持:OpenAI、Azure OpenAI、Ollama、Anthropic Claude等
- 嵌入(Embeddings)支持
- 向量存储:OpenSearch、Postgres、Qdrant、SQLite等
- 链式调用:LLM Chain、Conversational Chain、QA Chain等
- Agent和Tools支持
- 语义路由
- 文档加载器
通过这些组件,开发者可以快速构建对话系统、问答系统、代理系统等各类LLM应用。
安装与使用
要开始使用langchain-rust,首先需要在Rust项目中添加依赖:
[dependencies]
langchain-rust = "0.1.0"
然后可以根据需要添加特定功能:
# 使用SQLite
cargo add langchain-rust --features sqlite
# 使用Postgres
cargo add langchain-rust --features postgres
# 使用Qdrant
cargo add langchain-rust --features qdrant
快速开始示例
下面是一个使用OpenAI模型创建简单对话链的示例:
use langchain_rust::{
chain::{Chain, LLMChainBuilder},
llm::openai::{OpenAI, OpenAIModel},
prompt::HumanMessagePromptTemplate,
};
#[tokio::main]
async fn main() {
let open_ai = OpenAI::default().with_model(OpenAIModel::Gpt4oMini.to_string());
let prompt = message_formatter![
fmt_message!(Message::new_system_message(
"You are a helpful assistant."
)),
fmt_template!(HumanMessagePromptTemplate::new(template_fstring!(
"{input}", "input"
)))
];
let chain = LLMChainBuilder::new()
.prompt(prompt)
.llm(open_ai)
.build()
.unwrap();
let result = chain.invoke(prompt_args! {
"input" => "Tell me a joke about Rust programming."
}).await.unwrap();
println!("Result: {:?}