Integrar Milvus con Phidata
Phidata es un potente marco para crear agentes y flujos de trabajo inteligentes. Permite crear agentes multimodales capaces de comprender texto, imágenes, audio y vídeo, y aprovechar diversas herramientas y fuentes de conocimiento para realizar tareas complejas. Phidata soporta la orquestación multiagente, lo que permite a los equipos de agentes colaborar y resolver problemas juntos. También proporciona una interfaz de usuario de agente atractiva para interactuar con los agentes.
La base de datos vectorial Milvus permite almacenar y recuperar información de forma eficiente en forma de incrustaciones. Con Milvus y Phidata, puede integrar fácilmente sus conocimientos en los flujos de trabajo de sus agentes. Este documento es una guía básica sobre cómo utilizar la integración de Milvus con Phidata.
Preparación
Instale las dependencias necesarias:
$ pip install --upgrade phidata pymilvus openai
Si está utilizando Google Colab, para habilitar las dependencias recién instaladas, es posible que tenga que reiniciar el tiempo de ejecución (haga clic en el menú "Tiempo de ejecución" en la parte superior de la pantalla, y seleccione "Reiniciar sesión" en el menú desplegable).
En este ejemplo utilizaremos OpenAI como LLM. Deberá preparar la clave api OPENAI_API_KEY
como variable de entorno.
import os
os.environ["OPENAI_API_KEY"] = "sk-***********"
Inicializar Milvus
Importe los paquetes e inicialice la instancia de la base de datos vectorial 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",
)
Especifique el nombre de la colección y el uri y token(optinal) para su servidor Milvus.
Aquí se explica cómo establecer el uri y el token:
Si sólo necesita una base de datos vectorial local para datos a pequeña escala o prototipos, establecer el uri como un archivo local, por ejemplo
./milvus.db
, es el método más conveniente, ya que utiliza automáticamente Milvus Lite para almacenar todos los datos en este archivo.Si tiene una gran escala de datos, digamos más de un millón de vectores, puede configurar un servidor Milvus más eficiente en Docker o Kubernetes. En esta configuración, por favor utilice la dirección del servidor y el puerto como su uri, por ejemplo
http://localhost:19530
. Si habilita la función de autenticación en Milvus, utilice "<su_nombre_de_usuario>:<su_contraseña>" como token, de lo contrario no configure el token.Si utiliza Zilliz Cloud, el servicio en la nube totalmente gestionado para Milvus, ajuste
uri
ytoken
, que corresponden al punto final público y a la clave API en Zilliz Cloud.
Cargar datos
Cree una instancia base de conocimiento de url PDF y cargue los datos en la instancia. Usamos los datos pdf de una receta pública como ejemplo.
# 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 Creando colección
INFO Cargando base de conocimiento
INFO Leyendo: https: //phi-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf
INFO Añadidos 0 documentos a la base de conocimientos
Usar agente para responder a una pregunta
Integrar la base de conocimiento en un agente, entonces podemos hacer una pregunta al agente y obtener una respuesta.
# 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! ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Enhorabuena, ha aprendido lo básico sobre el uso de Milvus en Phidata. Si desea saber más sobre cómo utilizar Phidata, consulte la documentación oficial.