phidata快速开始

文章目录

什么是phidata

github: https://github.com/phidatahq/phidata

官方文档:https://docs.phidata.com/introduction

Phidata is a framework for building multi-modal agents and workflows.

Phidata 是一个用于构建多模式代理和工作流的框架。

  • Build agents with memory, knowledge, tools and reasoning.
    利用记忆、知识、工具和推理构建代理。
  • Build teams of agents that can work together to solve problems.
    建立可以协同工作解决问题的代理团队。
  • Interact with your agents and workflows using a beautiful Agent UI.
    使用美观的 Agent UI 与您的代理和工作流程进行交互。

主要特点

  • Simple & Elegant 简单而优雅
  • Powerful & Flexible 强大且灵活
  • Multi-Modal by default 默认为 Multi-Modal
  • Multi-Agent orchestration
    多代理编排
  • A beautiful Agent UI to chat with your agents
    漂亮的代理 UI,与您的代理聊天
  • Agentic RAG built-in 内置 Agentic RAG
  • Structured outputs 结构化输出
  • Reasoning built-in 内置推理
  • Monitoring & Debugging built-in
    内置监控和调试功能

elegant

美: [ˈelɪɡənt]

英: [ˈelɪɡənt]

adj. (某物)优美的;雅致的;讲究的;(某人)苗条的

网络 优雅的;高雅的;文雅的

安装

bash 复制代码
pip install -U phidata

官方demo

创建一个 Web 搜索代理

Phidata Agents are simple and elegant, resulting in minimal, beautiful code.

Phidata 代理简单而优雅,从而产生最小、美观的代码。

For example, you can create a web search agent in 10 lines of code.

例如,您可以在 10 行代码中创建一个 Web 搜索代理。

bash 复制代码
pip install -U phidata openai duckduckgo-search
python 复制代码
from phi.agent import Agent
from phi.model.openai import OpenAIChat
from phi.tools.duckduckgo import DuckDuckGo

api_key = "sk-proj-aN_YerJixxx"
web_agent = Agent(
    name="Web Agent",
    model=OpenAIChat(id="gpt-3.5-turbo", api_key=api_key),
    tools=[DuckDuckGo()],
    instructions=["Always include sources"],
    show_tool_calls=True,
    markdown=True,
)
web_agent.print_response("Tell me about OpenAI Sora?", stream=True)

使用国产deepseek模型

python 复制代码
from phi.agent import Agent

from phi.tools.duckduckgo import DuckDuckGo
from phi.model.deepseek import DeepSeekChat

api_key = "sk-xxxxx"

web_agent = Agent(
    name="Web Agent",
    model=DeepSeekChat(api_key=api_key),
    tools=[DuckDuckGo()],
    instructions=["Always include sources"],
    show_tool_calls=True,
    markdown=True,
)
web_agent.print_response("不是deepseek吗?", stream=True)

PhiData开发workflow应用

当前像coze、dify 这样的产品都支持workflow功能,可以可视化的定义workflow来解决一些相对负责的问题,而PhiData提供了通过code编排workflow的功能。

TODO~

Tools

工具是Agent可以运行的功能,如搜索web、运行SQL、发送电子邮件或调用api 。使用工具将agent与外部系统集成。您可以使用任何python函数作为工具或使用预构建的工具包。

python 复制代码
from phi.agent import Agent

agent = Agent(
    # Add functions or Toolkits
    tools=[...],
    # Show tool calls in the Agent response
    show_tool_calls=True
)
  • Available Toolkits

    Toolkit是可以添加到Agent中的函数集合。Toolkit中的函数被设计成协同工作、共享内部状态并提供更好的开发体验。 以下工具包可供使用

  • Using functions as tools
    任何 python 函数都可以被代理用作工具。我们强烈建议创建特定于您的工作流的函数,并将它们添加到您的代理中。

例如,以下是如何使用 get_top_hackernews_stories 函数作为工具:

python 复制代码
import json
import httpx

from phi.agent import Agent


def get_top_hackernews_stories(num_stories: int = 10) -> str:
    """Use this function to get top stories from Hacker News.

    Args:
        num_stories (int): Number of stories to return. Defaults to 10.

    Returns:
        str: JSON string of top stories.
    """

    # Fetch top story IDs
    response = httpx.get('https://hacker-news.firebaseio.com/v0/topstories.json')
    story_ids = response.json()

    # Fetch story details
    stories = []
    for story_id in story_ids[:num_stories]:
        story_response = httpx.get(f'https://hacker-news.firebaseio.com/v0/item/{story_id}.json')
        story = story_response.json()
        if "text" in story:
            story.pop("text", None)
        stories.append(story)
    return json.dumps(stories)

agent = Agent(tools=[get_top_hackernews_stories], show_tool_calls=True, markdown=True)
agent.print_response("Summarize the top 5 stories on hackernews?", stream=True)

在使用 Phidata 的代理功能时,系统会根据您定义的工作流和函数的特定条件来决定何时调用哪个 Python 函数

您需要在 Phidata 中定义您的 Python 函数。这些函数应该是针对您特定工作流的,能够处理特定的任务或数据。

您可以设置触发条件,这些条件可以是基于事件、数据变化或特定的用户输入。例如,您可以定义一个函数在接收到特定类型的数据时被调用,或者在某个时间点自动执行。

Phidata 将能够根据您的设置和工作流自动调用相应的 Python 函数。

Agent UI

官方文档:https://docs.phidata.com/agent-ui

Phidata provides a beautiful Agent UI for interacting with your agents.

没有数据发送到phidata,所有代理会话都本地存储在sqlite数据库中。

相关推荐
硬禾科技7 小时前
FPGA、STM32、ESP32、RP2040等5大板卡,结合AI,更突出模拟+数字+控制+算法
人工智能·stm32·算法·ai·fpga开发
AI大模型_学习君7 小时前
基于 InternLM 和 LangChain 搭建你的知识库
vscode·深度学习·microsoft·ai·langchain·编辑器·大模型应用
QianLu_Helper9 小时前
探索新年创意!千鹿AI Flux文生图功能打造专属IP
人工智能·ai·aigc·photoshop·ai生成词·人物形象设计·人物形象ip设计
厚德云9 小时前
深度求索发布DeepSeek:高效、低成本的开源大语言模型
人工智能·ai·语言模型·自然语言处理·云计算
AIQL10 小时前
手搓一个ChatUI需要分几步
人工智能·ui·ai·llm·mcp
_oP_i11 小时前
python ai ReAct 代理(ReAct Agent)
人工智能·python·ai
Trouvaille ~15 小时前
【机器学习】穷理至极,观微知著:微积分的哲思之旅与算法之道
人工智能·python·深度学习·机器学习·ai·数据分析·微积分
多恩Stone17 小时前
【Domain Generalization(2)】领域泛化在文生图领域的工作之——PromptStyler(ICCV23)
人工智能·pytorch·python·机器学习·ai
无名指的等待7121 天前
SpringAI从入门到熟练
spring·ai
阿呆5911 天前
XGPT用户帮助手册
python·ai·大模型