詳細資訊
【簡介】 整合大型語言模型能力開發應用程式已成為一股不可阻擋的趨勢, 利用 LangChain 框架可以快速開發讓使用者透過自然語言就能自動化處理任務的應用程式, 大大提高工作效率。LangChain 解決了開發過程中與語言模型溝通必須撰寫大量複雜程式碼的問題, 透過模板機制可以隨時將額外的資訊填補到提示中, 利用工具機制可以讓模型使用我們所撰寫的外部函式, 更提供有許多現成的工具節省開發者重新發明輪子的時間, 還可透過 Agent 機制整合上述功能, 讓你的程式變成自主決策、自動運作的代理機器人。LangChain 還提供有 RAG 機制與串接圖形資料庫的功能, 讓你可以擴展模型知識, 解放限制。 |善用模板化機制彈性增、修提示內容, 讓模型生成正確結果| 客製具有彈性的提示模板, 根據不同情境替換部分提示內容, 讓模型依據提示模板回覆結果。本書會介紹 LangChain 的提示模板機制彈性替換部分提示內容的方式, 也會展示在模板中嵌入函式替換即時時間, 讓模型知道現在的時空背景。 |深入輸出內容解析器 | 輸出內容解析器可以讓模型以指定格式的資料結構傳回結果, 不論是 JSON、Dict、CSV、List 等都能要求模型將結果以指定格式傳回, 方便程式進行後續的處理。 |LCEL 表達式全解析| LCEL 表達式是 LangChain 獨有的語法, 可以使用表達式串接個別元件加速開發, 本書將會帶大家了解 LCEL 的概念與用法, 比較不使用 LCEL 與使用 LCEL 的差別, 以及各種 LCEL 便利的功能。 |使用工具幫模型加上外掛| 透過工具機制串接外部函式幫語言模型增加功能, 如:網路搜尋、天氣資料查詢等等, 同時善用 LangChain 內建提供的多種工具, 例如:DuckDuckGO Search、YouTube 等等節省開發時間。 |深入理解 Agent 機制開發代理程式| 代理是可以自主決策執行流程的元件, 還可以整合對話紀錄、網路搜尋、向量資料庫、程式函式、文字生圖等等功能, 成為實作 AI 的基石。本書會帶大家深度了解代理的運作原理以及使用方式。 |利用 RAG 擷取各種格式檔案內容擴展語言模型知識| 使用 LangChain 的好處之一, 就是可以使用它內建的多種檔案格式讀取工具, 以及不同的檔案內容切割器, 再整合多種向量資料庫, 讓你可以從各種格式的檔案讀取內容, 提供給模型參考, 擴展模型的知識, 突破模型本身訓練資料的限制, 生成正確的內容。本書將會帶大家解析 RAG 的個別處理方式, 以及它使用的向量檢索概念。 |圖形資料庫| LangChain 可以搭配圖形資料庫將過往以資料為中心的概念轉換成資料與關聯並重的方式, 讓語言模型可以藉由對資料間關係的理解, 正確生成以資料間關係為依據的內容, 不再需要我們自己找出資料之間的關係。 |實作電影知識專家機器人| 使用圖形資料庫儲存電影資訊, 讓模型回答跟電影相關的問題, 像是找出你愛的王淨演過哪些電影、又或者有哪些既能演又能導的天才。 |實作辦公室檔案問答機器人| 利用 RAG 技術與 LangChain 內建 RAG 工具, 讓語言模型自動解析並回答有關 PPT、EXCEL、WORD、PDF 和 CSV 文件的查詢,提升工作效率與自動化程度。 |實作YouTube 懶人包機器人| 利用 LangChain 內建工具查詢 YouTube 影片, 並使用 OpenAI Whisper 解析影片內容,再透過 RAG 技術快速找出影片內容來回答問題,節省觀看時間。 本書特色 \大型語言模型應用開發者的軍火庫// ‣ 用 LangChain 整合不同語言模型, 單一框架不用修改程式碼就可以吃遍各家語言模型。 ‣ 善用模板化機制彈性增、修提示內容, 讓模型生成正確結果。 ‣ 熟悉輸出內容解析器, 強制模型依照指定格式生成內容, 轉換成便利程式碼處理的資料結構。 ‣ 利用 LCEL 表達式串接模板、語言模型、輸出內容解析器, 快速建立對話流程。 ‣ 學會使用工具機制串接外部函式幫語言模型增加功能, 同時善用多種 LangChain 內建的工具, 省去撰寫各種外部函式的時間。 ‣ 深入理解 Agent 機制開發代理程式, 讓語言模型自己決策選用適當工具自動執行完成任務, 不需要撰寫與語言模型溝通的複雜程式碼。 ‣ 透過內建的對話紀錄功能元件, 快速建立具有記憶、能夠理解前後語意脈絡的對話機器人。 ‣ 啟用串流功能讓語言模型邊生成邊回覆, 讓使用者不必痴痴等。 ‣ 串接 OpenAI 聊天、生圖、語音生成文字模型, 甚至幾乎不必修改程式碼無縫替換串接 Google gemini pro 模型。 ‣ 利用 RAG 擷取各種格式檔案內容擴展語言模型知識, 客製專屬的問答程式。 ‣ 導入圖形資料庫處理關聯資料, 讓語言模型像是抓粽子一樣幫你快速串起相關資料。 ‣ 善用 LangSmith 工具, 追蹤程式流程與傳輸資料, 再複雜的程式也一目了然。 ‣ 實作辦公室檔案問答機器人, 工作上會出現的 PPT、EXCEL、WORD、PDF、CSV 檔, 通通丟進去讓語言模型幫你讀, 有效提升工作效率。 ‣ 實作YouTube 懶人包機器人, 不必完整觀看影片也能問出內容。 ‣ 實作電影知識專家機器人, 想知道最喜愛的演員演過哪些電影一問就知道。 【目錄】 第 1 章 語言模型開發框架 - LangChain 1-1 為甚麼選擇 LangChain? • LangChain 簡介 1-2 LangChain 組成元件 1-3 註冊 OpenAI API 帳戶 • 成為付費會員 • 檢查目前用量與限制使用額度 第 2 章 使用官方 LangChain 套件 2-1 安裝與使用 langchain 套件 • 建立與使用 OpenAI 物件 • 傳送多筆訊息 • 串流模式 • 快取與計費功能 • 設定與隱藏金鑰的方法 2-2 與語言模型溝通的藝術 – • 提示模板 (PromptTemplate) • 字串提示模板 - PromptTemplate • 對話提示模板 - ChatPromptTemplate • 角色物件 2-3 提示模板的進階變化 • 固定提示模板的部分參數 • 以函式自動加入最新內容 • 提示模板中的佔位訊息 2-4 認識輸出內容解析器 (Output Parsers) • 輸出文字格式的回覆內容 • 輸出 JSON 格式的內容 • 串接輸出內容解析器 • 輸出 CSV 格式的內容 • 自訂輸出格式 • 結構化輸出格式 第 3 章 使用流程鏈 (Chain) 串接物件 3-1 認識LCEL(LangChain Expression Language) • 細部分解 LCEL • 使用 RunnableSequence 簡化多層函式的呼叫 • 使用 RunnableParallel 執行多個流程合併結果 3-2 LCEL 實用功能 • 使用 RunnablePassthrough 簡化參數 • 使用 RunnableBinding 使用模型方法和代入工具 • 分支與合併 3-3 LCEL 進階功能 • 在流程鏈中使用函式 • 依照輸入分類執行不同的任務 • 切換模型或提示 第 4 章 記憶對話的物件--memory 4-1 串接記憶功能物件 • 將記錄的訊息加入到流程鏈中 • 將訊息記錄在 SQLite 資料庫中 • 將訊息儲存在檔案裡 4-2 記錄一問一答的對話 • 使用對話記憶物件記錄對話 • 建立對話流程鏈 • 可限制記錄對話次數的記憶物件 • 超過 token 數量限制會自動摘要內容的記憶物件 4-3 建立聊天機器人 • 串流模式 第 5 章 工具與代理 5-1 提供搜尋功能的函式 • 使用 LangChain 包裝的 API 類別 • 將函式包裝成 runnable 物件—工具 (tool) 5-2 讓模型自己選擇工具 • 提供工具給模型物件 5-3 使用自訂函式當工具 • 多種工具之間的選擇 5-4 自主決策流程的代理 • 快速建立代理 • 設定工具錯誤訊息 • 中間步驟 第 6 章 建立自己的代理 6-1 文字聊天與生圖代理 • 使用 Dall-e-3 模型建立生圖工具 • 串接成代理 • 加入記憶物件 • 只記錄固定次數對話 6-2 客製中間步驟 • 客製化回應 第 7 章 用 RAG 讓模型擴展額外知識 7-1 什麼是 RAG • RAG 第一步:載入資料 • RAG 第二步:資料分割 7-2 Embedding 向量化 • RAG 第三步:文字轉向量 • RAG 第四步:儲存到向量資料庫 Chroma 7-3 檢索對話流程鏈 • 同時傳回生成結果與關聯資料 • RAG 集大成:建立檢索對話代理 7-4 總結文件內容的流程鏈 • 不同的總結方式 7-5 其他的文件分割器 • JSON 格式 • Markdown 格式 • HTML 格式 • 不同程式碼格式 第 8 章 RAG 與圖形資料庫 8-1 什麼是圖形資料庫? • 註冊圖形資料庫 Neo4j • 連接資料庫及匯入資料 • 建立問答流程鏈 8-2 與向量資料庫結合 • 合併兩個資料庫 第 9 章 實戰演練 9-1 YouTube 影片懶人包問答機器人 • 執行流程 • 使用 RAG 處理資料 • 建立能持續對話的程式 9-2 辦公室常見檔案問答機器人 • PowerPoint • Word • Excel • CSV 第 10 章 LangSmith - 追蹤程式的資料傳遞過程 10-1 如何使用 LangSmith? 10-2 流程鏈的資料傳遞過程 10-3 代理的資料傳遞過程 10-4 RAG 的資料傳遞過程