描述
內容簡介
【本書特色】
★模型的輸入與輸出 ★檢索增強生成(RAG)技術 ★代理(Agent)技術 ★提示詞工程 ★載入器、轉換器、向量儲存、檢索器、鏈及記憶 ★代理(Agent)技術 ★LangGraph多智慧體 ★回呼、安全與隱私、評估、 ★追蹤偵錯平臺LangSmith ★部署框架LangServe ★應用範本商店LangChain Templates ★零程式AI應用建構平臺Flowise
【書籍內容】 AI時代在ChatGPT之後正式進入「iPhone」年代。 人工智慧的普及化已經開始,尤其是大型語言模型和AI繪圖工具如Stable Diffusion與Midjourney,成為當前的焦點。大型語言模型被視為智慧的「大腦」,廣泛應用於日常生活中。 在此背景下,LangChain的出現使得AI應用的快速開發成為可行,其影響力持續擴大。LangChain不僅提供了豐富的開發工具,還因其龐大的使用者基礎而擁有許多頂級工具,開發人員能夠利用成熟資源和最新技術來開發應用,成為大型語言模型應用開發的關鍵框架,目前並演變成開發、偵錯、部署及應用商店的完整生態系統。LangChain社群的快速成長,越來越多的開發者對如何利用LangChain構建AI應用需求與日俱增。 本書提供LangChain的詳細開發指導,並深入探討其背後的原理,是目前市面上唯一探討ReACT技術的書籍。 |
作者簡介
|
目錄
第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 Summarize 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 使用 |
序
|