
如何用AI进行情感分析
Agent 目前我见到的最多的翻译是“智能体”,但是直译是“代理”。
那 Agentic 又要翻译成什么呢?我感觉“代理型”这样的词更合适。
所以为了不让读者混淆,我在本文直接用英文表示。
随着 LLM 的发展,AI 的能力已不再局限于简单的任务自动化,它们能够处理复杂且连续的工作流。例如,我们可以使用 LLM 来创建智能助手,自动代替用户在电商平台上订购商品,并安排配送。这些基于LLM的助手被称为 AI Agent。
说的具体一点,AI Agent 是一个由 LLM 驱动的智能助手,能够根据预设的任务和工具,帮助完成特定的工作。在最基础的形式下,AI Agent 具备以下几个关键特性:
举个例子,AI Agent 可以执行以下任务:
虽然我们可以使用 Python、React 等技术栈从零开始构建 AI Agent,但借助像 Phidata、OpenAI Swarm、LangGraph、Microsoft Autogen、CrewAI、Vertex AI 和 Langflow 等 Multi-Agent(多代理)框架,开发过程会变得更加高效。这些框架提供了预先打包的工具和功能,从而帮助我们快速构建 AI 助手。
那么,使用这些框架的优势在哪里呢?
通过这些框架,我们可以更轻松地开发出高效、智能的 AI Agent,提升产品开发的速度和质量。
接下来,我们将深入了解构建 AI Agent 的五大平台,帮助你快速上手,打造属于自己的 AI 助手!
下面的代码片段展示了一个最简单的 AI Agent。 AI Agent 通过使用语言模型来解决问题。AI Agent 的定义可能包括选择的大型或小型语言模型、内存、存储、外部知识源、向量数据库、指令、描述、名称等。
例如,像 Windsurf 这样的现代 AI Agent 可以帮助任何人快速生成、运行、编辑、构建和部署全栈 Web 应用程序。它支持多种 Web 技术和数据库的代码生成与应用构建,如 Astro、Vite、Next.js、Superbase 等。
Agentic AI 系统在企业环境中有着广泛的应用,尤其是在执行自动化和重复任务方面。以下是 AI Agent 在企业领域中有用的关键应用场景:
你可以使用多个 Python 框架来创建并将 Agent 添加到应用程序和服务中。这些框架包括无代码(可视化 AI Agent 构建器)、低代码和中代码工具。现在我将向你介绍 2024 年五个顶尖的的基于 Python 的 Agent 构建器,你可以根据自己的业务需求进行自由选择。
1 Phidata
Phidata 是一个基于 Python 的框架,可将 LLM 转化为 AI 产品中的 Agent。它支持主流大厂的闭源和开源 LLM,如 OpenAI、Anthropic、Cohere、Ollama 和 Together AI 等。通过其对数据库和向量存储的支持,我们可以轻松地将 AI 系统连接到 Postgres、PgVector、Pinecone、LanceDb 等。使用 Phidata,我们可以构建基础 Agent,也可以通过函数调用、结构化输出和微调来创建高级 Agent。
现在我将向你展示如何使用 Phidata 框架和 OpenAI 的 LLM 在 Python 中构建一个查询 Yahoo Finance 的金融数据的基本 AI Agent。该 Agent 旨在通过 Yahoo Finance 汇总各公司分析师的推荐意见。
安装依赖项:
新建一个 financial_agent.py:
import openai
from phi.agent import Agent
from phi.model.openai import OpenAIChat
from phi.tools.yfinance import YFinanceTools
from dotenv import load_dotenv
import os
# 从 .env 文件加载环境变量
load_dotenv()
# 从环境中获取 API 密钥
openai.api_key = os.getenv("OPENAI_API_KEY")
# 初始化 Agent
finance_agent = Agent(
name="Finance AI Agent",
model=OpenAIChat(id="gpt-4o"),
tools=[
YFinanceTools(
stock_price=True,
analyst_recommendations=True,
company_info=True,
company_news=True,
)
],
instructions=["Use tables to display data"],
show_tool_calls=True,
markdown=True,
)
# 输出分析师对 NVDA 的推荐摘要
finance_agent.print_response("Summarize analyst recommendations for NVDA", stream=True)
上述代码:
Swarm 是 OpenAI 最近发布的一种开源实验性 Agent 框架,是一种轻量级的 Multi-Agent 编排框架。
注意:Swarm 仍处于实验阶段。可用于开发和教育目的,但不建议用于生产环境。最新的信息可以去参考官方仓库:
https://github.com/openai/swarm
Swarm 使用 Agents 和 Handoffs(交接) 作为抽象概念,用于 Agent 的编排和协调。它是一种轻量级框架,便于测试和管理。Swarm 的 Agent 可以配置工具、指令和其他参数,以执行特定任务。
除了其轻量和简单的架构,Swarm 还具备以下关键特性:
接下来,我给你演示一下如何使用 Swarm:
from swarm import Swarm, Agent
# 初始化 Swarm 客户端
client = Swarm()
mini_model = "gpt-4o-mini"
# 定义协调函数,用于将任务交接给 Agent B
def transfer_to_agent_b():
return agent_b
# 定义 Agent A
agent_a = Agent(
name="Agent A",
instructions="You are a helpful assistant.",
functions=[transfer_to_agent_b],
)
# 定义 Agent B
agent_b = Agent(
name="Agent B",
model=mini_model,
instructions="You speak only in Finnish.",
)
# 运行 Agent 系统并获取响应
response = client.run(
agent=agent_a,
messages=[{"role": "user", "content": "I want to talk to Agent B."}],
debug=False,
)
# 打印 Agent B 的响应
print(response.messages[-1]["content"])
上述代码
如果将 agent_b 的指令中语言更改为其他语言(如英语、瑞典语、芬兰语),将会得到相应语言的响应结果。
CrewAI 是最受欢迎的基于 Agent 的 AI 框架之一,可快速构建 AI Agent 并将其集成到最新的 LLM 和代码库中。像 Oracle、Deloitte、Accenture 等大公司都在使用并信任 CrewAI。
与其他基于 Agent 的框架相比,CrewAI 功能更加丰富,特性更加多样。
首先我们需要安装 CrewAI:
上述命令会安装 CrewAI 及其工具,并验证安装是否成功。
安装完成后,可运行以下命令创建一个新的 CrewAI 项目:
运行该命令后,系统会提示我们从以下模型提供商列表中选择一个,例如 OpenAI、Anthropic、xAI、Mistral 等。选择提供商后,还可以从列表中选择具体模型,例如 gpt-4o-mini。
以下命令可用于创建 Multi-Agent 系统:
完整的 CrewAI 应用已上传到 GitHub 仓库,可通过以下命令下载并运行:
https://github.com/GetStream/stream-tutorial-projects/tree/main/AI/Multi-Agent-AI
运行后,你将看到类似以下的响应结果:
4 Autogen
Autogen 是一个开源框架,用于构建 Agent 系统。借助该框架,可以创建 Multi-Agent 协作和 LLM 工作流。
Autogen 具备以下关键功能:
下面的代码块构建了一个简单的 AI 天气 Agent 系统:
import asyncio
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.task import Console, TextMentionTermination
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models import OpenAIChatCompletionClient
import os
from dotenv import load_dotenv
load_dotenv()
# 定义工具
async def get_weather(city: str) -> str:
return f"The weather in {city} is 73 degrees and Sunny."
async def main() -> None:
# 定义 Agent
weather_agent = AssistantAgent(
name="weather_agent",
model_client=OpenAIChatCompletionClient(
model="gpt-4o-mini",
api_key=os.getenv("OPENAI_API_KEY"),
),
tools=[get_weather],
)
# 定义终止条件
termination = TextMentionTermination("TERMINATE")
# 定义 Agent 团队
agent_team = RoundRobinGroupChat([weather_agent], termination_condition=termination)
# 运行团队并将消息流至控制台
stream = agent_team.run_stream(task="What is the weather in New York?")
await Console(stream)
asyncio.run(main())
上述代码
运行此代码后,控制台将显示类似于以下的输出结果:
LangGraph 是基于节点的 AI 框架,专为构建处理复杂任务的 Multi-Agent 系统而设计。作为 LangChain 生态系统的一部分,LangGraph 是一种图结构的 Agent 框架。用户可以通过节点和边来构建线性、层次化和顺序化的工作流。其中,节点(node)表示 Agent 的动作,边(edge)表示动作之间的转换,状态(state)则是 LangGraph Agent 的另一重要组成部分。
本文章转载微信公众号@PyTorch研习社