微信扫码
与创始人交个朋友
我要投稿
相信一直关注AI领域的同学都听说过这个工具-LangChain,这是一个融合了语言模型与多样化工具、数据及应用程序的新兴技术框架。LangChain的核心价值在于它多维度地重塑了人工智能与人类社会的互动界面,通过将大型语言模型与广泛资源的无缝对接,同时,LangChain整合知识图谱、数据库等多元信息源,为复杂决策过程提供了详实而深入的数据支撑。在自动化与效率提升方面LangChain的贡献也不容小觑,凭借语言模型的自动处理潜能,诸多文本处理任务,例如文档管理、内容创造乃至编程工作,都实现了前所未有的自动化程度,有效减轻了人力负担,加速了工作流程。
LangChain就像是一个创新应用的孵化器,为开发者铺设了一条通往定制化AI解决方案的高速公路。通过灵活组合多样化的服务与模型,,简化复杂的模型调用与基础架构管理,即使是非专业的开发者也能轻松驾驭高级应用的构建,加速了AI技术的民主化进程。
简言之,学习AI,咱们都不能落下LangChain!近日LangChain也发布了支持工作流的Agent配置-langgraph-studio,开发门槛大大降低!如果你之前没有了解过,现在入局刚刚好!今天,咱们就来了解和学习一下LangChain
了解LangChain
LangChain 是一个开源框架,它旨在简化和促进基于语言模型的应用程序开发。LangChain 的核心理念是让开发者能够更容易地利用LLM大型语言模型来构建复杂的应用场景,它通过提供一系列组件和接口,简化了与LLMs的交互,使得开发者能够快速构建复杂的语言模型应用,无需从零开始编写所有基础代码。
LangChain 几乎可以作为所有 LLM 的通用接口,为构建 LLM 应用程序并将其与外部数据源和软件工作流程集成提供集中式开发环境。LangChain可以简单理解为是 LLM 领域的 Spring。
主要特点
低代码/无代码集成:LangChain 提供了用户友好的接口和工具,帮助开发者快速构建复杂的语言模型应用,方便地与其他系统和数据源集成,如数据库、向量数据库、API等
模块化设计:该框架采用了模块化的架构,允许开发者灵活选择和组合不同的组件,比如不同的语言模型、数据存储解决方案、链路(chains)和代理(agents)等功能组件可以灵活组合,以适应多样化的应用场景需求。
增强功能:LangChain 不仅提供对基础语言模型调用的支持,还集成了增强功能,比如记忆机制(memory)、上下文管理、链式思考(chain-of-thought)等,帮助提升模型的连贯性、一致性和问题解决能力。
工作流程
通过分块和向量化数据源,优化LLM的检索与生成过程,实现高效、智能的文本处理。
工作流程
1.用户向基于LangChain的聊天机器人输入提示(prompt)
2.系统会在向量存储中查询与提示相关的信息块。这个查询过程类似于在搜索引擎中搜索关键词,但在这里,它是基于向量的相似度来进行的。
3.基于向量的相似度,找到相关信息块。
4.LangChain会将这些信息块与原始提示一起提供给LLM。
5.LLM随后利用这些信息来生成针对用户输入的回答或完成文本。
核心概念
基于以上的流程(一个标准的RAG+Agent的工作流程),主要包含以下核心概念
Compents:为LLMs提供接口封装、模板提示和信息检索索引
LLM Wrappers:允许连接到大型语言模型,如GPT-4或Hugging Face提供的模型。
Prompt Templates:动态生成查询,避免硬编码需求。以动态地将用户输入插入到模板中,并发送给语言模型。
Indexes:帮助从语言模型中提取相关信息。
Chains:将多个组件组合起来解决特定任务。
Agents:让模型与外部环境互动,如执行API调用。
核心组件
基于以上的核心概念设计,所包含的能力组件组成:
主要包括以下六个部分:
模型I/O(Model I/O):负责与语言模型进行交互,处理输入和输出数据。
检索(Retrieval):从特定数据源检索信息,如数据库或API,为应用提供所需内容。
代理(Agents):根据高级指令决定使用哪些工具或组件,协调应用内的操作和信息流。
链(Chains):定义一系列有序步骤以完成特定任务。
内存(Memory):在LangChain运行间保持应用状态。
回调(Callbacks):在LangChain的特定步骤触发额外动作,如日志记录或中间步骤的流式传输。
架构组成
LangChain 库:Python 和 JavaScript 库。包含无数组件的接口和集成、将这些组件组合成链和代理的基本运行时,以及链和代理的现成实现。
LangChain 模板:一系列易于部署的参考架构,适用于各种任务。
LangServe:用于将 LangChain 链部署为 REST API 的库。
LangSmith:一个开发者平台,可让您调试、测试、评估和监控基于任何 LLM 框架构建的链,并与 LangChain 无缝集成。
LangChain的应用
工具使用(Tool use)
LangChain为其他“工具”构建自然语言接口,无论是 API、函数、数据库等,主要是得益于它的以下特性:
1.良好的模型输出解析,可以轻松从模型输出中提取 JSON、XML、OpenAI 函数调用等。
2.大量内置工具
工具的使用方式主要有两种:chains 和 agents。
方式一:chains 创建预定义的工具使用顺序,适合流程比较明确的场景
方式二:作为Agents的一环,根据LLM模型的决策决定什么时候以及什么频率,如何循环来使用工具。
萃取(Extraction)
在需要对信息进行萃取的需求场景,也很适合LangChain构建的应用来提供助力。萃取是指从大型语言模型(LLM,Large Language Model)生成的原始文本中提取出有用的、结构化的信息。LangChain构建的应用因为组成的环节间的数据对用户透明,允许将自由形式的文本转换成更有组织、易于处理的数据格式,进而可以用于各种目的,提高信息的可用性和实用性。下面是几个具体场景下的举例:
提取结构化行以插入数据库:这意味着从LLM生成的文本中提取特定的数据,并将这些数据转换成一种格式,使其能够被直接插入到数据库中。例如,如果LLM生成了关于书籍的描述,萃取过程可能会提取出书名、作者、出版年份等信息,并将它们组织成数据库中的一行记录。
提取API参数:当需要调用API(应用程序编程接口)时,通常需要提供一些参数。LLM可以根据用户的需求或上下文生成这些参数。例如,如果用户想要查询天气预报,LLM可以生成一个包含城市名和日期的API请求。
提取用户查询的不同部分(例如,语义搜索与关键字搜索):用户可能提出一个复杂的查询,其中包含不同的意图或需要不同类型的处理。萃取过程可能涉及识别查询中的不同部分,并将其分类为语义搜索(理解查询的深层含义)和关键字搜索(基于特定关键字的搜索)。这可以帮助系统更准确地理解用户的需求,并提供更相关的响应。
LangChain-Agentic workflow的发展
LangChain 从应用开发框架出发,提供了一套代码级工具集,旨在降低 LLM 的开发难度,围绕 Agent 应用生命周期提供全方面的支持能力,助力高效打造 AI 大模型应用。
Agent 应用生命周期包括:开发、测试、评估验证、部署、监控等。开发功能由 LangChain 组件提供,官方支持 Python 和 JavaScript 两种语言。测试、评估验证、监控由 LangSmith 组件支持。部署由 LangServe 组件提供支持。
国内厂商也纷纷看好低代码LLM 应用开发平台,小纸条之前也写过很多对国内Agent智能体平台的分析和测评,各大产品都在插件机工具生态上体现了很专业的能力,尤其是流程灵活的可视化编排。
单纯依赖 LLM 的能力和固定的流程,在现实操作中成本很高,这促使了包含大量复杂逻辑的应用流程的产生,如何开发与调试这些应用流程成为了新的挑战,不会代码的人基本无法驾驭。
基于此,让用户可以0代码的完成智能体的构建在交互上就显得直观重要,这种Agentic workflow 的概念也正逐渐成为行业的共识,如果哪家产品没有这个,那竞争力的的确确逊色了一些。
LangChain的Agent IDE—langgraph-studio
LangChain,作为Agent智能代理开发领域的头部大V,也早已为这一变化着手布局。为此,他们在今年1月初推出了LangGraph的试验版本,并在6月末正式发布了版本0.10,旨在为Agent应用的编排开发提供一个强大的工具。
LangGraph的核心目标是破解“黑盒”现象,让用户能更精细地控制开发流程。与像Dify这样的低代码可视化工具不同的是,LangGraph选择了编程导向的路径,这既是一种传承LangChain用户习惯的优势策略,但是这也意味着在处理复杂流程逻辑时,因缺乏直观性而给开发与调试带来一定难度。
为了进一步降低开发和调试的成本,LangChain于8月1日宣布了LangGraph Studio的问世。这是一个基于LangGraph的Agent智能代理集成开发环境(IDE),提供了一种开发大型语言模型(LLM)应用的新方法,,通过提供一个专门的智能代理(Agent)集成开发环境(IDE),支持开发者以可视化的方式进行 Agent 的开发与调试。算是一种专为Agent打造的IDE。
Github 地址:
https://github.com/langchain-ai/langgraph-studio
LangChain与LlamaIndex 对比
选择使用 LangChain 还是 LlamaIndex 取决于具体的项目需求和开发者的技术背景。简单总结:
如果需要全面的语言模型集成框架,选 LangChain;
如果重点是优化语言模型与文本数据的交互,LlamaIndex 可能更合适。
详细讲解一下二者的不同之处:
功能重点:
LangChain 侧重于提供一系列的组件和工具,帮助开发者将语言模型与其他数据源、记忆机制、链(Chains)等结合起来,以构建更复杂和强大的应用。它更注重提供通用的架构和模块,方便开发者根据具体需求灵活组合。
LlamaIndex 则重点在于为大型语言模型与外部数据的交互提供高效的索引和查询能力,帮助模型更好地利用外部知识源。
数据处理:
LangChain 在处理和整合多种数据类型方面具有较强的能力,包括文本、数据库、知识图谱等。
LlamaIndex 更专注于优化对文本数据的索引和检索,以提高语言模型与大规模文本数据的交互效率。
技术实现:
LangChain可能包含多种NLP技术和深度学习模型
LlamaIndex则结合了Elasticsearch和NLP技术。
应用场景:
LangChain 适用于各种需要将语言模型与外部组件集成的复杂应用,如问答系统、智能客服、自动化文本生成等。
LlamaIndex 特别适用于需要快速检索和利用大量文本数据来增强语言模型回答的场景,例如知识密集型的问答系统。
langgraph-studio实操
Github 地址:
https://github.com/langchain-ai/langgraph-studio
首先,我们打开官网下载,首先要确认下Mac设备的型号, 目前只有 Apple Silicon Mac可以支持langgraph-studio(点击菜单栏左上角的苹果图标,然后选择“关于本机”选项。在弹出的窗口中,如果在“芯片”部分中看到 Apple M1(或更高版本,如 M2 等),则意味着使用的是带有 Apple Silicon CPU 的 Mac;如果在“处理器”部分中看到英特尔处理器,则表示正在使用的是带有英特尔芯片的 Mac。
LangGraph Studio 需要 docker-compose 版本 2.22.0+ 或更高版本。请确保已安装并运行 Docker,然后再继续。
当我们第一次打开 LangGraph Studio 桌面应用程序时,您需要通过 LangSmith 登录。
成功验证后,可以选择要使用的 LangGraph 应用程序文件夹 - 我们可以选择示例项目langgraph-example。
选择有效的项目后,LangGraph Studio 将启动 LangGraph API 服务器,我们应该会看到一个呈现图形的 UI。
然后我们就可以开始运行了,LangGraph Studio允许我们使用不同的输入和配置运行图形。
要开始新的运行:
在下拉菜单(左侧窗格的左上角)中,选择一个图表。在我们的示例中,该图称为代理。图表列表对应于 langgraph.json 配置中的图表键。
在下拉菜单(左侧窗格的左上角)中,选择一个图表。在我们的示例中,该图称为代理。图表列表对应于 langgraph.json 配置中的图表键。
在左侧窗格的底部,编辑输入部分。
单击“提交”以调用所选图表。
在右侧窗格中查看调用的输出。
LangGraph Studio 允许我们编辑线程状态并分叉线程以使用更新的状态创建替代图形执行。
在右侧窗格中,将鼠标悬停在要编辑的步骤上,然后单击“铅笔”图标进行编辑。
进行编辑。
单击“分叉”以更新状态并使用更新后的状态创建新的图形执行。
LangGraph Studio 允许我们添加中断到特定节点
导航到带有图形可视化的左侧窗格。
将鼠标悬停在要添加中断的节点上。您应该会看到节点左侧显示一个 + 按钮。
单击 + 调用所选图表。
通过添加输入/配置并单击提交来运行图表
好啦,今天我们对LangChain的简单了解就到这儿,希望大家有时间的时候也可以去官网跟着实操一下,真正的动手去了解一下这个AI领域框架的领头大哥,到底拥有着什么样的能力,又能如何为我们所用,带来价值!
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-12-22
ANTHROPIC:高端的食材往往需要最朴素的烹饪方法: prompt, workflow, agent
2024-12-21
用LangChain教AI模仿你的写作风格:详细教程
2024-12-18
一站式 LLM 工程观测平台:Langfuse,让所有操作可观测
2024-12-17
LLMs开发者必看!Pydantic AI代理框架震撼登场!
2024-12-16
用LangChain实现一个Agent
2024-12-16
通过阿里云 Milvus 和 LangChain 快速构建 LLM 问答系统
2024-12-16
大模型部署调用(vLLM+LangChain)
2024-12-14
利用 LangGraph 和代理优化工作流程效率:关键功能、用例和集成...
2024-04-08
2024-08-18
2024-06-03
2024-10-10
2024-04-08
2024-04-17
2024-06-24
2024-04-11
2024-07-13
2024-04-12
2024-12-02
2024-11-25
2024-10-30
2024-10-11
2024-08-18
2024-08-16
2024-08-04
2024-07-29