LangChain技術解密:構建大模型應用的全景指南( 簡體 字) | |
作者:王浩帆 | 類別:1. -> 程式設計 C78 |
出版社:電子工業出版社 | 3dWoo書號: 56436 詢問書籍請說出此書號! 有庫存 NT售價: 590 元 |
出版日:5/1/2024 | |
頁數:380 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121477379 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第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 Sumarize 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 使用 可讀性高、實戰性強附贈全書配套示例代碼深入解析7大核心功能簡化大模型開發流程不僅是LangChain的詳盡開發指南,更是以其中的諸多知識為軸心,向外擴散,深度闡述其背后的原理之美
2024年,人工智能走向大眾化的序幕已經拉開。無論是聲勢浩大的大語言模型,還是AI繪圖領域的佼佼者,如Stable Diffusion與Midjourney,皆已成為潮流之巔的焦點。其中,大語言模型尤為矚目,其作為一顆閃耀著智慧之光的“大腦”,已廣泛融入人們生活的各個場景。在這一背景下,LangChain應運而生,這一建立在大語言模型之上的框架,讓快速開發AI應用成為可能,其影響力也正逐步擴大。LangChain不僅為開發人員提供了大量的現成工具,同時受益于其廣泛的用戶群體,很多尖端、具有實驗性質的工具也相繼被納入其中。這使得開發人員不僅能夠運用那些已極為成熟的資源去構建應用,同時能夠借助那些集成的工具,迅速洞悉并嘗試大語言模型的最新技術。
目前,LangChain已成為進行大語言模型應用開發必須掌握的框架之一。隨著時間的推移,LangChain已不再僅僅是一個大語言模型開發框架,而是演化為一個包含開發、調試、部署乃至應用商店的一站式完整生態圈。 與此同時,LangChain社區的快速壯大,正是其日益蓬勃發展的最佳見證。正值大語言模型開發以潮涌之勢席卷而來之際,越來越多的開發人員對于怎樣利用LangChain迅速構建AI應用產生了濃厚的興趣。 在這樣的背景下,本書應運而生。本書不只為求知者呈上LangChain的詳盡開發指南,更是以其中的諸多知識為軸心,向外擴散,深度闡述其背后的原理之美,甚至于途中不吝對基礎知識進行淺釋,使讀者在領會“其然”的同時,也能參透“其所以然”。 本書結構 本書以五大核心要旨,即模型的輸入與輸出(Model I/O)、檢索增強生成(RAG)技術、代理(Agent)技術、其他知識及完整案例實踐為主線,精心編排為10章,詳細展開闡釋: 第1章介紹了當前大語言模型的發展,并且從是什么、為什么使用、為何使用、應用場景四個維度對LangChain進行了全面解讀。 第2章細述了進行LangChain開發前的各項準備工作,包括安裝LangChain庫、獲取OpenAI API Key、搭建開發環境等,旨在幫助開發者掃清這部分的障礙。 第3章對Model I/O的Model(模型)部分進行了講解。不僅講解了LangChain Model的使用,還對最常用的OpenAI相關的API及參數進行了深入講解。 第4章主要講解了Model I/O的I/O部分。在輸入部分,不僅講解了LangChain的提示詞模板,還對提示詞工程進行了講解,使讀者可以借助LangChain寫出更優秀的提示詞。在輸出部分,對大量的輸出解析器進行了講解及應用。 第5~7章:這部分重點闡釋了檢索增強生成(RAG)技術的原理與應用,內容涵蓋了加載器、轉換器、向量存儲、檢索器、鏈及記憶等關鍵組件的用法和高階操作技巧。 第8章主要對代理(Agent)技術的原理和應用進行了深入講解,也對LangGraph多智能體框架進行了介紹。 第9章對LangChain其他組件及周邊生態進行了講解,如回調、安全與隱私、評估、追蹤調試平臺LangSmith、部署框架LangServe、應用模板商店LangChain Templates等。 第10章旨在指導讀者從零開始逐步構建并部署應用,完成兩個完整的人工智能應用開發項目,以及學習LangChian的零代碼AI應用構建平臺Flowise。讀者不僅可以通過此過程鞏固學習成果,而且可以將所學知識用于打造專屬的應用。 本書面向的讀者 本書深入淺出地講解了豐富的前置知識和基本理論,因為LangChain在本質上是一個便于AI應用開發的框架,所以本書以應用開發實踐為主,未涉及大語言模型的底層原理和相關晦澀的數學公式。 本書適合剛入門或想加入AI行業的技術從業者、需要結合大型語言模型相關技術為業務賦能的產品經理、計算機相關專業的學生,以及AI愛好者和自學者。 本書特色 (1)內容全面更新,融入了新版本特性和新動態。本書深入探討了LangChain的全新表達式語言、LangGraph、LangSmith、LangServe及LangChain Templates,并精研了一系列全新的API,例如Assistant Agent Type。 (2)系統講解,細節豐富。本書將相關的前置知識嵌入相應的章節中,確保讀者能夠按部就班地掌握從理論到實踐的知識。 (3)本書的結構設計讓內容自然銜接,避免了在章節之間跳來跳去的閱讀方式,不需要在搜索引擎中尋找相關概念。我們追求的不只是對官方文檔的講解,更是對整個LangChain運行邏輯的深入講解,以及對LangChain先進思想的學習。 (4)涵蓋LangChain的深度內容。除了基礎知識,本書還深入介紹了LangChain的隱私與安全、評估等高級主題,這些內容在市面上的其他資料中幾乎未被觸及。 (5)提供了豐富的實例代碼和結果截圖。本書中的所有代碼都經過嚴格測試,盡可能確保正常運行,這一點與LangChain文檔中僅提供部分代碼的做法形成鮮明對比,大大減少了讀者在實踐本書中的代碼時的調試工作。 (6)書中每個章節的代碼均在GitHub中提供,讀者可以很方便地獨立運行對應的代碼片段來學習。 代碼與參考資料 本書示例代碼位于GiTHub的langchain-course頁面,請在GitHub中搜索langchain-course,在搜索的結果頁面左側選擇Users,即可看到本書相關的代碼倉庫組織。讀者可以從此處獲取示例代碼及運行代碼的相關說明。也可以掃描封底二維碼獲取本書配套代碼資源和相關鏈接。 第1章的部分內容參考了《LangChain系列-01是什么》和《大語言模型的演進》兩篇文章。第5章的部分內容參考了How do domain-specific chatbots work? An Overview of Retrieval Augmented Generation(RAG)一文。感謝這些資料為筆者撰寫本書提供的思路和啟發。 勘誤和支持 若您在閱讀本書的過程中有任何問題或建議,可以通過本書源碼倉庫提交Issue或者PR,也可以通過倉庫中提供的微信二維碼加入微信群與作者進行交流。我們十分感謝并重視您的反饋,會對您提出的問題、建議進行梳理與反饋,并在本書后續版本中及時做出勘誤與更新。 |