logo
Loading...

LainChain introduction - 生成式AI從No-Code到Low-Code開發與應用四部曲 - Cupoy

LangChain是一個用於開發,由語言模型驅動的應用程式的框架。它能夠實現以下應用程式: 具有上下文感知能力:將語言模型連接到上下文來源(提示指示、少量示例、內容等),以便在回答中建立基礎。  L...

LangChain是一個用於開發,由語言模型驅動的應用程式的框架。它能夠實現以下應用程式: 具有上下文感知能力:將語言模型連接到上下文來源(提示指示、少量示例、內容等),以便在回答中建立基礎。  LangChain是一套用於創建和管理與語言模型相關的系統和應用的工具和框架。其主要目標是提供一種方法,以便於開發者和研究人員能夠更加容易地整合語言模型到各種應用中,尤其是那些需要從大量數據中提取信息和執行複雜推理的場景。LangChain通過提供一系列的模塊和接口,支持創建從簡單的語言生成任務到複雜的多模塊系統,如檢索增強生成(Retrieval-Augmented Generation, RAG)或基於對話的信息檢索系統。 LangChain的主要組件 語言模型接口:提供與各種語言模型(例如OpenAI的GPT系列)的接口,允許用戶輕鬆更換和整合不同的語言模型。 檢索系統:支持構建能夠從數據庫、檔案系統或互聯網上檢索信息的系統,以增強語言模型的回答能力。 資料管理:提供工具來處理和管理用於訓練或增強語言模型的數據集。 應用和服務集成:支持將LangChain系統集成到現有的應用和服務中,包括Web應用、移動應用等。 可視化和監控:提供工具來監控系統性能和使用情況,以及可視化系統組件和工作流程的工具。 學習LangChain的拆解細節 基礎概念和架構理解: 研究LangChain的官方文檔,了解其設計理念和架構。 學習LangChain如何與語言模型交互,以及如何通過檢索系統增強模型的能力。 語言模型接口學習: 深入了解不同語言模型的特性和接口。 實踐將不同的語言模型整合到LangChain中。 檢索系統實現: 學習如何設計和實現檢索系統,以及如何將其與語言模型結合。 熟悉PostgreSQL和PostgreSQL Vector在LangChain中的應用,特別是在構建RAG系統時。 資料管理與處理: 學習如何處理和準備訓練數據,包括數據清洗、格式化和增強。 探索如何使用LangChain管理和存儲數據集。 系統集成與開發: 學習如何將LangChain系統集成到不同的應用和服務中。 實踐開發一個小型應用,例如一個基於對話的信息檢索系統,以加深理解。 性能監控和優化: 學習如何監控LangChain系統的性能,並進行優化。 實踐使用可視化工具來分析系統性能和瓶頸。 通過逐步學習和實踐上述細節,你將能夠深入理解LangChain的工作原理,並能夠應用它來構建複雜的語言模型應用系統。 這個框架由幾個部分組成: LangChain Libraries:Python和JavaScript的函式庫。包含各種組件的介面和整合,基本的運行時用於將這些組件組合成鏈和代理,以及現成的鏈和代理的實現。 LangChain模板:一系列可輕鬆部署的參考架構,適用於各種任務。      這些是一些較受歡迎的模板,可供開始使用:          檢索增強生成聊天機器人:在您的數據上構建一個聊天機器人。默認使用OpenAI和Pinecone。 使用OpenAI功能進行提取:從非結構化數據中提取結構化數據。使用OpenAI函數調用。 本地檢索增強生成:在您的數據上建立一個聊天機器人。僅使用本地工具:Ollama、GPT4all、Chroma。 OpenAI 功能代理:建立一個能夠執行動作的聊天機器人。使用 OpenAI 函數呼叫和 Tavily。 XML代理: 建立一個能夠執行動作的聊天機器人。使用Anthropic和You.com。 LangServe:一個用於部署LangChain鏈條作為REST API的庫。      LangServe幫助開發人員將LangChain可執行檔和鏈結部署為REST API。這個程式庫與FastAPI整合,並使用pydantic進行資料驗證。此外,它提供了一個客戶端,可用於調用部署在服務器上的可運行對象。LangChainJS中提供了一個JavaScript客戶端。 特點:          從您的LangChain物件自動推斷輸入和輸出模式,並在每次API呼叫時強制執行,並提供豐富的錯誤訊息 API文件頁面,包含JSON Schema和Swagger(插入示例鏈接) 高效、可靠和多端點支援的終端,能在單一伺服器上處理多個同時請求 從您的鏈/代理中串流所有(或部分)中間步驟的端點 自0.0.40版本開始,支援astream_events,使得在不需要解析stream_log的輸出情況下更容易進行串流。 在playground上的遊樂場頁面,具有流式輸出和中間步驟 內建(可選)追蹤至LangSmith,只需添加您的API金鑰(請參閱說明) 全部都是使用經過戰場考驗的開源Python庫建立的,例如FastAPI、Pydantic、uvloop和asyncio。 使用客戶端SDK呼叫LangServe伺服器,就像它是在本地運行的Runnable一樣(或直接呼叫HTTP API) LangSmith:一個開發者平台,讓您能夠在任何LLM框架上進行調試、測試、評估和監控鏈,並與LangChain無縫集成。 這些產品共同簡化了整個應用程式的生命週期 開發:使用LangChain/LangChain.js編寫您的應用程序。  生產化:使用LangSmith來檢查、測試和監控您的鏈條,以便您能夠不斷改進並自信地部署。 使用LangServe,將任何鏈接轉換為API。 LangChain Libraries 是一個程式庫的名稱 組件(Components):可組合的工具和整合,用於處理語言模型。組件是模塊化且易於使用的,無論您是否使用LangChain框架的其他部分。 現成的鏈條(Off-the-shelf chains):內建的組件組合,用於完成更高層次的任務。 LangChain的庫本身由幾個不同的套件組成。 langchain-core:基本抽象和LangChain表達語言。  langchain-community: Third party integrations.第三方整合。 langchain:構成應用程式認知架構的鏈結、代理人和檢索策略。 Get started LangChain 表達式語言(LCEL - LangChain Expression Language (LCEL) LCEL是一種以聲明方式組合鏈條的方法。從一開始,LCEL就被設計成支援將原型投入生產,而不需要進行任何程式碼更改,從最簡單的「提示 + LLM」鏈條到最複雜的鏈條。下列將會概述3大點:  概述:LCEL及其好處 介面:LCEL物件的標準介面 如何操作:LCEL的主要特點 Modules​ 模組 Model I/O​ 模型輸入/輸出  與語言模型進行介面對接 Retrieval​ 檢索      與應用程式特定資料進行介面連接 Agents​ 代理      讓模型根據高層指示選擇使用哪些工具 常見的端到端使用案例的解說和技巧,例如: 文件問答  Chatbots 聊天機器人 分析結構化數據 Integrations​ 整合 LangChain是與我們的框架相結合並在其之上建立的豐富工具生態系統的一部分。請查看我們不斷增長的整合清單。 Community​ 社區 安裝 !pip install langchain #這將安裝LangChain的最低要求。LangChain的價值在於與各種模型提供者、數據存儲等進行集成時才能體現出來。默認情況下,不會安裝進行這些集成所需的相依性。您需要單獨安裝特定集成所需的相依性。 !pip install -e . #langchain-community 套件包含第三方整合。它會被 langchain 自動安裝,但也可以單獨使用。安裝方式如下: !pip install langchain-community ''' langchain-core 套件包含了LangChain生態系統中其餘部分使用的基本抽象,以及LangChain表達式語言。 它會被 langchain 自動安裝,但也可以單獨使用。安裝方式如下: ''' !pip install langchain-core ''' !langchain-experimental 套件包含實驗性的LangChain程式碼,用於研究和實驗用途。安裝方式如下: ''' !pip install langchain-experimental ''' LangServe幫助開發者將LangChain的可執行文件和鏈路部署為REST API。LangServe會自動由LangChain CLI安裝。 如果不使用LangChain CLI,請使用以下方式進行安裝: ''' !pip install "langserve[all]" ''' LangSmith SDK會被LangChain自動安裝。如果不使用LangChain,請使用以下方式進行安裝: ''' !pip install langsmith