开启左侧

AI全栈大模型工程师(十六)智能体架构:Agent

[复制链接]
米落枫 发表于 2 小时前 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
作者:秒懂AI+
文章目录


      五、智能体架构:Agent
        5.1 什么是智能体(Agent)5.2 先定义一些工具:Tools5.3 智能体类型:ReAct5.4 通过 OpenAI Function Calling 实现智能体5.5 智能体类型:SelfAskWithSearch5.6 智能体类型:Plan-and-Execute
      后记


五、智能体架构:Agent

5.1 什么是智能体(Agent)

将大语言模型作为一个推理引擎。给定一个任务,智能体自动生成完成任务所需的步骤,执行相应动作(例如选择并调用工具),直到任务完成。
5.2 先定义一些工具:Tools

    可以是一个函数或三方 API也可以把一个 Chain 或者 Agent 的 run()作为一个 Tool
  1. from langchain import SerpAPIWrapper
  2. search = SerpAPIWrapper()
  3. tools = [
  4.     Tool.from_function(
  5.         func=search.run,
  6.         name="Search",
  7.         description="useful for when you need to answer questions about current events"
  8.     ),
  9. ]
  10. from langchain.tools import Tool, tool
  11. import calendar
  12. import dateutil.parser as parser
  13. from datetime import date
  14. @tool("weekday")
  15. def weekday(date_str: str) -> str:
  16.     """Convert date to weekday name"""
  17.     d = parser.parse(date_str)
  18.     return calendar.day_name[d.weekday()]
  19. from langchain.agents import load_tools
  20. tools = load_tools(["serpapi"])
  21. tools += [weekday]
复制代码
5.3 智能体类型:ReAct


AI全栈大模型工程师(十六)智能体架构:Agent-1.png

!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 实现智能体

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


AI全栈大模型工程师(十六)智能体架构:Agent-2.png

!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(“分析北京明天天气,与上海明天天气对比,用中文写一遍报告”)
后记

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by Discuz! X3.4© 2001-2013 Discuz Team.( 京ICP备17022993号-3 )