LangChain技術解密:構建大模型應用的全景指南
定 價:118 元
- 作者:王浩帆
- 出版時間:2024/5/1
- ISBN:9787121477379
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:380
- 紙張:
- 版次:01
- 開本:16開
可讀性高、實戰(zhàn)性強附贈全書配套示例代碼深入解析7大核心功能簡化大模型開發(fā)流程不僅是LangChain的詳盡開發(fā)指南,更是以其中的諸多知識為軸心,向外擴散,深度闡述其背后的原理之美
-
內容全面:包含Langchain的新版本、新動態(tài)及全新表達式語言。
-
系統深入:書中融入了LangGraph、Langsmith等核心組件,講解細致入微。
-
結構流暢:章節(jié)設計自然銜接,有助于讀者掌握Langchain的運行邏輯。
-
深度拓展:深入講解了Langchain的隱私與安全、數據評估等高級主題。
-
實戰(zhàn)性強:提供了豐富的代碼實例和結果截圖,讀者可快速上手實踐。
-
源碼開放:在作者的GitHub中提供了各章節(jié)源碼,讀者可獨立運行學習。
王浩帆,從事影視及游戲相關流程開發(fā)十余年,長期關注并探索大語言模型及其他人工智能技術在影視及游戲行業(yè)的應用落地。同時作為開源技術愛好者,不僅積極為LangChain等開源項目貢獻力量,同時也致力于開發(fā)個人的開源項目。
第1章 大語言模型及LangChain介紹
1.1 大語言模型介紹
1.1.1 大語言模型總覽
1.1.2 大語言模型的發(fā)展歷史
1.1.3 大語言模型的優(yōu)勢
1.1.4 大語言模型的發(fā)展趨勢
1.1.5 總結
1.2 LangChain介紹
1.2.1 LangChain是什么
1.2.2 為什么使用LangChain
1.2.3 LangChain的應用場景
1.2.4 如何使用LangChain
第2章 LangChain開發(fā)前的準備
2.1 創(chuàng)建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的區(qū)別
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(計劃與執(zhí)行)
8.2.1 ReAct
8.2.2 Plan and Execute(計劃與執(zhí)行)
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章 案例開發(fā)與實戰(zhàn)
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 使用