AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


开源AI助手Phidata = LLM + 记忆 + 知识 + 工具
发布日期:2024-06-07 05:50:56 浏览次数: 1840


关注 AI 技能,开启智能生活!

Phidata是一个为大型语言模型(LLM)增加记忆、知识和工具的框架。它旨在解决LLM在上下文理解和行动能力方面的局限性。为大语言模型增加记忆、知识和工具。

AI 助手 == LLM + 记忆 + 知识 + 工具 == LLM + Phidata

项目概述

  • 背景:Phidata是一个创新的框架,专门为大型语言模型(LLM)设计,通过为其增加记忆、知识和工具来弥补LLM在上下文理解和行动能力方面的局限性。这个框架的开发是为了解决当前LLM无法进行长期对话和缺乏具体执行能力的问题,从而使LLM在各种业务场景中的应用更加广泛和深入。

  • 目标:Phidata旨在通过三大核心增强:记忆、知识和工具,将通用的LLM转变为高度专业化的AI助手。这一目标不仅提升了LLM的实用性,还扩展了其在行业中的应用领域,如数据分析、客户服务和内容创建等。

  • 主要功能

    • 记忆:通过在数据库中存储聊天历史,Phidata赋予LLM长期对话的能力,使助手能够记住与用户的交互历史和上下文,提供连贯和个性化的交流体验。

    • 知识:Phidata通过在向量数据库中存储关键信息,为LLM提供了必要的业务知识和上下文,这些知识支持模型理解和处理更复杂的查询和任务。

    • 工具:Phidata集成了多种工具使LLM能执行具体操作,例如从API拉取数据、发送电子邮件、查询数据库等。这一功能极大地扩展了LLM的实用性,使其能够在各种情景下自动执行任务。

  • 工作流程

    • 创建助手:首先创建一个助手实例,作为AI应用的基础。

    • 添加工具、知识和存储:向助手添加功能性组件,如工具(进行数据操作)、知识(存储必要的信息)和存储(记录交互历史)。

    • 服务部署:通过使用Streamlit、FastAPI或Django等现代Web框架部署应用,使助手可以在实际环境中服务用户。

Phidata的设计不仅提升了LLM的功能,还通过提供如PDF AI、ArXiv AI和HackerNews AI等示例应用程序,展示了其在实际应用中的广泛可能性,这些应用可以执行从总结PDF文档到回答专业论文问题、以及概括新闻故事等多种任务。

安装与配置

前提条件

在开始安装和配置Phidata之前,确保系统中已安装以下必要的软件和库:

  • Python(建议使用最新版本)

  • pip(Python包管理工具)

  • 需要的外部库和工具,如 openai, duckduckgo-search, yfinance,具体取决于所需功能。

安装步骤

克隆仓库

  1. 克隆Phidata的GitHub仓库到本地环境:

    git clone [仓库地址]
  2. 进入仓库目录:

    cd phidata

安装依赖

  1. 安装Phidata及其依赖:

    pip install -U phidata
  2. 安装额外的库,例如用于Web搜索的 duckduckgo-search 或财务数据查询的 yfinance

    pip install openai duckduckgo-search
    pip install yfinance

环境设置

  1. 配置环境变量,例如OPENAI的API密钥:

    export OPENAI_API_KEY=sk-xxxx

配置说明

Phidata可能需要配置一些环境变量或修改配置文件以正确运行。这包括:

  • API密钥:如OpenAI的API密钥,需要设置在环境变量中或直接在代码中指定。

  • 数据库配置:如果使用数据库存储记忆和知识,需要配置数据库的连接信息。

运行项目

示例1:创建可以搜索网络的助手

  1. 创建一个名为 assistant.py 的文件:

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

    assistant = Assistant(tools=[DuckDuckGo()], show_tool_calls=True)
    assistant.print_response("What's happening in France?", markdown=True)
  2. 运行助手脚本:

    python assistant.py

示例2:创建可以查询财务数据的助手

  1. 创建一个名为 finance_assistant.py 的文件:

    from phi.assistant import Assistant
    from phi.llm.openai import OpenAIChat
    from phi.tools.yfinance import YFinanceTools

    assistant = Assistant(
    llm=OpenAIChat(model="gpt-4o"),
    tools=[YFinanceTools(stock_price=True, analyst_recommendations=True, company_info=True, company_news=True)],
    show_tool_calls=True,
    markdown=True
    )
    assistant.print_response("What is the stock price of NVDA")
    assistant.print_response("Write a comparison between NVDA and AMD, use all tools available.")
  2. 运行助手脚本:

    python finance_assistant.py

通过遵循以上步骤,用户可以快速搭建并运行自己的Phidata AI助手,以实现特定的业务功能。

使用示例

LLM OS:使用LLM作为新型操作系统的CPU

通过Phidata,LLM可以作为操作系统的核心处理单元,处理复杂的任务和命令,实现一个以智能助手为中心的操作环境。

