langchain_dart
langchain_dart 是一个专为 Dart 和 Flutter 开发者打造的开源框架,旨在帮助人们轻松构建由大语言模型(LLM)驱动的智能应用。作为知名 Python 库 LangChain 的非官方移植版本,它填补了 Flutter 生态在大模型开发工具链上的空白,让移动端和跨平台应用也能便捷地接入 AI 能力。
过去,Dart 开发者若想利用大模型实现聊天机器人、智能问答或文档总结等功能,往往面临缺乏标准化组件和复杂底层处理的难题。langchain_dart 通过提供统一的接口和模块化设计,有效解决了这一痛点。它将核心功能划分为模型交互、数据检索和智能代理三大模块:不仅支持一键切换 OpenAI、Google、Ollama 等多种模型提供商,还内置了文档加载、向量存储及 RAG(检索增强生成)等完整流程工具,更引入了 LangChain 表达式语言(LCEL)来灵活编排复杂任务。
这款工具非常适合熟悉 Dart 语言的软件工程师、Flutter 应用开发者以及希望将 AI 功能集成到移动端的创业团队使用。其模块化的包结构允许用户按需引入,既降低了学习门槛,又保持了项目的轻量化。无论你是想快速原型验证,还是构建生产级的 AI 应用,langchain_dart 都能为你提供坚实的技术支撑,让创意更快落地。
使用场景
某初创团队正利用 Flutter 开发一款跨平台移动应用,旨在让用户通过自然语言对话快速检索企业内部的技术文档库。
没有 langchain_dart 时
- 多模型适配困难:开发者需为 OpenAI、Google 等不同大模型厂商分别编写独立的 HTTP 请求代码,切换模型时几乎要重构整个网络层。
- 数据处理链路断裂:缺乏统一的文档加载与文本分割工具,团队不得不手动解析 PDF/Markdown 文件并自行实现切片逻辑,极易出现上下文截断错误。
- RAG 架构从零搭建:构建“检索增强生成”功能时,需独立整合向量数据库、嵌入模型和检索算法,导致开发周期长达数周且代码耦合度极高。
- 提示词管理混乱:提示词模板硬编码在业务逻辑中,难以动态调整变量或复用最佳实践,导致模型输出不稳定且难以调试。
使用 langchain_dart 后
- 统一接口无缝切换:借助 Model I/O 模块的标准 API,团队仅需修改一行配置即可在 Ollama 本地模型与云端大模型间自由切换,无需改动核心业务代码。
- 内置数据流水线:直接调用现成的 Document Loaders 和 Text Splitters,轻松完成多种格式文档的读取、清洗与智能分块,大幅降低数据预处理门槛。
- 快速组装 RAG 应用:利用 LCEL(LangChain 表达式语言)以声明式方式将检索器、向量存储与大模型串联,仅用数百行代码便在三天内上线了高精度的问答功能。
- 标准化提示工程:通过 Prompt Templates 组件化管理提示词,支持动态注入用户上下文与示例,显著提升了回答的准确性与一致性。
langchain_dart 成功填补了 Flutter 生态在大模型应用开发上的空白,让移动端团队能以最低成本构建生产级的 AI 智能应用。
运行环境要求
- 未说明
未说明
未说明

快速开始
🦜️🔗 LangChain.dart
构建由大语言模型驱动的 Dart/Flutter 应用程序。
什么是 LangChain.dart?
LangChain.dart 是由 Harrison Chase 创建的流行 Python 框架 LangChain 的非官方 Dart 移植版。
LangChain 提供了一组开箱即用的组件,用于与语言模型协作,并提供了一个标准接口,可以将这些组件串联起来,以实现更高级的用例(例如聊天机器人、带有 RAG 的问答系统、智能体、摘要生成、翻译、信息抽取、推荐系统等)。
这些组件可以分为几个核心模块:

