多 Agent 智慧體 - LangChain 大型 ReAct 系統開發
王浩帆 編著
買這商品的人也買了...
-
$980$774
相關主題
商品描述
【本書特色】
★模型的輸入與輸出
★檢索增強生成(RAG)技術
★代理(Agent)技術
★提示詞工程
★載入器、轉換器、向量儲存、檢索器、鏈及記憶
★代理(Agent)技術
★LangGraph多智慧體
★回呼、安全與隱私、評估、
★追蹤偵錯平臺LangSmith
★部署框架LangServe
★應用範本商店LangChain Templates
★零程式AI應用建構平臺Flowise
【書籍內容】
AI時代在ChatGPT之後正式進入「iPhone」年代。
人工智慧的普及化已經開始,尤其是大型語言模型和AI繪圖工具如Stable Diffusion與Midjourney,成為當前的焦點。大型語言模型被視為智慧的「大腦」,廣泛應用於日常生活中。
在此背景下,LangChain的出現使得AI應用的快速開發成為可行,其影響力持續擴大。LangChain不僅提供了豐富的開發工具,還因其龐大的使用者基礎而擁有許多頂級工具,開發人員能夠利用成熟資源和最新技術來開發應用,成為大型語言模型應用開發的關鍵框架,目前並演變成開發、偵錯、部署及應用商店的完整生態系統。LangChain社群的快速成長,越來越多的開發者對如何利用LangChain構建AI應用需求與日俱增。
本書提供LangChain的詳細開發指導,並深入探討其背後的原理,是目前市面上唯一探討ReACT技術的書籍。
作者簡介
王浩帆
從事影視及遊戲相關流程開發十餘年,長期關注並探索大語言模型及其他人工智慧技術在影視及遊戲行業的應用落地。作為開源技術愛好者,不僅積極為LangChain等開源項目貢獻力量,也致力於開發個人的開源項目。
目錄大綱
第1 章 大型語言模型及LangChain 介紹
▌1.1 大型語言模型介紹
1.1.1 大型語言模型總覽
1.1.2 大型語言模型的發展歷史
1.1.3 大型語言模型的優勢
1.1.4 大型語言模型的發展趨勢
1.1.5 總結
▌1.2 LangChain 介紹
1.2.1 LangChain 是什麼
1.2.2 為什麼使用LangChain
1.2.3 LangChain 的應用場景
1.2.4 如何使用LangChain
第2 章 LangChain 開發前的準備
▌2.1 建立OpenAI API Key
▌2.2 使用雲端Colab 進行互動式程式設計
2.2.1 什麼是Colab
2.2.2 如何使用Colab
▌2.3 使用本地Anaconda + JupyterLab 進行互動式程式設計
2.3.1 什麼是Anaconda
2.3.2 安裝與使用Anaconda
2.4 安裝LangChain 函式庫
第3 章 Model(模型)
▌3.1 Model 簡介
▌3.2 LLM 類模型
3.2.1 簡介
3.2.2 程式講解
▌3.3 Chat 類模型
3.3.1 簡介
3.3.2 程式講解
▌3.4 OpenAI 與ChatOpenAI 的區別
▌3.5 OpenAI API
3.5.1 什麼是Token
3.5.2 文字補全API:Completion
3.5.3 對話補全API:Chat Completion
3.5.4 常用參數講解
3.5.5 函式呼叫
▌3.6 自訂LangChain 模型類別
3.6.1 自訂大型語言模型
3.6.2 自訂聊天模型
▌3.7 快取
3.7.1 標準快取
3.7.2 串流式輸出
3.7.3 語義化快取
3.7.4 GPTCache
▌3.8 其他
3.8.1 非同步呼叫大型語言模型
3.8.2 模型配置序列化
3.8.3 使用Hugging Face
第4 章 大型語言模型及Prompt(提示)
▌4.1 Prompt 專案
4.1.1 組成Prompt 的要素
4.1.2 Prompt 的書寫技巧
4.1.3 Prompt 的生命週期
▌4.2 提示詞範本
4.2.1 PromptTemplate
4.2.2 PartialPromptTemplate
4.2.3 PipelinePromptTemplate
4.2.4 FewShotPromptTemplate
4.2.5 自訂提示詞範本
4.2.6 提示詞範本的序列化和反序列化
4.2.7 ChatPromptTemplate
4.2.8 MessagesPlaceholder
4.2.9 FewShotChatMessagePromptTemplate
▌4.3 範例選擇器
4.3.1 LengthBasedExampleSelector
4.3.2 SemanticSimilarityExampleSelector
4.3.3 MaxMarginalRelevanceExampleSelector
4.3.4 NGramOverlapExampleSelector
4.3.5 自訂範例選擇器
▌4.4 輸出解析器
4.4.1 CommaSeparatedListOutputParser
4.4.2 DatetimeOutputParser
4.4.3 EnumOutputParser
4.4.4 XMLOutputParser
4.4.5 StructuredOutputParser
4.4.6 PydanticOutputParser
4.4.7 OutputFixingParser
4.4.8 RetryWithErrorOutputParser
4.4.9 自訂輸出解析器
第5 章 Data Connection(資料連接)
▌5.1 檢索增強生成
5.1.1 什麼是檢索增強生成
5.1.2 檢索增強生成的工作流程
5.1.3 什麼是Embedding(嵌入)
5.1.4 重要的文字前置處理
▌5.2 Document Loader(文件載入器)
5.2.1 CSV 載入器
5.2.2 檔案目錄載入器
5.2.3 HTML 載入器
5.2.4 JSON 載入器
5.2.5 Markdown 載入器
5.2.6 URL 載入器
5.2.7 PDF 載入器
5.2.8 自訂載入器
▌5.3 Document Transformer(文件轉換器)
5.3.1 文字分割
5.3.2 文字中繼資料提取
5.3.3 文字翻譯
5.3.4 生成文字問答
▌5.4 Embedding 與Vector Store(嵌入與向量資料庫)
5.4.1 Embedding
5.4.2 本地向量儲存
5.4.3 雲端向量儲存
▌5.5 Retriever(檢索器)
5.5.1 基礎檢索器
5.5.2 多重提問檢索器
5.5.3 上下文壓縮檢索器
5.5.4 整合檢索器
5.5.5 父文件檢索器
5.5.6 多向量檢索器
5.5.7 自查詢檢索器
5.5.8 檢索內容重排
第6 章 Chain(鏈)
▌6.1 Chain 簡介
▌6.2 LLM Chain(LLM 鏈)
▌6.3 Sequential Chain(順序鏈)
6.3.1 SimpleSequentialChain
6.3.2 SequentialChain
▌6.4 Router Chain(路由鏈)
▌6.5 Transform Chain(轉換鏈)
▌6.6 Summarize Chain(總結鏈)
▌6.7 API Chain 與LLMRequestsChain
6.7.1 API Chain
6.7.2 LLMRequestsChain
▌6.8 SQL Chain(資料庫鏈)
6.8.1 SQLDatabaseChain
6.8.2 SQL Agent
▌6.9 QA Chain(問答鏈)
6.9.1 ConversationChain
6.9.2 RetrievalQA
6.9.3 ConversationalRetrievalChain
▌6.10 LangChain Expression Language(LCEL)
6.10.1 管道操作符號
6.10.2 在鏈中設置參數
6.10.3 配置
6.10.4 設置備用方案
6.10.5 獲取輸入並執行自訂函式
6.10.6 路由鏈
第7 章 Memory(記憶)
▌7.1 Memory 簡介
▌7.2 將歷史對話直接儲存成Memory
7.2.1 ConversationBufferMemory
7.2.2 ConversationBufferWindowMemory
7.2.3 ConversationTokenBufferMemory
▌7.3 將歷史對話總結後儲存成Memory
7.3.1 ConversationSummaryMemory
7.3.2 ConversationSummaryBufferMemory
▌7.4 透過向量資料庫將歷史資料儲存成Memory
▌7.5 多Memory 組合
▌7.6 實體記憶及實體關係記憶
7.6.1 透過記錄實體進行記憶
7.6.2 透過知識圖譜進行記憶
▌7.7 在使用LCEL 的鏈中增加記憶體元件
▌7.8 自訂Memory 元件
第8 章 Agent(代理)
▌8.1 簡介
▌8.2 ReAct 和Plan and Execute(計畫與執行)
8.2.1 ReAct
8.2.2 Plan and Execute(計畫與執行)
▌8.3 Agent 初探
▌8.4 Agent 類型
8.4.1 Chat ReAct
8.4.2 ReAct Document Store
8.4.3 Conversational
8.4.4 OpenAI Function
8.4.5 Self-Ask With Search
8.4.6 Structured Tool Chat
8.4.7 OpenAI Assistant
▌8.5 自訂Tool
8.5.1 使用Tool 物件
8.5.2 繼承BaseTool
8.5.3 使用Tool 裝飾器
8.5.4 Structured Tool
8.5.5 異常處理
▌8.6 人工驗證及輸入
8.6.1 預設人工驗證
8.6.2 自訂使用者審核
8.6.3 人工輸入
▌8.7 Agent 實際應用
8.7.1 結合向量儲存使用Agent
8.7.2 Fake Agent(虛構代理)
8.7.3 自訂Agent
8.7.4 自訂LLM Agent
8.7.5 自訂MRKL Agent
8.7.6 自訂具有工具檢索功能的Agent
8.7.7 Auto-GPT Agent
▌8.8 LangGraph
8.8.1 簡介
8.8.2 範例
第9 章 LangChain 的其他功能
▌9.1 回呼
9.1.1 簡介
9.1.2 自訂回呼處理
9.1.3 將日誌記錄到檔案中
9.1.4 Token 使用量追蹤
9.1.5 LLMonitor
▌9.2 隱私與安全
9.2.1 隱私
9.2.2 安全
▌9.3 Evaluation(評估)
9.3.1 簡介
9.3.2 字串評估器
9.3.3 比較評估器
9.3.4 軌跡評估器
▌9.4 LangSmith
9.4.1 簡介
9.4.2 收集與追蹤
9.4.3 評估
9.4.4 LangSmith Hub
▌9.5 LangServe
9.5.1 簡介
9.5.2 建構
9.5.3 呼叫
9.5.4 LangChain Templates
▌9.6 LangChain v0.1
▌9.7 總結
第10 章 案例開發與實戰
▌10.1 基於Streamlit 實現聊天機器人
10.1.1 簡介
10.1.2 實現
10.1.3 部署
▌10.2 基於Chainlit 實現PDF 問答機器人
10.2.1 簡介
10.2.2 實現
▌10.3 零程式AI 應用建構平臺:Flowise
10.3.1 簡介
10.3.2 執行
10.3.3 使用