Интеграция Milvus с Phidata
Phidata - это мощный фреймворк для создания интеллектуальных агентов и рабочих процессов. Она позволяет создавать мультимодальные агенты, способные понимать текст, изображения, аудио и видео, а также использовать различные инструменты и источники знаний для выполнения сложных задач. Phidata поддерживает оркестровку нескольких агентов, позволяя командам агентов сотрудничать и совместно решать проблемы. Кроме того, она предоставляет красивый пользовательский интерфейс Agent UI для взаимодействия с агентами.
Векторная база данных Milvus позволяет эффективно хранить и извлекать информацию в виде вкраплений. С помощью Milvus и Phidata вы можете легко интегрировать свои знания в рабочие процессы агентов. Этот документ представляет собой базовое руководство по использованию интеграции Milvus с Phidata.
Подготовка
Установите необходимые зависимости:
$ pip install --upgrade phidata pymilvus openai
Если вы используете Google Colab, для включения только что установленных зависимостей вам может потребоваться перезапустить среду выполнения (нажмите на меню "Runtime" в верхней части экрана и выберите "Restart session" из выпадающего меню).
В этом примере мы будем использовать OpenAI в качестве LLM. Вам следует подготовить api ключ OPENAI_API_KEY
в качестве переменной окружения.
import os
os.environ["OPENAI_API_KEY"] = "sk-***********"
Инициализация Milvus
Импортируйте пакеты и инициализируйте экземпляр векторной базы данных Milvus.
from phi.agent import Agent
from phi.knowledge.pdf import PDFUrlKnowledgeBase
from phi.vectordb.milvus import Milvus
# Initialize Milvus
vector_db = Milvus(
collection="recipes",
uri="./milvus.db",
)
Укажите имя коллекции, uri и token(optinal) для вашего сервера Milvus.
Здесь описано, как задать uri и token:
Если вам нужна локальная векторная база данных только для небольших масштабов данных или прототипирования, установка uri в качестве локального файла, например
./milvus.db
, является наиболее удобным методом, поскольку он автоматически использует Milvus Lite для хранения всех данных в этом файле.Если у вас большой объем данных, скажем, более миллиона векторов, вы можете настроить более производительный сервер Milvus на Docker или Kubernetes. В этом случае используйте адрес и порт сервера в качестве uri, например,
http://localhost:19530
. Если вы включили функцию аутентификации на Milvus, используйте "<ваше_имя_пользователя>:<ваш_пароль>" в качестве токена, в противном случае не задавайте токен.Если вы используете Zilliz Cloud, полностью управляемый облачный сервис для Milvus, настройте
uri
иtoken
, которые соответствуют публичной конечной точке и ключу API в Zilliz Cloud.
Загрузка данных
Создайте экземпляр базы знаний PDF url и загрузите в него данные. В качестве примера мы используем публичные pdf-данные рецептов.
# Create knowledge base
knowledge_base = PDFUrlKnowledgeBase(
urls=["https://phi-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"],
vector_db=vector_db,
)
knowledge_base.load(recreate=False) # Comment out after first run
INFO Создание коллекции
INFO Загрузка базы знаний
INFO Чтение: https: //phi-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf
INFO Добавлено 0 документов в базу знаний
Использование агента для ответа на вопрос
Интегрируем базу знаний в агента, после чего можем задать ему вопрос и получить ответ.
# Create and use the agent
agent = Agent(knowledge_base=knowledge_base, use_tools=True, show_tool_calls=True)
# Query the agent
agent.print_response("How to make Tom Kha Gai", markdown=True)
Output()
┏━ Message ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ┃
┃ How to make Tom Kha Gai ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━ Response (6.9s) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ┃
┃ Running: ┃
┃ ┃
┃ • search_knowledge_base(query=Tom Kha Gai recipe) ┃
┃ ┃
┃ Here's a recipe for Tom Kha Gai, a delicious Thai chicken and galangal soup made with coconut milk: ┃
┃ ┃
┃ Ingredients (One serving): ┃
┃ ┃
┃ • 150 grams chicken, cut into bite-size pieces ┃
┃ • 50 grams sliced young galangal ┃
┃ • 100 grams lightly crushed lemongrass, julienned ┃
┃ • 100 grams straw mushrooms ┃
┃ • 250 grams coconut milk ┃
┃ • 100 grams chicken stock ┃
┃ • 3 tbsp lime juice ┃
┃ • 3 tbsp fish sauce ┃
┃ • 2 leaves kaffir lime, shredded ┃
┃ • 1-2 bird’s eye chilies, pounded ┃
┃ • 3 leaves coriander ┃
┃ ┃
┃ Directions: ┃
┃ ┃
┃ 1 Bring the chicken stock and coconut milk to a slow boil. ┃
┃ 2 Add galangal, lemongrass, chicken, and mushrooms. Once the soup returns to a boil, season it with f┃
┃ 3 Wait until the chicken is cooked, then add the kaffir lime leaves and bird’s eye chilies. ┃
┃ 4 Remove the pot from heat and add lime juice. ┃
┃ 5 Garnish with coriander leaves. ┃
┃ ┃
┃ Tips: ┃
┃ ┃
┃ • Keep the heat low throughout the cooking process to prevent the oil in the coconut milk from separ ┃
┃ • If using mature galangal, reduce the amount. ┃
┃ • Adding lime juice after removing the pot from heat makes it more aromatic. ┃
┃ • Reduce the number of chilies for a milder taste. ┃
┃ ┃
┃ Enjoy making and savoring this flavorful Thai soup! ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Поздравляем, вы изучили основы использования Milvus в Phidata. Если вы хотите узнать больше о том, как использовать Phidata, обратитесь к официальной документации.