LangChain 多任務應用開發

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:如何創建個人的知識庫,并可以智能問答?

  1. Tool
    不同的需求,調用不同的Too1,根據query和 tool description之間的匹
    配進行調用
    幾乎任何功能都能封裝成tool,比如查天氣,查新聞,計算數學題

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93498.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93498.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93498.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

實用技巧:Oracle中精準查看表占用空間大小

目錄實用技巧:Oracle中精準查看表占用空間大小一、為什么需要精準統計表空間占用?二、完整查詢SQL:覆蓋表、LOB、索引三、SQL語句關鍵邏輯解析1. 基礎表:dba_tables 與 dba_tablespaces2. 子查詢1:統計表段空間&#x…

openEuler等Linux系統中如何復制移動硬盤的數據

在 openEuler 系統中,提示 “You should mount volume first” ,意思是需要先掛載移動硬盤的分區才能訪問: 安裝必要軟件(針對特殊文件系統) 如果移動硬盤是 NTFS 等非 Linux 原生支持的文件系統格式,需要安裝對應的支持軟件,以掛載 NTFS 格式移動硬盤為例,需要安裝 …

java如何把字符串數字轉換成數字類型

在Java中將字符串數字轉換為數字類型有多種方法,以下是詳細說明和示例代碼: 一、基礎轉換方法 Integer.parseInt() String str "123"; int num Integer.parseInt(str); // 轉換為intDouble.parseDouble() String str "3.14"; dou…

WPFC#超市管理系統(6)訂單詳情、顧客注冊、商品銷售排行查詢和庫存提示、LiveChat報表

WPF&C#超市管理系統10. 訂單詳情10.1 頁面布局10.2 功能實現11. 顧客注冊12. 商品銷售排行查詢與庫存提示14. LiveChart報表總結10. 訂單詳情 10.1 頁面布局 頁面分三行布置,第一行復用OutstorageView界面的第一行,將屬性和命令修改為顧客相關第二…

【Linux】文件基礎IO

1.關于文件的共識原理 1.文件內容屬性 2.文件分為打開的文件和沒打開的文件 3.打開的文件: 文件被打開必須先被加載到內存,所以本質是研究進程和文件的關系,一個進程可以打開多個文件。操作系統內部一定存在大量被打開的文件,要進…

基于微信小程序的生態農產銷售管理的設計與實現/基于C#的生態農產銷售系統的設計與實現、基于asp.net的農產銷售系統的設計與實現

基于微信小程序的生態農產銷售管理的設計與實現/基于C#的生態農產銷售系統的設計與實現、基于asp.net的農產銷售系統的設計與實現

Java研學-SpringCloud(五)

一 Nacos 配置中心 1 引入依賴 – services.pom每個微服務都需要<!--配置中心--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>2 配置文件 –…

.NET 中的延遲初始化:Lazy<T> 與LazyInitializer

標簽&#xff1a;線程安全、延遲初始化、按需初始化、提升啟動性能 項目地址&#xff1a;NitasDemo/12Lazy/LazyDemo at main Nita121388/NitasDemo 目錄Lazy<T>1. 概念2. 基本用法 3. 異常處理 4. 線程安全模式 5. 示例1. 線程安全模式 (ExecutionAndPublication)2. 發…

【LLIE專題】LLIE低照度圖像結構先驗提取方法

Zero-Shot Day-Night Domain Adaptation with a Physics Prior&#xff08;ICCV,2021&#xff09;專題介紹一、研究背景二、方法1. 物理反射模型與顏色不變特征的推導&#xff08;原理推導、物理依據&#xff09;2. 顏色不變特征的計算&#xff08;特征計算公式整個過程&#x…

Font Awesome Kit 使用詳解

在現代網頁設計中&#xff0c;圖標是提升用戶體驗的關鍵元素。而 Font Awesome 作為最受歡迎的圖標庫&#xff0c;其最新版本 Font Awesome 7 通過 Kit 功能提供了更便捷高效的集成方式。本文將帶你全面了解如何使用 Font Awesome Kit&#xff0c;讓你的網站圖標管理變得輕松高…

第七十八章:AI的“智能美食家”:輸出圖像風格偏移的定位方法——從“濾鏡病”到“大師風范”!

