LangChain技術(shù)解密:構(gòu)建大模型應(yīng)用的全景指南
定 價:118 元
- 作者:王浩帆
- 出版時間:2024/5/1
- ISBN:9787121477379
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:380
- 紙張:
- 版次:01
- 開本:16開
可讀性高、實戰(zhàn)性強(qiáng)附贈全書配套示例代碼深入解析7大核心功能簡化大模型開發(fā)流程不僅是LangChain的詳盡開發(fā)指南,更是以其中的諸多知識為軸心,向外擴(kuò)散,深度闡述其背后的原理之美
-
內(nèi)容全面:包含Langchain的新版本、新動態(tài)及全新表達(dá)式語言。
-
系統(tǒng)深入:書中融入了LangGraph、Langsmith等核心組件,講解細(xì)致入微。
-
結(jié)構(gòu)流暢:章節(jié)設(shè)計自然銜接,有助于讀者掌握Langchain的運行邏輯。
-
深度拓展:深入講解了Langchain的隱私與安全、數(shù)據(jù)評估等高級主題。
-
實戰(zhàn)性強(qiáng):提供了豐富的代碼實例和結(jié)果截圖,讀者可快速上手實踐。
-
源碼開放:在作者的GitHub中提供了各章節(jié)源碼,讀者可獨立運行學(xué)習(xí)。
王浩帆,從事影視及游戲相關(guān)流程開發(fā)十余年,長期關(guān)注并探索大語言模型及其他人工智能技術(shù)在影視及游戲行業(yè)的應(yīng)用落地。同時作為開源技術(shù)愛好者,不僅積極為LangChain等開源項目貢獻(xiàn)力量,同時也致力于開發(fā)個人的開源項目。
第1章 大語言模型及LangChain介紹
1.1 大語言模型介紹
1.1.1 大語言模型總覽
1.1.2 大語言模型的發(fā)展歷史
1.1.3 大語言模型的優(yōu)勢
1.1.4 大語言模型的發(fā)展趨勢
1.1.5 總結(jié)
1.2 LangChain介紹
1.2.1 LangChain是什么
1.2.2 為什么使用LangChain
1.2.3 LangChain的應(yīng)用場景
1.2.4 如何使用LangChain
第2章 LangChain開發(fā)前的準(zhǔn)備
2.1 創(chuàng)建OpenAI API Key
2.2 使用云端Colab進(jìn)行交互式編程
2.2.1 什么是Colab
2.2.2 如何使用Colab
2.3 使用本地Anaconda + JupyterLab進(jìn)行交互式編程
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 文本補(bǔ)全API:Completion
3.5.3 對話補(bǔ)全API:Chat Completion
3.5.4 常用參數(shù)講解
3.5.5 函數(shù)調(diào)用
3.6 自定義LangChain模型類
3.6.1 自定義大語言模型
3.6.2 自定義聊天模型
3.7 緩存
3.7.1 標(biāo)準(zhǔn)緩存
3.7.2 流式輸出
3.7.3 語義化緩存
3.7.4 GPTCache
3.8 其他
3.8.1 異步調(diào)用大語言模型
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(數(shù)據(jù)連接)
5.1 檢索增強(qiáng)生成
5.1.1 什么是檢索增強(qiáng)生成
5.1.2 檢索增強(qiáng)生成的工作流程
5.1.3 什么是Embedding(嵌入)
5.1.4 重要的文本預(yù)處理
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(文檔轉(zhuǎn)換器)
5.3.1 文本分割
5.3.2 文本元數(shù)據(jù)提取
5.3.3 文本翻譯
5.3.4 生成文本問答
5.4 Embedding與Vector Store(嵌入與向量數(shù)據(jù)庫)
5.4.1 Embedding
5.4.2 本地向量存儲
5.4.3 云端向量存儲
5.5 Retriever(檢索器)
5.5.1 基礎(chǔ)檢索器
5.5.2 多重提問檢索器
5.5.3 上下文壓縮檢索器
5.5.4 集成檢索器
5.5.5 父文檔檢索器
5.5.6 多向量檢索器
5.5.7 自查詢檢索器
5.5.8 檢索內(nèi)容重排
第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(轉(zhuǎn)換鏈)
6.6 Sumarize Chain(總結(jié)鏈)
6.7 API Chain與LLMRequestsChain
6.7.1 API Chain
6.7.2 LLMRequestsChain
6.8 SQL Chain(數(shù)據(jù)庫鏈)
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 在鏈中設(shè)置參數(shù)
6.10.3 配置
6.10.4 設(shè)置備用方案
6.10.5 獲取輸入并運行自定義函數(shù)
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 將歷史對話總結(jié)后保存成Memory
7.3.1 ConversationSummaryMemory
7.3.2 ConversationSummaryBufferMemory
7.4 通過向量數(shù)據(jù)庫將歷史數(shù)據(jù)保存成Memory
7.5 多Memory組合
7.6 實體記憶及實體關(guān)系記憶
7.6.1 通過記錄實體進(jìn)行記憶
7.6.2 通過知識圖譜進(jìn)行記憶
7.7 在使用LCEL的鏈中添加內(nèi)存組件
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 默認(rèn)人工校驗
8.6.2 自定義用戶審批
8.6.3 人工輸入
8.7 Agent實際應(yīng)用
8.7.1 結(jié)合向量存儲使用Agent
8.7.2 Fake Agent(虛構(gòu)代理)
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 回調(diào)
9.1.1 簡介
9.1.2 自定義回調(diào)處理
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 構(gòu)建
9.5.3 調(diào)用
9.5.4 LangChain Templates
9.6 LangChain v0.1
9.7 總結(jié)
第10章 案例開發(fā)與實戰(zhàn)
10.1 基于Streamlit實現(xiàn)聊天機(jī)器人
10.1.1 簡介
10.1.2 實現(xiàn)
10.1.3 部署
10.2 基于Chainlit實現(xiàn)PDF問答機(jī)器人
10.2.1 簡介
10.2.2 實現(xiàn)
10.3 零代碼AI應(yīng)用構(gòu)建平臺:Flowise
10.3.1 簡介
10.3.2 運行
10.3.3 使用