- 📃 模型输入输出: LangChain 提供了一个统一的 API,用于与各种 LLM 提供商(如 OpenAI、Google、Mistral、Ollama 等)交互,使开发者能够轻松地在不同提供商之间切换。此外,它还提供了管理模型输入(提示模板和示例选择器)以及解析模型输出(输出解析器)的工具。
- 📚 检索: 帮助加载用户数据(通过文档加载器)、对其进行转换(使用文本分割器)、提取其语义(使用嵌入模型)、存储(在向量数据库中)并检索出来(通过检索器),以便将其用于增强模型的回答(即检索增强生成或 RAG)。
- 🤖 智能体: 利用 LLM 来做出明智决策的“机器人”,决定使用哪些可用工具(如网络搜索、计算器、数据库查询等)来完成指定的任务。
不同的组件可以使用 LangChain 表达式语言 (LCEL) 组合在一起。
动机
大型语言模型(LLMs)彻底改变了自然语言处理(NLP),成为问答、摘要生成、翻译和文本生成等各种应用中的关键组件。
LLMs 的普及正在催生一个新的技术栈。然而,新兴的库和工具主要是在 Python 和 JavaScript 生态系统中开发的。因此,在这些生态系统中利用 LLM 的应用程序数量呈指数级增长。
相比之下,Dart/Flutter 生态系统并未经历类似的增长,这很可能归因于缺乏能够简化与 LLM 交互复杂性的 Dart 和 Flutter 库。
LangChain.dart 旨在填补这一空白,通过抽象 Dart 和 Flutter 中与 LLM 交互的复杂性,使开发者能够有效地发挥它们的联合潜力。
软件包
LangChain.dart 采用模块化设计,允许开发者仅导入所需的组件。该生态体系由多个软件包组成:
langchain_core 
仅包含核心抽象以及用于组合这些抽象的 LangChain 表达式语言。
若要基于 LangChain.dart 构建框架或与其互操作,请依赖此软件包。
langchain 
包含更高层次的、针对特定用例的链、智能体和检索算法,这些是应用程序认知架构的核心。
若要使用 LangChain.dart 构建 LLM 应用程序,请依赖此软件包。
此软件包公开了
langchain_core,因此您无需显式依赖它。
langchain_community 
包含不属于 LangChain.dart 核心 API 的第三方集成和社区贡献的组件。
如果您希望使用其中提供的任何集成或组件,请依赖此软件包。
针对接入的专用包
流行的第三方集成(例如 langchain_openai、langchain_google、langchain_ollama 等)已被拆分到各自的专用包中,以便可以独立导入,而无需依赖整个 langchain_community 包。
如果您想使用特定的集成,请依赖相应的专用包。
| 包 | 版本 | 描述 |
|---|---|---|
| langchain_anthropic | Anthropic 集成(Claude 3.5 Sonnet、Opus、Haiku、Instant 等) | |
| langchain_chroma | Chroma 向量数据库集成 | |
| langchain_firebase | Firebase 集成(Firebase 的 VertexAI,包括 Gemini 1.5 Pro、Gemini 1.5 Flash 等) | |
| langchain_google | Google 集成(GoogleAI、VertexAI、Gemini、PaLM 2、嵌入、向量搜索等) | |
| langchain_mistralai | Mistral AI 集成(Mistral-7B、Mixtral 8x7B、Mixtral 8x22B、Mistral Small、Mistral Large、嵌入等)。 | |
| langchain_ollama | Ollama 集成(Llama 3.2、Gemma 2、Phi-3.5、Mistral nemo、WizardLM-2、CodeGemma、Command R、LLaVA、DBRX、Qwen、Dolphin、DeepSeek Coder、Vicuna、Orca 等) | |
| langchain_openai | OpenAI 集成(GPT-4o、o1、嵌入、工具、视觉、DALL·E 3 等)以及与 OpenAI 兼容的服务(TogetherAI、Anyscale、OpenRouter、One API、Groq、Llamafile、GPT4All 等) | |
| langchain_pinecone | Pinecone 向量数据库集成 | |
| langchain_supabase | Supabase 向量数据库集成 |
API 客户端包
以下包由 LangChain.dart 维护(并在内部使用),但也可以独立使用:
如果您只想直接调用特定提供商的 API,而无需使用 LangChain.dart 的抽象层,可以依赖相应的 API 客户端包。
| 包 | 版本 | 描述 |
|---|---|---|
| anthropic_sdk_dart | Anthropic API 客户端 | |
| chromadb | Chroma DB API 客户端 | |
| googleai_dart | Google AI for Developers API 客户端 | |
| mistralai_dart | Mistral AI API 客户端 | |
| ollama_dart | Ollama API 客户端 | |
| openai_dart | OpenAI API 客户端 | |
| openai_realtime_dart | OpenAI Realtime API 客户端 | |
| tavily_dart | Tavily API 客户端 | |
| vertex_ai | GCP Vertex AI API 客户端 |
集成
LangChain.dart 提供了以下集成:
聊天模型
| 聊天模型 | 软件包 | 流式传输 | 多模态 | 工具调用 | 描述 |
|---|---|---|---|---|---|
| ChatAnthropic | langchain_anthropic | ✔ | ✔ | ✔ | Anthropic Messages API(又称 Claude API) |
| ChatFirebaseVertexAI | langchain_firebase | ✔ | ✔ | ✔ | Vertex AI for Firebase API(又称 Gemini API) |
| ChatGoogleGenerativeAI | langchain_google | ✔ | ✔ | ✔ | Google AI for Developers API(又称 Gemini API) |
| ChatMistralAI | langchain_mistralai | ✔ | Mistral Chat API | ||
| ChatOllama | langchain_ollama | ✔ | ✔ | ✔ | Ollama Chat API |
| ChatOpenAI | langchain_openai | ✔ | ✔ | ✔ | OpenAI Chat API 以及与 OpenAI Chat API 兼容的服务(GitHub Models、TogetherAI、Anyscale、OpenRouter、One API、Groq、Llamafile、GPT4All、FastChat 等) |
| ChatVertexAI | langchain_google | GCP Vertex AI Chat API |
大语言模型
注意:建议优先使用聊天模型,而非大语言模型,因为许多提供商已弃用后者。
| 大语言模型 | 软件包 | 流式传输 | 描述 |
|---|---|---|---|
| Ollama | langchain_ollama | ✔ | Ollama 补全 API |
| OpenAI | langchain_openai | ✔ | OpenAI 补全 API |
| VertexAI | langchain_google | GCP Vertex AI 文本 API |
嵌入模型
向量存储
| 向量存储 | 软件包 | 描述 |
|---|---|---|
| Chroma | langchain_chroma | 与 Chroma 的集成 |
| MemoryVectorStore | langchain | 用于原型设计和测试的内存中向量存储 |
| ObjectBoxVectorStore | langchain_community | 与 ObjectBox 的集成 |
| Pinecone | langchain_pinecone | 与 Pinecone 的集成 |
| Supabase | langchain_supabase | 与 Supabase Vector 的集成 |
| VertexAIMatchingEngine | langchain_google | 与 Vertex AI 向量搜索(原匹配引擎)的集成 |
工具
| 工具 | 包 | 描述 |
|---|---|---|
| CalculatorTool | langchain_community | 用于计算数学表达式 |
| OpenAIDallETool | langchain_openai | OpenAI的DALL-E图像生成器 |
| TavilyAnswerTool | langchain_community | 使用Tavily搜索引擎为查询返回答案 |
| TavilySearchResultsTool | langchain_community | 使用Tavily搜索引擎为查询返回结果列表 |
快速入门
要开始使用LangChain.dart,需在pubspec.yaml文件中添加langchain作为依赖项。同时,还需包含您希望使用的特定集成的依赖项(例如langchain_community、langchain_openai、langchain_google等):
dependencies:
langchain: {version}
langchain_community: {version}
langchain_openai: {version}
langchain_google: {version}
...
LangChain.dart中最基本的构建块是基于某个提示调用LLM。LangChain.dart提供了一个统一的接口来调用不同的LLM。例如,我们可以使用ChatGoogleGenerativeAI来调用Google的Gemini模型:
final model = ChatGoogleGenerativeAI(apiKey: googleApiKey);
final prompt = PromptValue.string('Hello world!');
final result = await model.invoke(prompt);
// 大家好!我是新来的,很高兴能成为这个社区的一员。
然而,LangChain.dart的强大之处在于可以将多个组件串联起来,以实现复杂的用例。例如,一个RAG(检索增强生成)管道,它可以接收用户查询,从向量存储中检索相关文档,使用提示模板对其进行格式化,调用模型,并解析输出:
// 1. 创建向量存储并添加文档
final vectorStore = MemoryVectorStore(
embeddings: OpenAIEmbeddings(apiKey: openaiApiKey),
);
await vectorStore.addDocuments(
documents: [
Document(pageContent: 'LangChain是由Harrison创建的'),
Document(pageContent: 'David在LangChain.dart中将LangChain移植到了Dart语言上'),
],
);
// 2. 定义检索链
final retriever = vectorStore.asRetriever();
final setupAndRetrieval = Runnable.fromMap<String>({
'context': retriever.pipe(
Runnable.mapInput((docs) => docs.map((d) => d.pageContent).join('\n')),
),
'question': Runnable.passthrough(),
});
// 3. 构建RAG提示模板
final promptTemplate = ChatPromptTemplate.fromTemplates([
(ChatMessageType.system, '请仅根据以下内容回答问题:\n{context}'),
(ChatMessageType.human, '{question}'),
]);
// 4. 定义最终链
final model = ChatOpenAI(apiKey: openaiApiKey);
const outputParser = StringOutputParser<ChatResult>();
final chain = setupAndRetrieval
.pipe(promptTemplate)
.pipe(model)
.pipe(outputParser);
// 5. 运行管道
final res = await chain.invoke('谁创建了LangChain.dart?');
print(res);
// David创建了LangChain.dart
文档
社区
随时了解该领域的最新消息和更新,参与精彩讨论,并在官方的LangChain.dart Discord服务器中获得帮助。
贡献
| 📢 招募合作者 📢 |
|---|
| 我们正在寻找合作者加入核心维护团队。 |
欢迎新贡献者!请查看我们的贡献指南,以帮助您快速入门。 加入我们的Discord,与其他维护者交流。我们将帮助您尽快完成您的首次贡献!
相关项目
- LangChain: 原始的Python LangChain项目。
- LangChain.js: LangChain的JavaScript移植版。
- LangChain.go: LangChain的Go语言移植版。
- LangChain.rb: LangChain的Ruby语言移植版。
赞助商
许可证
LangChain.dart采用MIT许可证授权。
版本历史
googleai_dart-v3.0.02025/12/27googleai_dart-v2.1.02025/12/23langchain_mistralai-v0.3.1+12025/12/22langchain-v0.8.12025/12/20langchain-v0.8.0+12025/10/16langchain-v0.8.02025/10/16openai_dart-v0.5.52025/08/31langchain_firebase-v0.2.2+42025/08/25openai_dart-v0.5.4+12025/08/25langchain-v0.7.92025/08/10langchain-v0.7.8+12025/07/30openai_dart-v0.5.12025/06/18langchain-v0.7.82025/06/15langchain-v0.7.7+22024/12/16langchain_openai-v0.7.2+52024/10/31langchain_community-v0.3.2+22024/10/29langchain_openai-v0.7.2+32024/10/29langchain-v0.7.7+12024/10/29langchain-v0.7.72024/10/29langchain-v0.7.62024/10/29常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
Deep-Live-Cam
Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。