langchainrust
一个受 LangChain 启发的 Rust 框架,用于构建基于大模型(LLM)的应用。
📖 详细文档: docs/USAGE.md
✨ 特性
LLM 支持
- OpenAI 兼容接口 - 支持流式与非流式输出
- Qwen - 通义千问接口
- 模型路由 - 根据问题难度自动选择合适的模型
Agent
- ReActAgent - 支持 Tool 调用的智能代理
- PlannedExecutor - 自动分解复杂任务、执行、汇总
- 工具调用 - 可选的工具使用,LLM 自主判断
- RAG 检索 - 结合向量数据库的知识增强
提示词工程
- PromptTemplate - 字符串模板
{var}替换 - ChatPromptTemplate - 多角色消息模板
其他
- Memory - 对话记忆管理
- Chains - 链式调用组合
- Retrieval - 文档分割、向量存储、语义检索
- Tools - 内置计算器、天气、日期时间等工具
📦 安装
[]
= "0.1"
🚀 快速开始
基础 LLM 调用
use ;
let llm = LLMnew;
let response = llm.invoke.await?;
println!;
Agent + Tools
use ;
use Calculator;
use Arc;
let tools: = vec!;
let agent = new;
let executor = new;
let result = executor.run.await?;
RAG 检索增强
use ReActAgent;
use ;
// 准备文档并创建检索器
let retriever = new;
retriever.add_documents.await?;
// 创建带 RAG 的 Agent
let agent = with_retriever;
任务规划
use ;
let executor = new
.with_max_sub_tasks
.with_verbose;
// 自动分解、执行、汇总
let result = executor
.run
.await?;
📚 文档
🧪 运行测试
# 运行全部测试
# 运行特定测试
📁 项目结构
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