AI圖像風格偏移前言&#xff1a;AI的“火眼金睛”——輸出圖像風格偏移的定位方法&#xff01;第一章&#xff1a;痛點直擊——“畫風跑偏”&#xff1f;AI生成藝術的“審美危機”&#xff01;第二章&#xff1a;探秘“畫風密碼”&#xff1a;什么是風格偏移&#xff1f;它藏在…

Android原生(Kotlin)與Flutter混合開發 - 設備控制與狀態同步解決方案

Kotlin 原生實現 (Android) 1.1 AndroidManifest.xml <manifest xmlns:android"http://schemas.android.com/apk/res/android"package"com.afloia.smartconnect"><applicationandroid:name".MainApplication"android:label"Smart …

已開源:Highcharts.NET,Highcharts Android,與Highcharts iOS集成

近期了解到&#xff0c;Highcharts官方宣布將Highcharts.NET&#xff0c;Highcharts Android&#xff0c;與Highcharts iOS集成轉換為開源。對于Highcharts提供世界一流的數據可視化工具&#xff0c;一直致力于將資源集中在可以為您提供最大價值的地方。官方提到&#xff1a;這…

KingbaseES:一體化架構與多層防護,支撐業務的持續穩定運行與擴展

聲明&#xff1a;文章為本人真實測評博客&#xff0c;非廣告 目錄 引言 一、什么是KingbaseES&#xff1f; 二、KingbaseES核心特性 1. 一鍵遷移&#xff0c;極速性能&#xff0c;安全無憂? 2. 性能強勁&#xff0c;擴展性強&#xff0c;助力企業應對大規模并發挑戰? …

scikit-learn/sklearn學習|廣義線性回歸 Logistic regression的三種成本函數

【1】引言 前序學習進程中&#xff0c;已經對線性回歸和嶺回歸做了初步解讀。 實際上&#xff0c; Logistic regression是一種廣義的線性模型&#xff0c;在對線性分類的進一步學習前&#xff0c;有必要了解 Logistic regression。 【2】Logistic regression的3種成本函數 …

Tiptap(基于 Prosemirror)vs TinyMCE:哪個更適合你的技術棧?

在這之前&#xff0c;先來介紹一下 ProseMirror&#xff1a; 1. ProseMirror 是底層內核 定位&#xff1a;一個強大的 富文本編輯框架/引擎&#xff0c;不是一個成品編輯器。 作者&#xff1a;Marijn Haverbeke&#xff08;CodeMirror 作者&#xff09;。 核心思想&#xff1…

多墨智能-AI一鍵生成工作文檔/流程圖/思維導圖

本文轉載自&#xff1a;多墨智能-AI一鍵生成工作文檔/流程圖/思維導圖 - Hello123工具導航 ** 一、AI 文檔與視覺化創作助手 多墨智能是一款基于人工智能的在線工具&#xff0c;支持一鍵生成專業文檔、流程圖與思維導圖&#xff0c;通過關鍵詞輸入快速完成內容創作&#xff0…

Kafka_Broker_副本基本信息

Kafka副本作用&#xff1a;提高數據可靠性 Kafka默認副本1個&#xff0c;生產環境一般配置為2個&#xff0c;保證數據可靠性&#xff0c;太多副本會增加磁盤存儲空間&#xff0c;增加網絡上數據傳輸&#xff0c;降低效率 Kafka中副本分為&#xff1a;Leader和Follower&#xff…

FreeRTOS 中的守護任務(Daemon Task)

在 FreeRTOS 中&#xff0c;守護任務&#xff08;Daemon Task&#xff09;是一個特殊的系統任務&#xff0c;主要用于管理軟件定時器和其他后臺操作。以下是關于 FreeRTOS 守護任務的詳細信息&#xff1a; 守護任務的作用軟件定時器管理&#xff1a; 當啟用 configUSE_TIMERS 時…

博士招生 | 麻省理工學院 招收化學+人工智能方向 博士/博士后

內容源自“圖靈學術博研社”gongzhonghao學校簡介麻省理工學院&#xff08;MIT&#xff09;QS世界排名第1&#xff0c;是全球科技研究領域的頂尖學府。自成立以來&#xff0c;MIT以其卓越的科研和教育質量贏得了世界的尊敬。學校在科學、工程、經濟和管理等多個領域具有深遠的影…