自主RAG(Retrieval-Augmented Generation)

Phidata使LLM能够自主检索其知识库、网络或聊天历史,以增强生成内容的相关性和准确性。

本地RAG

使用Llama3和Ollama在完全本地的环境中实现RAG,结合PgVector进行高效的数据检索和管理。

投资研究员

利用Llama3和Groq生成股票投资报告,提供深入的市场分析和投资建议。

新闻文章编写

使用Llama3和Groq技术,自动撰写新闻文章,覆盖多种主题和事件。

视频摘要

Phidata结合YouTube和Llama3实现视频内容的自动摘要,帮助用户快速获取视频主要信息。

研究助理

使用Llama3和Groq为学术研究和报告提供撰写支持,增强内容的深度和广度。

Python编程助手

Phidata允许创建可以编写并运行Python代码的助手,以执行数据分析和自动化任务。

示例代码

创建一个名为 python_assistant.py 的文件,该文件配置如下:

from phi.assistant.python import PythonAssistant
from phi.file.local.csv import CsvFile

python_assistant = PythonAssistant(
files=[
CsvFile(
path="https://phidata-public.s3.amazonaws.com/demo_data/IMDB-Movie-Data.csv",
description="Contains information about movies from IMDB."
)
],
pip_install=True,
show_tool_calls=True
)

python_assistant.print_response("What is the average rating of movies?", markdown=True)

运行助手,首先安装必要的库:

pip install pandas
python python_assistant.py

SQL数据分析助手

Phidata通过DuckDbAssistant使LLM能够使用SQL进行数据分析。

示例代码

创建一个名为 data_assistant.py 的文件,配置如下:

import json
from phi.assistant.duckdb import DuckDbAssistant

duckdb_assistant = DuckDbAssistant(
semantic_model=json.dumps({
"tables": [
{
"name": "movies",
"description": "Contains information about movies from IMDB.",
"path": "https://phidata-public.s3.amazonaws.com/demo_data/IMDB-Movie-Data.csv"
}
]
})
)

duckdb_assistant.print_response("What is the average rating of movies? Show me the SQL.", markdown=True)

安装DuckDb并运行数据助手:

pip install duckdb
python data_assistant.py

电影剧本生成助手

通过Phidata创建一个可以生成电影剧本的助手,使用结构化数据(如pydantic模型)从文本中提取特征。

示例代码

创建一个名为 movie_assistant.py 的文件,配置如下:

from typing import List
from pydantic import BaseModel, Field
from rich.pretty import pprint
from phi.assistant import Assistant

class MovieScript(BaseModel):
setting: str = Field(..., description="Provide a nice setting for a blockbuster movie.")
ending: str = Field(..., description="Ending of the movie. If not available, provide a happy ending.")
genre: str = Field(..., description="Genre of the movie. If not available, select action, thriller or romantic comedy.")
name: str = Field(..., description="Give a name to this movie")
characters: List[str] = Field(..., description="Name of characters for this movie.")
storyline: str = Field(..., description="3 sentence storyline for the movie. Make it exciting!")

movie_assistant = Assistant(
description="You help write movie scripts.",
output_model=MovieScript
)

pprint(movie_assistant.run("New York"))

运行 movie_assistant.py 生成电影剧本,输出如下:

MovieScript(
│ setting='A bustling and vibrant New York City',
│ ending='The protagonist saves the city and reconciles with their estranged family.',
│ genre='action',
│ name='City Pulse',
│ characters=['Alex Mercer', 'Nina Castillo', 'Detective Mike Johnson'],
│ storyline='In the heart of New York City, a former cop turned vigilante, Alex Mercer, teams up with a street-smart activist, Nina Castillo, to take down a corrupt political figure who threatens to destroy the city. As they navigate through the intricate web of power and deception, they uncover shocking truths that push them to the brink of their abilities. With time running out, they must race against the clock to save New York and confront their own demons.'
)

这些使用实例展示了Phidata如何通过增加记忆、知识和工具来扩展LLM的功能,使其在各种情景中提供高效、精准的服务。

文档与资源

文档地址:

https://docs.phidata.com/basics

Demos

Checkout the following AI Applications built using phidata:

  • PDF AI : that summarizes and answers questions from PDFs.https://pdf.aidev.run/

  • ArXiv AI that answers questions about ArXiv papers using the ArXiv API.https://arxiv.aidev.run/

  • HackerNews AI summarize stories, users and shares what's new on HackerNews.https://hn.aidev.run/

注:本文内容仅供参考,具体项目特性请参照官方 GitHub 页面的最新说明。

https://github.com/phidatahq/phidata


如喜欢本文,请点击右上角,把文章分享到朋友圈
如有想了解学习的技术点,请留言给若飞安排分享

·END·

因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享

进ChatGPT群请加若飞,暗号 “gpt



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询