一文總結(jié):AI大模型之LangChain基礎(chǔ)用法
共 3088字,需瀏覽 7分鐘
·
2024-05-03 10:56
你好,我是郭震
現(xiàn)在或未來(lái)最火的無(wú)疑是AI大模型開(kāi)發(fā),現(xiàn)在去boss直聘,隨便一搜大模型開(kāi)發(fā),崗位薪資是下面這樣的。工資高,還有前景,這不就是風(fēng)口嗎。
AI大模型開(kāi)發(fā)中最重要的一個(gè)框架就是LangChain,今天我們先來(lái)看看它的簡(jiǎn)介和基礎(chǔ)用法。
LangChain 框架簡(jiǎn)介
LangChain 是一個(gè)用于簡(jiǎn)化和擴(kuò)展大型語(yǔ)言模型(LLMs)開(kāi)發(fā)的 Python 框架。它提供了多種工具和組件來(lái)構(gòu)建復(fù)雜的應(yīng)用,幫助開(kāi)發(fā)者將 LLMs 與各種數(shù)據(jù)源和工具集成。
基礎(chǔ)組件
LangChain 的幾個(gè)關(guān)鍵組件有:
-
Chains(鏈) Chains 允許開(kāi)發(fā)者將一系列操作組合在一起以實(shí)現(xiàn)復(fù)雜的工作流。鏈中的每一步通常會(huì)調(diào)用不同的模型或工具。
from langchain.chains import SimpleSequentialChain
from langchain.prompts import PromptTemplate
from langchain.llms import OpenAI
# 定義 PromptTemplate
prompt = PromptTemplate(input_variables=["input"], template="Tell me a joke about {input}.")
# 使用 OpenAI 模型
llm = OpenAI()
# 創(chuàng)建一個(gè)簡(jiǎn)單的鏈
chain = SimpleSequentialChain(chains=[llm], input_prompt=prompt)
joke = chain.run(input="cats")
print(joke)
-
Agents(代理) 代理是一種能夠根據(jù)輸入自主選擇執(zhí)行哪些操作的組件。代理通常可以調(diào)用工具或查詢信息來(lái)執(zhí)行復(fù)雜的任務(wù)。
from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI
# 定義工具
tools = [
Tool(
name="Calculator",
func=lambda x: eval(x),
description="Performs basic arithmetic operations."
)
]
# 創(chuàng)建代理
llm = OpenAI()
agent = initialize_agent(tools, llm, agent_type="zero-shot-react-description")
result = agent.run("What is 2 + 2?")
print(result)
-
Memory(記憶) Memory 是為模型添加上下文記憶的組件,可以使代理或鏈在多輪對(duì)話中保持上下文。
from langchain.memory import ConversationBufferMemory
from langchain.llms import OpenAI
from langchain.chains import ConversationChain
# 創(chuàng)建記憶組件
memory = ConversationBufferMemory()
# 創(chuàng)建對(duì)話鏈
llm = OpenAI()
conversation = ConversationChain(llm=llm, memory=memory)
conversation.run("Hello, I'm a student.")
response = conversation.run("Can you recommend any good books?")
print(response)
-
Tools(工具) Tools 是幫助代理執(zhí)行特定任務(wù)的插件。可以是計(jì)算器、搜索引擎或數(shù)據(jù)庫(kù)查詢。
總結(jié)
LangChain 提供了一套完整的組件來(lái)簡(jiǎn)化 LLM 應(yīng)用的開(kāi)發(fā)。通過(guò) Chains 組織工作流、利用 Agents 實(shí)現(xiàn)自主決策、用 Memory 保持上下文以及通過(guò) Tools 擴(kuò)展功能,開(kāi)發(fā)者可以輕松構(gòu)建功能豐富的 LLM 應(yīng)用。
評(píng)論
圖片
表情
