Phidata:快速构建一个智能 AI 助手【附代码示例】

介绍 Phidata

Phidata 是一个尖端的框架,专为开发具有超越传统语言模型能力的自治助手(或称为代理)而设计。这些 AI 助手拥有长期记忆、深入的情境理解能力以及通过函数调用执行操作的能力,使它们在各种应用中非常有效。项目近期在Github上非常火爆:https://github.com/phidatahq/phidata/blob/main/README.md

传统 LLM 的挑战

传统的大型语言模型(LLMs)常常在理解上下文和执行动作能力方面存在限制,这限制了它们在需要做出决策和操作外部数据源的动态真实世界应用中的实用性。

Phidata 的解决方案:记忆、知识和工具

Phidata 通过整合三个核心增强功能来解决这些缺点:

  • 记忆:Phidata 允许在数据库中存储聊天历史,使 AI 能够维持长期对话并回忆过去的互动。
  • 知识:通过在向量数据库中存储信息,Phidata 为 AI 提供了业务相关的上下文,增强了其回应的相关性和准确性。
  • 工具:此功能赋予 AI 执行操作的能力,如通过 API 获取数据、发送电子邮件或执行数据库查询。
    在这里插入图片描述

Phidata 的工作原理

设置基于 Phidata 的助手涉及三个主要步骤:

  1. 创建助手
  2. 整合工具,如用于动态交互的 API 或数据库。
  3. 部署使用像 Streamlit、FastAPI 或 Django 这样的平台来服务 AI 应用。

安装和快速入门指南

开始使用 Phidata 非常简单,通过 pip 进行安装:

pip install -U phidata

这是一个设置能进行网页搜索的助手的快速示例:

from phi.assistant import Assistant
from phi.tools.duckduckgo import DuckDuckGo

assistant = Assistant(tools=[DuckDuckGo()], show_tool_calls=True)
assistant.print_response("法国最近发生了什么事?", markdown=True)

这个简单的设置示例展示了如何将一个基础脚本转变为一个能与网络资源互动的强大助手。

实际应用和高级功能

Phidata 的多功能性在其广泛的 cookbook 中得到展示,包括以下示例:

  • AI 驱动的投资研究员
  • 新闻文章编写器
  • YouTube 视频摘要

此外,Phidata 支持生成 Pydantic 模型或使用 SQL 进行数据分析等特殊任务,增强了其在数据驱动环境中的适用性。

示例:PDF分析助手

以下是设置用于分析PDF文档:

import typer
from rich.prompt import Prompt
from typing import Optional, List
from phi.assistant import Assistant
from phi.storage.assistant.postgres import PgAssistantStorage
from phi.knowledge.pdf import PDFUrlKnowledgeBase
from phi.vectordb.pgvector import PgVector2

db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"

knowledge_base = PDFUrlKnowledgeBase(
    urls=["https://phi-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"],
    vector_db=PgVector2(collection="recipes", db_url=db_url),
)
# Comment out after first run
knowledge_base.load()

storage = PgAssistantStorage(table_name="pdf_assistant", db_url=db_url)


def pdf_assistant(new: bool = False, user: str = "user"):
    run_id: Optional[str] = None

    if not new:
        existing_run_ids: List[str] = storage.get_all_run_ids(user)
        if len(existing_run_ids) > 0:
            run_id = existing_run_ids[0]

    assistant = Assistant(
        run_id=run_id,
        user_id=user,
        knowledge_base=knowledge_base,
        storage=storage,
        # Show tool calls in the response
        show_tool_calls=True,
        # Enable the assistant to search the knowledge base
        search_knowledge=True,
        # Enable the assistant to read the chat history
        read_chat_history=True,
    )
    if run_id is None:
        run_id = assistant.run_id
        print(f"Started Run: {run_id}\n")
    else:
        print(f"Continuing Run: {run_id}\n")

    # Runs the assistant as a cli app
    assistant.cli_app(markdown=True)


if __name__ == "__main__":
    typer.run(pdf_assistant)

这段代码可以发现,构建一个pdf分析助手变得非常简洁,不需要自己配置复杂的数据库以及大模型交互逻辑。

总结

利用Phidata可以快速构建一个满足业务需求的基于大模型的智能助理,快来试试吧。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值