LangChain技術解密:構建大模型套用的全景指南

LangChain技術解密:構建大模型套用的全景指南

《LangChain技術解密:構建大模型套用的全景指南》是電子工業出版社出版圖書,由王浩帆 編著。

基本介紹

  • 中文名LangChain技術解密:構建大模型套用的全景指南
  • 作者:王浩帆
  • 出版時間:2024年5月
  • 出版社:電子工業出版社
  • 頁數:380 頁
  • ISBN9787121477379
  • 定價:118 元
  • 開本:16 開
內容簡介,圖書目錄,作者簡介,

內容簡介

《LangChain技術解密:構建大模型套用的全景指南》共10章,分別介紹了LangChain的開發環境搭建、模型、提示、數據連線、鏈、記憶、代理、回調及周邊生態等內容,並用三個案例,即基於Streamlit實現聊天機器人、基於Chainlit實現PDF問答機器人、零代碼AI套用構建平台Flowise,將前面大語言模型的內容學以致用。通過本書,讀者既能提升自身的技術素養,又能拓展自己解決實際難題的能力。
《LangChain技術解密:構建大模型套用的全景指南》適合剛入門或想加入AI行業的技術從業者、需要結合大語言模型相關技術為業務賦能的產品經理、計算機相關專業的學生,以及AI愛好者和自學者。

圖書目錄

