phidata快速开始

news2025/3/13 11:54:35

文章目录

    • 什么是phidata
      • 主要特点
    • 安装
    • 官方demo
      • 创建一个 Web 搜索代理
    • PhiData开发workflow应用
    • Tools
    • Agent UI

什么是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. (某物)优美的;雅致的;讲究的;(某人)苗条的
网络 优雅的;高雅的;文雅的

安装

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 搜索代理。

pip install -U phidata openai duckduckgo-search
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模型:

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函数作为工具或使用预构建的工具包。

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 函数作为工具:

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数据库中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2267277.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

考研互学互助系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库…

王佩丰24节Excel学习笔记——第二十三讲:饼图美化与PPT图表

【以 Excel2010 系列学习,用 Office LTSC 专业增强版 2021 实践】 【本章技巧】 主次坐标柱形避让,做成左右两条柱型图的显示;饼图最多只能做2层,超过2层要使用环型图做,饼图与环形图结合可以做多层,注意&a…

从虚拟到现实:AI与AR/VR技术如何改变体验经济?

引言:体验经济的崛起 在当今消费环境中,产品与服务早已不再是市场竞争的唯一焦点,能够提供深刻感知和独特体验的品牌,往往更能赢得消费者的青睐。这种转变标志着体验经济的崛起。体验经济不仅仅是简单的买卖行为,而是通…

最新SQL Server 2022保姆级安装教程【附安装包】

目录 一、安装包下载: 下载链接:https://pan.quark.cn/s/b1c0c63d61ec 二、安装SQL Server 1.下载安装包后解压出来,双击打开 2.等待加载安装程序 3.点击基本安装 4.点击接受 5.点击浏览 6.在D盘新建文件夹 7.命名为【Sql Server】…

【GeekBand】C++设计模式笔记17_Mediator_中介者模式

1. “接口隔离” 模式 在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题,甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。典型模式 FacadeProxyAdapte…

腾讯音乐:说说Redis脑裂问题?

Redis 脑裂问题是指,在 Redis 哨兵模式或集群模式中,由于网络原因,导致主节点(Master)与哨兵(Sentinel)和从节点(Slave)的通讯中断,此时哨兵就会误以为主节点…

WebSocket实现直播弹幕滚动推送效果

WebSocket 弹幕滚动推送 WebSocket 通信协议优点实现过程详细解析1. 初始化 WebSocket 连接2. WebSocket 事件回调2.2 连接错误 (onerror)2.3 接收到消息 (onmessage)2.4 连接关闭 (onclose)3. 心跳检测机制4. WebSocket 重新连接机制5. 滚动加载和历史数据 总结代码示例 WebS…

【C++】球弹跳高度的计算:思路分析与优化

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述输入格式输出格式输入输出示例 💯两种代码实现及其对比我的代码实现代码分析优点与不足 老师的代码实现代码分析优点与不足 💯两种实现的对…

ASP.NET Core Web API Hangfire

ASP.NET Core Web API Hangfire 前言一、安装二、相关代码1.代码片段2.代码片段3.运行效果 三、测试代码1.即发即弃作业2.延迟作业3.重复作业4.延续作业5.页面调度作业 前言 👨‍💻👨‍🌾📝记录学习成果,以…

智慧园区小程序开发制作功能介绍

智慧园区小程序开发制作功能介绍 智慧园区小程序系统作为一款面向园区企业的一站式线上服务平台,可为企业提供数智化的园区办公服务。智慧园区小程序功能介绍 1、园区公告、政策信息查看足不出户掌握最新动态,“园区公告、政策信息”等信息。首页点击对应…

Three.js Journey (notes)

Ref Three.js中文网 Three.js Journey — Learn WebGL with Three.js Part 1 first-threejs-project 1. build tools ①vite vs webpack do a bunch of things like optimizations,cache breaking,source mapping,running a local server,etc. build tool vite (most appr…

【玩转OCR】 | 腾讯云智能结构化OCR在多场景的实际应用与体验

文章目录 引言产品简介产品功能产品优势 API调用与场景实践图像增强API调用实例发票API调用实例其他场景 结语相关链接 引言 在数字化信息处理的时代,如何高效、精准地提取和结构化各类文档数据成为了企业和政府部门的重要需求。尤其是在面对海量票据、证件、表单和…

c# VS2022安装教程

换了部电脑,重新安装vs2022,做个记录给自己以后方便看 官网下载地址:下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux 官网下载vs2022社区版,安装包 双击后点击继续,需要全程联网 随后出现这个界面并勾选…

Bluetooth Spec【0】蓝牙核心架构

蓝牙核心系统由一个主机、一个主控制器和零个或多个辅助控制器组成蓝牙BR/ EDR核心系统的最小实现包括了由蓝牙规范定义的四个最低层和相关协议,以及一个公共服务层协议;服务发现协议(SDP)和总体配置文件要求在通用访问配置文件&a…

PCA降维MATLAB代码解释及应用场景

代码整体功能概述 这段代码主要实现了以下几个功能:首先读取两个 CSV 文件中的数据,对数据进行归一化处理后合并,接着绘制原始数据的散点图进行可视化展示,然后应用主成分分析(PCA)算法对合并后的数据进行…

深入理解Redis

1.数据结构类型 数据结构-SDS-简单动态字符串 Redis构建了一种新字符串结构,称为简单动态字符串(Simple Dynamic String),简称SDS。 Redis未直接使用C语言的字符串,如:char* s = "hello",本质是字符数组: {h, e, l, l, o, \0}。因为C语言字符串存在很多问题…

数字后端培训项目Floorplan常见问题系列专题续集1

今天继续给大家分享下数字IC后端设计实现floorplan阶段常见问题系列专题。这些问题都是来自于咱们社区IC后端训练营学员提问的问题库。目前这部分问题库已经积累了4年了,后面会陆续分享这方面的问题。 希望对大家的数字后端学习和工作有所帮助。 数字后端项目Floor…

【TaskBasics】- KRTS C++示例精讲(3)

TaskBasics示例讲解 目录 TaskBasics示例讲解结构说明 项目打开请查看【BaseFunction精讲】。 结构说明 TaskBasics:应用层程序,主要用于人机交互、数据显示、内核层数据交互等; TaskBasics.h : 数据定义TaskBasics.cpp&#xff…

jenkins集成工具(一)部署php项目

目录 什么是CI 、CD Jenkins集成工具 一、Jenkins介绍 二、jenkins的安装和部署 环境部署 安装jenkins 安装gitlab 配置镜像源进行安装 修改密码 安装git工具 上传测试代码 Jenkins部署php项目wordpress 发布php代码 安装插件 测试代码发布 实现发布成功发送邮件…

在交叉编译中,常见的ELF(elf)到底是什么意思?

ELF 是 Executable and Linkable Format 的缩写,中文翻译为“可执行与可链接格式”。它是一种通用的文件格式,主要用于存储可执行文件、目标文件(编译后的中间文件)、动态库(.so 文件)以及内存转储文件&…