LangChain 多任务应用开发
Q: LangChain dify coze是竞品关系 都是AI Agent搭建平台,dify和coze属于低代码,langChain属于高代码,coze优于difyQ:向量数据库是存储向量,做相似度检索的,可以用faiss milvus chromdbQ:使用AI编程,要有清晰的逻辑思维,把这个思维告诉给AIQ: LangChain, LangGraph是一家,LangGraph是前者的升级版本
Q: LangChain dify coze是竞品关系 都是AI Agent搭建平台,dify和coze
属于低代码,langChain属于高代码,coze优于dify
Q:向量数据库是存储向量,做相似度检索的,可以用faiss milvus chromdb
Q:使用AI编程,要有清晰的逻辑思维,把这个思维告诉给AI
Q: LangChain, LangGraph是一家,LangGraph是前者的升级版本 能力更强,
前者的工作流是线性的,后者的工作流更加复杂
LangChain:提供了一套工具、组件和接口,简化了创建LLM应用的过程。
LangChain由多个组件组成;
1 Models:模型,比如 GPT-4o, Qwen
2 Prompts:提示,包括提示管理、提示优化和提示序列化
3 Memory:记忆,用来保存和模型交互时的上下文
4 Indexes:索引,用于结构化文档,方便和模型交互,如果要构建自己的知
识库,就需要各种类型文档的加载 转换 长文本切割 文本向量计算,向量索
引存储查询等
5 Chains:链 一系列对各组件的调用
6 Agents:代理,决定模型采取哪些行动,执行并且观察流程,直到完成为止
Agent的作用
Agent决定调用哪些工具完成用户的需求,以及工具的调用顺序
LangChain中集成了很多了常用的tools(工具),也可以调用自己的工具
Tool工具
serpapi 搜索引擎
1lm-math 给Agent提供数学计算
示例:问当前北京的温度是多少华氏度,这个温度的1/4是多少?
Thinking:Agent需要哪些tools?
Serpapi 搜索当前北京的温度
1lm-math 计算这个温度的1/4 如果不调用数学工具 大模型在计算上可能会回答错误
Memory 记忆
大模型的记忆空间一般是32K,大的是128K,是有限的
LangChain中的几种短期记忆方式:
1 BufferMemory
将之前的对话完全存储下来,传给LLM,但大模型的记忆空闲有限
适用:对话不多时
2 BufferWindowMemory
最近的K组对话存储下来,传给LLM
适用:对话很多 但希望简单的处理方式时
3 ConversionMemory
把对话进行摘要,将摘要存储在内存中,相当于将压缩过的历史对话传给LLM
适用:对话很多 要用全部历史对话 就快速压缩
4 VectorStore-backed Memory 将之前所有对话通过向量存储到VectorDB
(向量数据库)中,每次对话,会根据用户的输入信息,匹配向量数据库中最相
似的K组对话
适用:对话很多 要精细化做对话查找时
Agent设计
AGENT_TMPL=“”"按照给定的格式回答一下问题,你可以使用下面这些工
具:
(tools}
回答时需要遵循以下用–括起来的格式:
Question:我需要回答的问题
Thought:回答这个上述问题我需要做些什么
Action:"(tool name)”中的一个工具名
Action Input:选择这个工具所需要的输入
Observation:选择这个工具返回的结果
…(这个 思考/行动/行动输入/观察 可以重复N次,N不超过5)
Thought:我现在知道最终答案
Final Ansser:原始输入问题的最终答案
现在开始回答,记得在给出最终答案前,需要按照指定格式进行一步一步的推
理。
Question:{input}
{agent_scratchpad)
“”"
Q:如何创建个人的知识库,并可以智能问答?
-
Tool
不同的需求,调用不同的Too1,根据query和 tool description之间的匹
配进行调用
几乎任何功能都能封装成tool,比如查天气,查新闻,计算数学题 -
RAG
query=>与 RAG中的chunk进行相似度的匹配(基于embedding)=> 取Top5的chunk 给到LLM进行回答
RAG的常用场景有智能客服,问答
Q: LangChain更早的提出了Tool调用
Q:选择一个框架时,主要看框架给提供的工具全不全,推荐langchain coze
Q:Function Call里面可以调用别的api查询吗?
A:是的,比如可以在Function Call中,使用 Claude写代码
Q: tool是agent的一部分吗?
A:是的,agent是全集,是组装工厂,在工厂里面tool是重要的一个环节
Q:最终项目落地可以用coze吗?
A:如果不考虑数据安全问题,可以用coze或者 使用coze本地私有化部署的版
ReAct范式(Reason- Action)
大模型的推理方式,大模型回答问题是一步一步的逼近答案的,不断地思考 运行 观察,是一个思考模型,指示大模型如何工作:
思考=>Action Action Input=>观察>思考
适用于有一定复杂程度的问题,让AI自己进行探索求解
@5-product_llm.py 帮我使用LangChain中的ReAct模式简化这个代码,写
到6-product_llm.py
fewshot: 小样本的示例,给到大模型作为RAG的上下文知识,做错题本
Q:怎么保证调用工具后回答内容的安全性?比如问怎么造炸弹?
做一个安全审核工具,在回答前先审核
Q:ReAct的实现过程:(大模型的自我对话的过程)
=>我要完成XXX,我看到了{tool},我可以选择某一个tool,传入 input
=>在代码中调用这个tool,传入相应的 tool input=>得到tool的 ouput
=>我要完成XXX,我看到了{tool},我可以选择某一个tool,传入 input
…
Case 工具链组合
Q:推理模型幻觉大,可以用来头脑风暴,实际项目中用得比较少
Case 搭建故障诊断Agent
帮我搭建一个网络故障诊断类的Agent,工具之间存在串联,第一个工具的输出是第二个工具的输入;如果有10个工具的话,会有很多输入输出的关系。
希望Agent,在适当的时候调用适合的工具
可以参考 @1-simple toolchain.py编写新的python
Q:业务系统的日志,每小时上G的日志,有无好的分析办法?
Step1 先通过关键词定位位置 做个粗筛,再通过时间范围进行筛选
Step2 把有问题的日志整理起来 当文字量不是太大的情况下,可以让LLM进行解读
LECEL构建任务链
LECEL是lanchain 推出的链式表达式语言,支持用 | 操作符将各类单元组合。每个 | 左侧的输出会自动作为右侧的输入,实现数据流式传递。
优势:
代码简洁,逻辑清晰,易于多步任务编排
支持多分支 条件 并行等复杂链路
易于插拔 复用和调试每个子任务
典型用法:
串联:A | B | C,A的输出传给B, B的输出传给C。
分支:{“x”: A, “y”: B }, 并行执行A和B。
支持流式:如 .stream() 方法可边生成边消费。
AI Agent对比
工具 核心定位 适用性
LangChain 开源LLM应用开发框架 适用于外企 快速构建RAG 对话系统 工具调用等线性任务
LangGraph 升级的LangChain 基于图的循环和条件逻辑,支持多Agent协作 适用于外企的复杂任务
Qwen-Agent 通义千问的AI Agent框架 可快速构建RAG MCP等应用 适用于国外 作者推荐
Coze 和 Dify 适用于业务人员拖拉拽生成简单AI应用
AI Agent选择建议
无代码开发:Coze
快速原型开发:LangChain 或 Qwen-Agent
复杂Agent系统:LangGraph(多Agent协作) 或 Dify(API深度集成)
企业私有化:Dify(开源部署),Qwen-Agent 或 LangChian+LangGraph(灵活组合)
Q:如何学习大模型?
A:
1 先找业务场景
2 选择适合的方案
方案1 RAG LangChain RAG方案
方案2 LangChain ReAct + Tool方案
3 实施
@之前的代码,描述现有的场景
更多推荐
所有评论(0)