五、智能體架構(gòu):Agent
5.1 什么是智能體(Agent)
將大語言模型作為一個(gè)推理引擎。給定一個(gè)任務(wù),智能體自動生成完成任務(wù)所需的步驟,執(zhí)行相應(yīng)動作(例如選擇并調(diào)用工具),直到任務(wù)完成。
5.2 先定義一些工具:Tools
- 可以是一個(gè)函數(shù)或三方 API
- 也可以把一個(gè) Chain 或者 Agent 的 run()作為一個(gè) Tool
from langchain import SerpAPIWrapper
search = SerpAPIWrapper()
tools = [
Tool.from_function(
func=search.run,
name="Search",
description="useful for when you need to answer questions about current events"
),
]
from langchain.tools import Tool, tool
import calendar
import dateutil.parser as parser
from datetime import date
@tool("weekday")
def weekday(date_str: str) -> str:
"""Convert date to weekday name"""
d = parser.parse(date_str)
return calendar.day_name[d.weekday()]
from langchain.agents import load_tools
tools = load_tools(["serpapi"])
tools += [weekday]
5.3 智能體類型:ReAct

!pip install google-search-results
from langchain.chat_models import ChatOpenAI
from langchain.llms import OpenAI
from langchain.agents import AgentType
from langchain.agents import initialize_agent
llm = ChatOpenAI(model_name=‘gpt-4’, temperature=0)
agent = initialize_agent(
tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
agent.run(“周杰倫生日那天是星期幾”)
5.4 通過 OpenAI Function Calling 實(shí)現(xiàn)智能體
from langchain.chat_models import ChatOpenAI
from langchain.llms import OpenAI
from langchain.agents import AgentType
from langchain.agents import initialize_agent
llm = ChatOpenAI(model_name=‘gpt-4-0613’, temperature=0)
agent = initialize_agent(
tools,
llm,
agent=AgentType.OPENAI_FUNCTIONS,
verbose=True,
max_iterations=2,
early_stopping_method=“generate”,
)
agent.run(“周杰倫生日那天是星期幾”)
5.5 智能體類型:SelfAskWithSearch
from langchain import OpenAI, SerpAPIWrapper
from langchain.agents import initialize_agent, Tool
from langchain.agents import AgentType
llm = OpenAI(temperature=0)
search = SerpAPIWrapper()
tools = [
Tool(
name=“Intermediate Answer”,
func=search.run,
description=“useful for when you need to ask with search”,
)
]
self_ask_with_search = initialize_agent(
tools, llm, agent=AgentType.SELF_ASK_WITH_SEARCH, verbose=True
)
self_ask_with_search.run(
“馮小剛的老婆演過什么電影”
)
5.6 智能體類型:Plan-and-Execute

!pip install langchain-experimental
from langchain.utilities.wolfram_alpha import WolframAlphaAPIWrapper
from langchain.agents import load_tools
from langchain import SerpAPIWrapper
from langchain.agents.tools import Tool
from langchain.llms import OpenAI
from langchain_experimental.plan_and_execute import PlanAndExecute, load_agent_executor, load_chat_planner
from langchain.chat_models import ChatOpenAI
from langchain.memory import ConversationSummaryMemory
llm = ChatOpenAI(model_name=‘gpt-4’, temperature=0)
search = SerpAPIWrapper(params={
‘engine’: ‘google’,
‘gl’: ‘cn’,
‘google_domain’: ‘google.com.hk’,
‘hl’: ‘zh-cn’
})
tools = [
Tool(
name=“Search”,
func=search.run,
description=“useful for when you need to answer questions about current events”
)
]
planner = load_chat_planner(llm)
executor = load_agent_executor(llm, tools, verbose=True)
agent = PlanAndExecute(planner=planner, executor=executor, verbose=True)
agent.run(“分析北京明天天氣,與上海明天天氣對比,用中文寫一遍報(bào)告”)
后記
??博客主頁:https://manor.blog.csdn.net文章來源:http://www.zghlxwxcb.cn/news/detail-813788.html
??歡迎點(diǎn)贊 ?? 收藏 ?留言 ?? 如有錯(cuò)誤敬請指正!
??本文由 Maynor 原創(chuàng),首發(fā)于 CSDN博客??
??不能老盯著手機(jī)屏幕,要不時(shí)地抬起頭,看看老板的位置?
??專欄持續(xù)更新,歡迎訂閱:https://blog.csdn.net/xianyu120/category_12471942.html文章來源地址http://www.zghlxwxcb.cn/news/detail-813788.html
到了這里,關(guān)于AI全棧大模型工程師(十六)智能體架構(gòu):Agent的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!