第1章 大語言模型及LangChain介紹 1
1.1 大語言模型介紹 1
1.1.1 大語言模型總覽 1
1.1.2 大語言模型的發展歷史 2
1.1.3 大語言模型的優勢 5
1.1.4 大語言模型的發展趨勢 5
1.1.5 總結 6
1.2 LangChain介紹 7
1.2.1 LangChain是什麼 7
1.2.2 為什麼使用LangChain 7
1.2.3 LangChain的套用場景 10
1.2.4 如何使用LangChain 11
第2章 LangChain開發前的準備 14
2.1 創建OpenAI API Key 14
2.2 使用雲端Colab進行互動式編程 17
2.2.1 什麼是Colab 17
2.2.2 如何使用Colab 17
2.3 使用本地Anaconda + JupyterLab進行互動式編程 19
2.3.1 什麼是Anaconda 19
2.3.2 安裝與使用Anaconda 20
2.4 安裝LangChain庫 24
第3章 Model(模型) 27
3.1 Model簡介 27
3.2 LLM類模型 28
3.2.1 簡介 28
3.2.2 代碼講解 29
3.3 Chat類模型 31
3.3.1 簡介 31
3.3.2 代碼講解 32
3.4 OpenAI與ChatOpenAI的區別 35
3.5 OpenAI API 36
3.5.1 什麼是Token 36
3.5.2 文本補全API:Completion 38
3.5.3 對話補全API:Chat Completion 40
3.5.4 常用參數講解 41
3.5.5 函式調用 45
3.6 自定義LangChain模型類 48
3.6.1 自定義大語言模型 48
3.6.2 自定義聊天模型 51
3.7 快取 54
3.7.1 標準快取 54
3.7.2 流式輸出 59
3.7.3 語義化快取 59
3.7.4 GPTCache 61
3.8 其他 68
3.8.1 異步調用大語言模型 68
3.8.2 模型配置序列化 69
3.8.3 使用Hugging Face 71
第4章 大語言模型及Prompt(提示) 74
4.1 Prompt工程 74
4.1.1 組成Prompt的要素 74
4.1.2 Prompt的書寫技巧 75
4.1.3 Prompt的生命周期 81
4.2 提示詞模板 82
4.2.1 PromptTemplate 83
4.2.2 PartialPromptTemplate 84
4.2.3 PipelinePromptTemplate 86
4.2.4 FewShotPromptTemplate 88
4.2.5 自定義提示詞模板 89
4.2.6 提示詞模板的序列化和反序列化 90
4.2.7 ChatPromptTemplate 92
4.2.8 MessagesPlaceholder 94
4.2.9 FewShotChatMessagePromptTemplate 95
4.3 示例選擇器 96
4.3.1 LengthBasedExampleSelector 96
4.3.2 SemanticSimilarityExampleSelector 98
4.3.3 MaxMarginalRelevanceExampleSelector 100
4.3.4 NGramOverlapExampleSelector 101
4.3.5 自定義示例選擇器 103
4.4 輸出解析器 105
4.4.1 CommaSeparatedListOutputParser 105
4.4.2 DatetimeOutputParser 106
4.4.3 EnumOutputParser 107
4.4.4 XMLOutputParser 109
4.4.5 StructuredOutputParser 110
4.4.6 PydanticOutputParser 112
4.4.7 OutputFixingParser 115
4.4.8 RetryWithErrorOutputParser 116
4.4.9 自定義輸出解析器 117
第5章 Data Connection(數據連線) 120
5.1 檢索增強生成 120
5.1.1 什麼是檢索增強生成 120
5.1.2 檢索增強生成的工作流程 120
5.1.3 什麼是Embedding(嵌入) 122
5.1.4 重要的文本預處理 123
5.2 Document Loader(文檔載入器) 124
5.2.1 CSV載入器 124
5.2.2 檔案目錄載入器 124
5.2.3 HTML載入器 125
5.2.4 JSON載入器 126
5.2.5 Markdown載入器 127
5.2.6 URL載入器 127
5.2.7 PDF載入器 129
5.2.8 自定義載入器 132
5.3 Document Transformer(文檔轉換器) 133
5.3.1 文本分割 134
5.3.2 文本元數據提取 141
5.3.3 文本翻譯 143
5.3.4 生成文本問答 144
5.4 Embedding與Vector Store(嵌入與向量資料庫) 146
5.4.1 Embedding 146
5.4.2 本地向量存儲 148
5.4.3 雲端向量存儲 151
5.5 Retriever(檢索器) 155
5.5.1 基礎檢索器 155
5.5.2 多重提問檢索器 156
5.5.3 上下文壓縮檢索器 161
5.5.4 集成檢索器 167
5.5.5 父文檔檢索器 168
5.5.6 多向量檢索器 170
5.5.7 自查詢檢索器 176
5.5.8 檢索內容重排 179
第6章 Chain(鏈) 182
6.1 Chain簡介 182
6.2 LLM Chain(LLM鏈) 183
6.3 Sequential Chain(順序鏈) 187
6.3.1 SimpleSequentialChain 187
6.3.2 SequentialChain 189
6.4 Router Chain(路由鏈) 190
6.5 Transform Chain(轉換鏈) 193
6.6 Sumarize Chain(總結鏈) 195
6.7 API Chain與LLMRequestsChain 197
6.7.1 API Chain 197
6.7.2 LLMRequestsChain 198
6.8 SQL Chain(資料庫鏈) 198
6.8.1 SQLDatabaseChain 199
6.8.2 SQL Agent 201
6.9 QA Chain(問答鏈) 202
6.9.1 ConversationChain 202
6.9.2 RetrievalQA 202
6.9.3 ConversationalRetrievalChain 203
6.10 LangChain Expression Language(LCEL) 204
6.10.1 管道操作符 204
6.10.2 在鏈中設定參數 205
6.10.3 配置 206
6.10.4 設定備用方案 207
6.10.5 獲取輸入並運行自定義函式 208
6.10.6 路由鏈 210
第7章 Memory(記憶) 213
7.1 Memory簡介 213
7.2 將歷史對話直接保存成Memory 214
7.2.1 ConversationBufferMemory 214
7.2.2 ConversationBufferWindowMemory 216
7.2.3 ConversationTokenBufferMemory 217
7.3 將歷史對話總結後保存成Memory 219
7.3.1 ConversationSummaryMemory 219
7.3.2 ConversationSummaryBufferMemory 221
7.4 通過向量資料庫將歷史數據保存成Memory 223
7.5 多Memory組合 225
7.6 實體記憶及實體關係記憶 227
7.6.1 通過記錄實體進行記憶 227
7.6.2 通過知識圖譜進行記憶 229
7.7 在使用LCEL的鏈中添加記憶體組件 231
7.8 自定義Memory組件 232
第8章 Agent(代理) 234
8.1 簡介 234
8.2 ReAct和Plan and Execute(計畫與執行) 235
8.2.1 ReAct 235
8.2.2 Plan and Execute(計畫與執行) 236
8.3 Agent初探 237
8.4 Agent類型 239
8.4.1 Chat ReAct 239
8.4.2 ReAct Document Store 241
8.4.3 Conversational 242
8.4.4 OpenAI Function 244
8.4.5 Self-Ask With Search 246
8.4.6 Structured Tool Chat 247
8.4.7 OpenAI Assistant 250
8.5 自定義Tool 252
8.5.1 使用Tool對象 252
8.5.2 繼承BaseTool 254
8.5.3 使用Tool裝飾器 255
8.5.4 Structured Tool 255
8.5.5 異常處理 257
8.6 人工校驗及輸入 259
8.6.1 默認人工校驗 259
8.6.2 自定義用戶審批 260
8.6.3 人工輸入 261
8.7 Agent實際套用 263
8.7.1 結合向量存儲使用Agent 263
8.7.2 Fake Agent(虛構代理) 264
8.7.3 自定義Agent 265
8.7.4 自定義LLM Agent 267
8.7.5 自定義MRKL Agent 272
8.7.6 自定義具有工具檢索功能的Agent 276
8.7.7 Auto-GPT Agent 281
8.8 LangGraph 283
8.8.1 簡介 283
8.8.2 示例 286
第9章 LangChain的其他功能 292
9.1 回調 292
9.1.1 簡介 292
9.1.2 自定義回調處理 296
9.1.3 將日誌記錄到檔案中 297
9.1.4 Token使用量跟蹤 299
9.1.5 LLMonitor 300
9.2 隱私與安全 303
9.2.1 隱私 303
9.2.2 安全 307
9.3 Evaluation(評估) 309
9.3.1 簡介 309
9.3.2 字元串評估器 311
9.3.3 比較評估器 316
9.3.4 軌跡評估器 320
9.4 LangSmith 323
9.4.1 簡介 323
9.4.2 收集與追蹤 324
9.4.3 評估 327
9.4.4 LangSmith Hub 334
9.5 LangServe 337
9.5.1 簡介 337
9.5.2 構建 338
9.5.3 調用 341
9.5.4 LangChain Templates 342
9.6 LangChain v0.1 345
9.7 總結 346
第10章 案例開發與實戰 347
10.1 基於Streamlit實現聊天機器人 347
10.1.1 簡介 347
10.1.2 實現 348
10.1.3 部署 352
10.2 基於Chainlit實現PDF問答機器人 354
10.2.1 簡介 354
10.2.2 實現 354
10.3 零代碼AI套用構建平台:Flowise 359
10.3.1 簡介 359
10.3.2 運行 359
10.3.3 使用 360

作者簡介

王浩帆,從事影視及遊戲相關流程開發十餘年,長期關注並探索大語言模型及其他人工智慧技術在影視及遊戲行業的套用落地。作為開源技術愛好者和LangChain Contributer,不僅積極為LangChain等開源項目貢獻力量,也致力於開發個人的開源項目。

相關詞條

熱門詞條

聯絡我們