
如何用AI進行情感分析
例如,像 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研習社