Build AI Assistants with Memory, Knowledge, and Tools

May 14, 2022 | Educational

Phidata Framework Overview

Phidata Illustration

What is Phidata?

Phidata is a framework for building Autonomous Assistants (also known as Agents) that boast long-term memory, contextual knowledge, and the ability to take actions via function calls. With Phidata, you can turn any Large Language Model (LLM) into a capable AI Assistant. Here are some of the things your assistant can do:

  • Search the web using DuckDuckGo, Google, etc.
  • Analyze data using SQL, DuckDb, etc.
  • Conduct research and generate reports.
  • Answer questions from PDFs, APIs, etc.
  • Write scripts for movies, books, etc.
  • Summarize articles, videos, etc.
  • Perform tasks like sending emails, querying databases, etc.
  • And much more…

Why Use Phidata?

Phidata solves a major problem: the need to transform general-purpose LLMs into specialized assistants tailored for specific use cases. Here’s how:

  • Memory: Stores chat history in a database, allowing LLMs to maintain long-term conversations.
  • Knowledge: Uses a vector database to store information and provide contextual relevance to LLMs.
  • Tools: Empowers LLMs to perform actions such as pulling data from an API, sending emails, or querying databases.

By integrating memory and knowledge, LLMs become “smarter,” while tools enhance their “autonomy.”

How it Works

  1. Create an Assistant: Initialize your AI assistant.
  2. Add Tools, Knowledge, and Storage: Incorporate necessary functions, knowledge databases, and storage systems.
  3. Serve Your Application: Utilize Streamlit, FastAPI, or Django to deploy your AI application.

Installation

To get started with Phidata, simply run:

pip install -U phidata

Quickstart: Assistant that Can Search the Web

Create a new Python file named assistant.py and write the following code:

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)

Next, install the required libraries, export your OpenAI API key, and run your Assistant:

pip install openai duckduckgo-search
export OPENAI_API_KEY=sk-xxxx
python assistant.py

Troubleshooting

While building your AI assistant, you may encounter issues. Here are some common troubleshooting tips:

  • Error in Package Installation: Ensure that you have the latest version of Python and necessary libraries installed. Use pip install --upgrade package_name to upgrade.
  • API Key Issues: Double-check your OpenAI API key for any typos or invalid characters.
  • Assistant Response Errors: Review your code to make sure that all parameters are correctly specified and aligned with function signatures.

For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

At **[fxis.ai](https://fxis.ai)**, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

Example: Assistant that Can Query Financial Data

Create another file named finance_assistant.py and use the following code:

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.")

Install the required libraries and run your Assistant:

pip install yfinance
python finance_assistant.py

More Resources

Conclusion

Phidata opens a realm of possibilities for building intelligent AI assistants equipped with memory, knowledge, and tools. Imagine your assistant as a well-trained personal assistant who remembers past conversations, understands the context of your requests, and can carry out a wide range of tasks—from data analysis to web searching—seamlessly and efficiently. It’s akin to upgrading a basic tool into a Swiss Army knife, with each compartment equipped to handle specific needs!

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox