langchain-rust

用 Rust 写 LLM 应用,类型安全、性能好、部署轻

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 开发框架 🍴 复刻 180 🐛 待处理 12 👀 关注 13
GitHub ↗
GitHub 星标 ★ 1359
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费,采用MIT许可证

项目预览

langchain-rust 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类开发框架
开发团队Abraxas-365
定价模式🏷️完全免费
价格说明开源免费,采用MIT许可证
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议MIT
主要语言Rust
技术栈/模型langchain,llm,llms,openai,rust
GitHub 星标★ 1359
上线时间2024-01-31 00:00:00
代码更新2026-11-03
仓库体积1.6 MB
本站数据更新2026-11-03
维护状态活跃
收录时间2026-09-12
浏览次数1

项目介绍

langchain-rust 是 LangChain 的 Rust 实现,目标是在 Rust 生态中提供编写 LLM 应用所需的核心抽象。它把提示词模板、模型调用、链式组合、记忆、输出解析、向量存储与检索等能力封装成 Rust 库,让开发者不必从零拼接 HTTP 请求和状态管理,就能构建问答、RAG、Agent 等程序。项目支持 OpenAI 等主流模型接口,并可通过 trait 扩展自定义 LLM、Embedding 与向量库。相比 Python 版,它更强调类型安全、零成本抽象和并发性能,适合对延迟、资源占用和部署体积敏感的服务端场景。当前星标约 1.3k,处于成长期,API 仍在演进,适合愿意跟进版本变化、追求 Rust 工程化 LLM 应用的团队。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-09-12 · 当前星标 ★ 1359

技术标签

使用教程

ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。

难度:入门 约 10 分钟 部署方式:库/依赖 6 步

环境要求

  • 已安装 Rust 工具链(可使用 cargo 命令)
  • 一个已存在的 Cargo 项目(执行 cargo add 的目录)
  • OpenAI API Key(README 提到可用环境变量或直接传参方式提供)
  • 需要异步运行时(示例使用 #[tokio::main])

安装与启动步骤

  1. 1添加依赖

    在现有 Cargo 项目根目录执行 cargo add,把 langchain-rust 加入依赖;库内部依赖 serde_json 做序列化。

    cargo add langchain-rust
  2. 2初始化模型

    用 OpenAI::default() 创建模型,可 with_model 指定型号;不想用环境变量时用 OpenAIConfig 传 key。

    use langchain_rust::llm::openai::{OpenAI, OpenAIModel};
    
    let open_ai = OpenAI::default().with_model(OpenAIModel::Gpt4oMini.to_string());
  3. 3直接调用模型

    调用 invoke 传入字符串即可拿到模型回复;示例中问的是训练数据里没有的内容。

    let resp = open_ai.invoke("What is rust").await.unwrap();
    println!("{}", resp);
  4. 4构建提示词链

    用 message_formatter! 组合 system 消息与 human 模板,再交给 LLMChainBuilder 生成链。

    let prompt = message_formatter![
        fmt_message!(Message::new_system_message("You are world class technical documentation writer.")),
        fmt_template!(HumanMessagePromptTemplate::new(template_fstring!("{input}", "input")))
    ];
    
    let chain = LLMChainBuilder::new().prompt(prompt).llm(open_ai.clone()).build().unwrap();
  5. 5加入对话历史

    模板里用 fmt_placeholder! 占位,调用时通过 history 传入历史消息列表实现多轮上下文。

    let prompt = message_formatter![
        fmt_message!(Message::new_system_message("You are world class technical documentation writer.")),
        fmt_placeholder!("history"),
        fmt_template!(HumanMessagePromptTemplate::new(template_fstring!("{input}", "input")))
    ];
  6. 6运行验证

    用 cargo run 执行你的示例程序,观察终端输出的模型回复与链返回结果。

    cargo run

关键配置

配置项必填说明示例
openai_api_key是OpenAI 密钥,可通过环境变量或 with_api_key 传入sk-xxxxxxxx
model否with_model 指定的模型型号,示例使用 Gpt4oMiniGpt4oMini

如何确认成功

运行后终端打印出模型对 "What is rust" 的回复,链调用成功时输出 Result: ... 而非 panic 报错。

常见问题

Q:不想用环境变量提供密钥怎么办?

A:可在初始化模型时用 OpenAIConfig::default().with_api_key("sk-xxxxxxxx") 直接传入密钥,再链式调用 with_model 指定型号。

Q:支持哪些模型和向量库?

A:LLM 支持 OpenAI、Azure OpenAI、Ollama、Anthropic Claude;Embedding 还支持 FastEmbed、MistralAI;向量库含 OpenSearch、Postgres 等。

Q:怎么让模型记住之前的对话?

A:在 message_formatter! 中用 fmt_placeholder!("history") 占位,调用 chain.invoke 时通过 prompt_args! 的 history 传入历史消息列表。

Q:为什么一定要 serde_json?

A:README 明确说明该库运行严重依赖 serde_json 做数据序列化,添加依赖后无需额外处理。

注意事项

  • 项目仍处于成长期,API 可能随版本演进发生变化,升级前留意版本变更。
  • 密钥属敏感信息,示例中的 sk-xxxxxxxx 只是占位,请勿把真实密钥提交到仓库。
  • README 只给出 cargo add 的安装方式,未涉及 Docker、云部署等其他安装途径。

核心亮点

  • 用 Rust trait 抽象 LLM、Embedding、向量库,可替换实现且编译期检查接口
  • 提供链式组合、提示模板、记忆与输出解析等常用模块,减少重复造轮子
  • 面向服务端场景,运行时开销小、并发友好,适合对性能和部署体积敏感的项目

不足之处

  • 生态与文档成熟度不及 Python 版 LangChain,示例和第三方集成数量有限
  • API 仍在快速演进,版本升级可能带来破坏性变更,需要跟进维护

适用场景

  • 用 Rust 构建低延迟的 RAG 问答服务
  • 在已有 Rust 后端中集成 LLM 能力,避免引入 Python 运行时
  • 开发对资源占用敏感的 Agent 或对话服务并部署到边缘环境

替代项目

langchain、llm-chain、rig

上一篇:langchain4j-spring

下一篇:langchain-skills

同类项目推荐

llama_ros 开源

在 ROS 2 里直接跑本地大模型,机器人秒变能听会看会聊

llama.cpp (GGUF LLMs) and llava.cpp (GGUF VLMs) for ROS 2

★ 268 2026-10-16
fondbot 开源

用 PHP 快速搭建多平台聊天机器人,省去重复造轮子。

Chatbot framework

★ 102 2026-08-09
dsh-hub-cli 开源

一条命令搞定 DSH 插件校验、解析与安装

Open-source CLI, schemas, resolver, and DSH agent tools for DSH Plugin Hub

★ 276 2026-09-25
agent-workflows 开源

让 AI 编码更稳,不怕模型悄悄变笨

Engineering workflows for AI coding agents or flesh engineers. It helps absorb silen···

★ 81 2026-08-09
LangGraph-GUI 开源

拖拽节点,可视化构建并运行 LangGraph 工作流

Visual node-edge graph GUI editor for LangGraph and run with local LLM or online API

★ 272 2026-08-09
apowerb 开源

把 AI Agent 从原型编排到上生产运维

The open-source agentic framework to build, orchestrate, and operate production AI a···

★ 149 2026-10-15
Telegram.Bot.Framework 开源

用 C# 快速搭建 Telegram 机器人,省去重复造轮子

Simple framework for building Telegram bots

★ 98 2026-08-09
llms-with-matlab 开源

在 MATLAB 里几行代码直连 GPT、Azure 与本地 Ollama

Connect MATLAB to LLM APIs, including OpenAI® Chat Completions, Azure® OpenAI Serv···

★ 238 2026-09-16
ai-sdk-provider-codex-cli 开源

用ChatGPT订阅白嫖GPT-5,接入AI SDK应用

Vercel AI SDK community provider for Codex CLI - Use Plus/Pro Subscription via spawn···

★ 71 2026-08-09