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 實施
@之前的代碼,描述現有的場景