3 releases
Uses new Rust 2024
| 0.1.2 | Feb 19, 2026 |
|---|---|
| 0.1.1 | Jan 18, 2026 |
| 0.1.0 | Jan 5, 2026 |
#642 in Asynchronous
115KB
2.5K
SLoC
langchainrust
一个受 LangChain 启发的 Rust 框架,用于构建基于大模型(LLM)的应用。
📖 详细文档: docs/USAGE.md
✨ 特性
LLM 支持
- OpenAI 兼容接口 - 支持流式与非流式输出
- Qwen - 通义千问接口
- 模型路由 - 根据问题难度自动选择合适的模型
Agent
- ReActAgent - 支持 Tool 调用的智能代理
- PlannedExecutor - 自动分解复杂任务、执行、汇总
- 工具调用 - 可选的工具使用,LLM 自主判断
- RAG 检索 - 结合向量数据库的知识增强
提示词工程
- PromptTemplate - 字符串模板
{var}替换 - ChatPromptTemplate - 多角色消息模板
其他
- Memory - 对话记忆管理
- Chains - 链式调用组合
- Retrieval - 文档分割、向量存储、语义检索
- Tools - 内置计算器、天气、日期时间等工具
📦 安装
[dependencies]
langchainrust = "0.1"
🚀 快速开始
基础 LLM 调用
use langchainrust::llms::{LLM, OpenAIConfig};
let llm = LLM::new(OpenAIConfig {
api_key: std::env::var("OPENAI_API_KEY").unwrap(),
base_url: "https://api.openai.com/v1".to_string(),
model: "gpt-3.5-turbo".to_string(),
streaming: false,
factor: 3,
});
let response = llm.invoke("你好,介绍一下 Rust 语言").await?;
println!("{}", response);
Agent + Tools
use langchainrust::agent::{AgentExecutor, ReActAgent};
use langchainrust::tools::Calculator;
use std::sync::Arc;
let tools: Vec<Arc<dyn Tool>> = vec![Arc::new(Calculator)];
let agent = ReActAgent::new(llm, tools.clone(), None);
let executor = AgentExecutor::new(Box::new(agent), tools);
let result = executor.run("计算 37 + 48").await?;
RAG 检索增强
use langchainrust::agent::ReActAgent;
use langchainrust::retrieval::{
Document, InMemoryVectorStore, MockEmbeddingModel,
RecursiveCharacterSplitter, SimilarityRetriever, TextSplitter,
};
// 准备文档并创建检索器
let retriever = SimilarityRetriever::new(vector_store, embedding_model);
retriever.add_documents(chunks).await?;
// 创建带 RAG 的 Agent
let agent = ReActAgent::with_retriever(
llm, tools, memory, retriever, 3
);
任务规划
use langchainrust::agent::{PlannedExecutor, ReActAgent};
let executor = PlannedExecutor::new(llm, agent, tools)
.with_max_sub_tasks(3)
.with_verbose(true);
// 自动分解、执行、汇总
let result = executor
.run("分析项目代码,写测试用例,运行测试")
.await?;
📚 文档
🧪 运行测试
# 运行全部测试
cargo test
# 运行特定测试
cargo test --test planner_test -- --nocapture
cargo test --test retrieval_test -- --nocapture
📁 项目结构
src/
├── llms/ # LLM 实现(OpenAI、Qwen、模型路由)
├── agent/ # Agent 框架
│ ├── react/ # ReActAgent 实现
│ └── planner/ # 任务规划模块
├── retrieval/ # RAG 检索组件
├── tools/ # 工具接口与内置工具
├── prompts/ # 提示词模板
├── memory/ # 记忆管理
└── chains/ # 链式调用
🔧 配置与安全
- 不要将真实 API Key 提交到 Git 仓库
- 推荐使用环境变量:
OPENAI_API_KEY - 支持 OpenAI 代理地址配置
📄 License
MIT OR Apache-2.0
Dependencies
~8–26MB
~319K SLoC