分類目錄:《大模型從入門到應用》總目錄
LangChain系列文章:
- 基礎知識
- 快速入門
- 安裝與環(huán)境配置
- 鏈(Chains)、代理(Agent:)和記憶(Memory)
- 快速開發(fā)聊天模型
- 模型(Models)
- 基礎知識
- 大型語言模型(LLMs)
- 基礎知識
- LLM的異步API、自定義LLM包裝器、虛假LLM和人類輸入LLM(Human Input LLM)
- 緩存LLM的調(diào)用結(jié)果
- 加載與保存LLM類、流式傳輸LLM與Chat Model響應和跟蹤tokens使用情況
- 聊天模型(Chat Models)
- 基礎知識
- 使用少量示例和響應流式傳輸
- 文本嵌入模型
- Aleph Alpha、Amazon Bedrock、Azure OpenAI、Cohere等
- Embaas、Fake Embeddings、Google Vertex AI PaLM等
- 提示(Prompts)
- 基礎知識
- 提示模板
- 基礎知識
- 連接到特征存儲
- 創(chuàng)建自定義提示模板和含有Few-Shot示例的提示模板
- 部分填充的提示模板和提示合成
- 序列化提示信息
- 示例選擇器(Example Selectors)
- 輸出解析器(Output Parsers)
- 記憶(Memory)
- 基礎知識
- 記憶的類型
- 會話緩存記憶、會話緩存窗口記憶和實體記憶
- 對話知識圖譜記憶、對話摘要記憶和會話摘要緩沖記憶
- 對話令牌緩沖存儲器和基于向量存儲的記憶
- 將記憶添加到LangChain組件中
- 自定義對話記憶與自定義記憶類
- 聊天消息記錄
- 記憶的存儲與應用
- 索引(Indexes)
- 基礎知識
- 文檔加載器(Document Loaders)
- 文本分割器(Text Splitters)
- 向量存儲器(Vectorstores)
- 檢索器(Retrievers)
- 鏈(Chains)
- 基礎知識
- 通用功能
- 自定義Chain和Chain的異步API
- LLMChain和RouterChain
- SequentialChain和TransformationChain
- 鏈的保存(序列化)與加載(反序列化)
- 鏈與索引
- 文檔分析和基于文檔的聊天
- 問答的基礎知識
- 圖問答(Graph QA)和帶來源的問答(Q&A with Sources)
- 檢索式問答
- 文本摘要(Summarization)、HyDE和向量數(shù)據(jù)庫的文本生成
- 代理(Agents)
- 基礎知識
- 代理類型
- 自定義代理(Custom Agent)
- 自定義MRKL代理
- 帶有ChatModel的LLM聊天自定義代理和自定義多操作代理(Custom MultiAction Agent)
- 工具
- 基礎知識
- 自定義工具(Custom Tools)
- 多輸入工具和工具輸入模式
- 人工確認工具驗證和Tools作為OpenAI函數(shù)
- 工具包(Toolkit)
- 代理執(zhí)行器(Agent Executor)
- 結(jié)合使用Agent和VectorStore
- 使用Agents的異步API和創(chuàng)建ChatGPT克隆
- 處理解析錯誤、訪問中間步驟和限制最大迭代次數(shù)
- 為代理程序設置超時時間和限制最大迭代次數(shù)和為代理程序和其工具添加共享內(nèi)存
- 計劃與執(zhí)行
- 回調(diào)函數(shù)(Callbacks)
在《自然語言處理從入門到應用——LangChain:快速入門》系列文章中我們會用最簡練的語言與示例帶領(lǐng)大家快速調(diào)試并上手LangChain,讀者讀完本系列的文章后,就會對LangChain有一個大致的了解并可以將LangChain運用到自己開發(fā)的程序中。但如果讀者想對LangChain的各個模塊進行更深入的了解,可以繼續(xù)學習《自然語言處理從入門到應用——LangChain》系列文章。本文主要是闡述了LangChain的安裝與環(huán)境配置過程,最后還會帶領(lǐng)讀者通過LangChain搭建一個簡單的LLM模型。
安裝
使用以下命令安裝 LangChain:
pip install langchain
或者:
conda install langchain -c conda-forge
環(huán)境設定
使用LangChain通常需要與一個或多個模型提供程序、數(shù)據(jù)存儲、 API 等集成。對于這個例子,我們將使用OpenAI的API,所以我們首先需要安裝OpenAI的SDK:
pip install openai
然后我們需要在終端設置環(huán)境變量:
export OPENAI_API_KEY="..."
或者,我們也可以在Jupyter Notebook或Python腳本內(nèi)完成:
import os
os.environ["OPENAI_API_KEY"] = "..."
如果想動態(tài)設置API密鑰,我們還可以在初始化OpenAI類時使用openai_api_key
參數(shù):
from langchain.llms import OpenAI
llm = OpenAI(openai_api_key="OPENAI_API_KEY")
構(gòu)建語言模型應用程序: LLM
現(xiàn)在我們已經(jīng)安裝了LangChain并設置了我們的環(huán)境,我們可以開始構(gòu)建我們的語言模型應用程序了。LangChain提供了許多可用于構(gòu)建語言模型應用程序的模塊。模塊可以組合起來創(chuàng)建更復雜的應用程序,或者單獨用于簡單的應用程序。
LLM:從語言模型中獲取預測
LangChain最基本的構(gòu)建塊是對某些輸入調(diào)用LLM。假設我們正在構(gòu)建一個基于公司產(chǎn)品生成公司名稱的服務。為此,我們首先需要導入LLM包裝器:
from langchain.llms import OpenAI
LLM初始化和調(diào)用
然后我們可以用任何參數(shù)初始化包裝器。在這個例子中,我們可能希望輸出更加隨機,所以我們將以溫度(Temperature)為0.9來初始化它。
llm = OpenAI(temperature=0.9)
我們現(xiàn)在可以根據(jù)一些輸入調(diào)用它:
text = "What would be a good company name for a company that makes colorful socks?"
print(llm(text))
輸出:
Feetful of Fun
關(guān)于如何在LangChain中使用LLM,《自然語言處理從入門到應用——LangChain》系列的后續(xù)文章會有詳細的闡述。
提示模板(PromptTemplate): 管理 LLM 的提示
調(diào)用LLM是第一步,但這僅僅是個開始。通常在應用程序中使用LLM時,不會將用戶輸入直接發(fā)送到LLM。相反,我們更可能的是接受用戶輸入并構(gòu)造一個提示符,然后將其發(fā)送給LLM。例如,在前一個示例中,我們傳入的文本被硬編碼為詢問一家生產(chǎn)彩色襪子的公司的名稱。在這個虛構(gòu)的服務中,我們希望只獲取描述公司業(yè)務的用戶輸入,然后用這些信息格式化提示符。如果使用LangChain,這個事情將會變得很簡單。首先讓我們定義提示模板:
from langchain.prompts import PromptTemplate
prompt = PromptTemplate(
input_variables=["product"],
template="What is a good name for a company that makes {product}?",
)
我們可以調(diào)用.format
方法來格式化它。
print(prompt.format(product="colorful socks"))
輸出:文章來源:http://www.zghlxwxcb.cn/news/detail-541349.html
What is a good name for a company that makes colorful socks?
參考文獻:
[1] LangChain ????? 中文網(wǎng),跟著LangChain一起學LLM/GPT開發(fā):https://www.langchain.com.cn/
[2] LangChain中文網(wǎng) - LangChain 是一個用于開發(fā)由語言模型驅(qū)動的應用程序的框架:http://www.cnlangchain.com/文章來源地址http://www.zghlxwxcb.cn/news/detail-541349.html
到了這里,關(guān)于自然語言處理從入門到應用——LangChain:快速入門-[安裝與環(huán)境配置]的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!