快速入門LangChain的六大核心模塊之Agents
Agents的核心思想是使用LLM來選擇要采取的一系列操作。在Cahin中,一系列操作是硬編碼的(在代碼中)。在agents中,語言模型用作推理引擎,以確定要執(zhí)行的操作以及順序。
關(guān)鍵組件
1、工具 (tools):負責決定下一步要采取的步驟的類,由語言模型和提示提供支持。這個prompt可以包括代理的個性(有助于使其以某種方式做出反應(yīng))、代理的背景上下文(有助于為其提供有關(guān)要求它執(zhí)行的任務(wù)類型的更多上下文)、提示策略以調(diào)用更好的推理。
2、代理 (agents):介紹不同代理類型的概述。
3、工具包 (toolkits):通代理可以訪問的工具集比單個工具更重要。為此,LangChain提供了工具包的概念——實現(xiàn)特定目標所需的工具組。工具包中通常有大約 3-5 個工具。
準備工作
安裝依賴
pip install langchain
pip install openai
設(shè)置密鑰
import os
import openai os.environ["OPENAI_API_KEY"] = 'your_openai_key'
os.environ['OPENAI_API_BASE'] = ''
導入庫
from langchain.chat_models import ChatOpenAI
from langchain.agents import tool
from langchain.schema import SystemMessage
from langchain.agents import OpenAIFunctionsAgent
from langchain.agents import AgentExecutor
from langchain.prompts import MessagesPlaceholder
from langchain.memory import ConversationBufferMemory
import os
import openai
開始編碼
調(diào)用ChatOpenAI作為LLM
llm = ChatOpenAI(temperature=0)
定義工具函數(shù)
使用@tool裝飾器定義一個名為get_word_length的函數(shù),用于計算單詞的長度。
@tool
def get_word_length(word: str) -> int:
"""Returns the length of a word."""
return len(word)
tools = [get_word_length]
創(chuàng)建對話歷史
定義一個常量MEMORY_KEY,用于存儲對話歷史的鍵名。
MEMORY_KEY = "chat_history"
memory = ConversationBufferMemory(memory_key=MEMORY_KEY, return_messages=True)
創(chuàng)建代理和代理執(zhí)行器
system_message = SystemMessage(content="你是非常強大的助手,但不善于計算單詞的長度。")
prompt = OpenAIFunctionsAgent.create_prompt(
system_message=system_message,
extra_prompt_messages=[MessagesPlaceholder(variable_name=MEMORY_KEY)])
agent = OpenAIFunctionsAgent(llm=llm, tools=tools, prompt=prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, memory=memory, verbose=True)
運行聊天機器人
通過agent_executor.run方法向聊天機器人發(fā)送問題,例如"耕耘一詞中有幾個字?"和"它是個真正的詞匯嗎?"。
agent_executor.run("耕耘一詞中有幾個字?")
agent_executor.run("它是個真正的詞匯嗎?")
執(zhí)行結(jié)果演示

完整代碼
完整代碼在githhub搜qq31682216/chatgpt_all
小結(jié)
以上就是我在快速入門agents分享,希望可以幫到各位!歡迎關(guān)注或發(fā)私信與我共同討論更多大模型領(lǐng)域知識~