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

王浩帆

買這商品的人也買了...

相關主題

商品描述

可讀性高、實戰性強附贈全書配套示例代碼深入解析7大核心功能簡化大模型開發流程不僅是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 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 使用