langchain_dart

GitHub
676 148 简单 1 次阅读 4天前MIT语言模型开发框架Agent图像
AI 解读 由 AI 自动生成,仅供参考

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 智能应用。

运行环境要求

操作系统
  • 未说明
GPU

未说明

内存

未说明

依赖
notes该工具是 LangChain 的 Dart/Flutter 移植版,用于构建 LLM 驱动的应用。它不依赖 Python 环境,而是通过 pub.dev 包管理器安装 Dart 包。具体运行环境取决于所选的集成包(如 Ollama 需本地部署,OpenAI/Google 等需 API Key)。核心功能包括模型 I/O、检索增强生成 (RAG) 和智能体 (Agents)。
python不适用 (基于 Dart/Flutter)
langchain_core
langchain
langchain_community
langchain_openai
langchain_google
langchain_anthropic
langchain_ollama
langchain_mistralai
langchain_chroma
langchain_pinecone
langchain_dart hero image

快速开始

🦜️🔗 LangChain.dart

tests docs langchain Discord MIT

构建由大语言模型驱动的 Dart/Flutter 应用程序。

什么是 LangChain.dart?

LangChain.dart 是由 Harrison Chase 创建的流行 Python 框架 LangChain 的非官方 Dart 移植版。

LangChain 提供了一组开箱即用的组件,用于与语言模型协作,并提供了一个标准接口,可以将这些组件串联起来,以实现更高级的用例(例如聊天机器人、带有 RAG 的问答系统、智能体、摘要生成、翻译、信息抽取、推荐系统等)。

这些组件可以分为几个核心模块:

LangChain.dart

  • 📃 模型输入输出: 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_core

仅包含核心抽象以及用于组合这些抽象的 LangChain 表达式语言。

若要基于 LangChain.dart 构建框架或与其互操作,请依赖此软件包。

langchain langchain

包含更高层次的、针对特定用例的链、智能体和检索算法,这些是应用程序认知架构的核心。

若要使用 LangChain.dart 构建 LLM 应用程序,请依赖此软件包。

此软件包公开了 langchain_core,因此您无需显式依赖它。

langchain_community langchain_community

包含不属于 LangChain.dart 核心 API 的第三方集成和社区贡献的组件。

如果您希望使用其中提供的任何集成或组件,请依赖此软件包。

针对接入的专用包

流行的第三方集成(例如 langchain_openailangchain_googlelangchain_ollama 等)已被拆分到各自的专用包中,以便可以独立导入,而无需依赖整个 langchain_community 包。

如果您想使用特定的集成,请依赖相应的专用包。

版本 描述
langchain_anthropic langchain_anthropic Anthropic 集成(Claude 3.5 Sonnet、Opus、Haiku、Instant 等)
langchain_chroma langchain_chroma Chroma 向量数据库集成
langchain_firebase langchain_firebase Firebase 集成(Firebase 的 VertexAI,包括 Gemini 1.5 Pro、Gemini 1.5 Flash 等)
langchain_google langchain_google Google 集成(GoogleAI、VertexAI、Gemini、PaLM 2、嵌入、向量搜索等)
langchain_mistralai langchain_mistralai Mistral AI 集成(Mistral-7B、Mixtral 8x7B、Mixtral 8x22B、Mistral Small、Mistral Large、嵌入等)。
langchain_ollama 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 langchain_openai OpenAI 集成(GPT-4o、o1、嵌入、工具、视觉、DALL·E 3 等)以及与 OpenAI 兼容的服务(TogetherAI、Anyscale、OpenRouter、One API、Groq、Llamafile、GPT4All 等)
langchain_pinecone langchain_pinecone Pinecone 向量数据库集成
langchain_supabase langchain_supabase Supabase 向量数据库集成

API 客户端包

以下包由 LangChain.dart 维护(并在内部使用),但也可以独立使用:

如果您只想直接调用特定提供商的 API,而无需使用 LangChain.dart 的抽象层,可以依赖相应的 API 客户端包。

版本 描述
anthropic_sdk_dart anthropic_sdk_dart Anthropic API 客户端
chromadb chromadb Chroma DB API 客户端
googleai_dart googleai_dart Google AI for Developers API 客户端
mistralai_dart mistralai_dart Mistral AI API 客户端
ollama_dart ollama_dart Ollama API 客户端
openai_dart openai_dart OpenAI API 客户端
openai_realtime_dart openai_realtime_dart OpenAI Realtime API 客户端
tavily_dart tavily_dart Tavily API 客户端
vertex_ai 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 ModelsTogetherAIAnyscaleOpenRouterOne APIGroqLlamafileGPT4AllFastChat 等)
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

嵌入模型

嵌入模型 软件包 描述
GoogleGenerativeAIEmbeddings langchain_google Google AI 嵌入 API
MistralAIEmbeddings langchain_mistralai Mistral 嵌入 API
OllamaEmbeddings langchain_ollama Ollama 嵌入 API
OpenAIEmbeddings langchain_openai OpenAI 嵌入 API
VertexAIEmbeddings 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_communitylangchain_openailangchain_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服务器中获得帮助。

LangChain.dart Discord服务器

贡献

📢 招募合作者 📢
我们正在寻找合作者加入核心维护团队。

欢迎新贡献者!请查看我们的贡献指南,以帮助您快速入门。 加入我们的Discord,与其他维护者交流。我们将帮助您尽快完成您的首次贡献!

相关项目

赞助商

许可证

LangChain.dart采用MIT许可证授权。

版本历史

googleai_dart-v3.0.02025/12/27
googleai_dart-v2.1.02025/12/23
langchain_mistralai-v0.3.1+12025/12/22
langchain-v0.8.12025/12/20
langchain-v0.8.0+12025/10/16
langchain-v0.8.02025/10/16
openai_dart-v0.5.52025/08/31
langchain_firebase-v0.2.2+42025/08/25
openai_dart-v0.5.4+12025/08/25
langchain-v0.7.92025/08/10
langchain-v0.7.8+12025/07/30
openai_dart-v0.5.12025/06/18
langchain-v0.7.82025/06/15
langchain-v0.7.7+22024/12/16
langchain_openai-v0.7.2+52024/10/31
langchain_community-v0.3.2+22024/10/29
langchain_openai-v0.7.2+32024/10/29
langchain-v0.7.7+12024/10/29
langchain-v0.7.72024/10/29
langchain-v0.7.62024/10/29

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|昨天
开发框架图像Agent

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 真正成长为懂上

140.4k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|3天前
开发框架图像Agent

Deep-Live-Cam

Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。

88.9k|★★★☆☆|今天
开发框架图像Agent

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 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|昨天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|昨天
图像数据工具视频