Integrieren Sie Milvus mit Agno
Agno(früher bekannt als Phidata) ist eine leichtgewichtige Bibliothek zur Erstellung multimodaler Agenten. Sie ermöglicht es Ihnen, multimodale Agenten zu erstellen, die Text, Bilder, Audio und Video verstehen und verschiedene Werkzeuge und Wissensquellen nutzen können, um komplexe Aufgaben zu bewältigen. Agno unterstützt die Orchestrierung mehrerer Agenten und ermöglicht es Teams von Agenten, zusammenzuarbeiten und Probleme gemeinsam zu lösen. Es bietet auch eine schöne Agenten-UI für die Interaktion mit Ihren Agenten.
Die Vektordatenbank Milvus ermöglicht die effiziente Speicherung und Abfrage von Informationen in Form von Einbettungen. Mit Milvus und Agno können Sie Ihr Wissen einfach in Ihre Agenten-Workflows integrieren. Dieses Dokument ist ein grundlegender Leitfaden für die Verwendung der Milvus-Integration mit Agno.
Vorbereitung
Installieren Sie die notwendigen Abhängigkeiten:
$ pip install --upgrade agno pymilvus milvus-lite openai
Wenn Sie Google Colab verwenden, müssen Sie möglicherweise die Runtime neu starten, um die soeben installierten Abhängigkeiten zu aktivieren (klicken Sie auf das Menü "Runtime" am oberen Bildschirmrand und wählen Sie "Restart session" aus dem Dropdown-Menü).
Wir werden in diesem Beispiel OpenAI als LLM verwenden. Sie sollten den Api-Schlüssel OPENAI_API_KEY als Umgebungsvariable vorbereiten.
import os
os.environ["OPENAI_API_KEY"] = "sk-xxxx"
Milvus initialisieren
Importieren Sie die Pakete und initialisieren Sie die Milvus-Vektor-Datenbankinstanz.
from agno.agent import Agent
from agno.knowledge.pdf_url import PDFUrlKnowledgeBase
from agno.vectordb.milvus import Milvus
# Initialize Milvus
vector_db = Milvus(
collection="recipes",
uri="./milvus.db",
)
Geben Sie den Sammlungsnamen, die uri und das Token(optinal) für Ihren Milvus-Server an.
Hier sehen Sie, wie Sie die uri und das Token festlegen:
- Wenn Sie nur eine lokale Vektordatenbank für kleine Datenmengen oder Prototypen benötigen, ist es am bequemsten, wenn Sie als uri eine lokale Datei angeben, z. B.
./milvus.db, da Milvus Lite dann automatisch alle Daten in dieser Datei speichert. - Wenn Sie große Datenmengen haben, z. B. mehr als eine Million Vektoren, können Sie einen leistungsfähigeren Milvus-Server auf Docker oder Kubernetes einrichten. Bei dieser Einrichtung verwenden Sie bitte die Serveradresse und den Port als Uri, z. B.
http://localhost:19530. Wenn Sie die Authentifizierungsfunktion auf Milvus aktivieren, verwenden Sie ": " als Token, andernfalls setzen Sie das Token nicht. - Wenn Sie Zilliz Cloud, den vollständig verwalteten Cloud-Service für Milvus, verwenden, passen Sie
uriundtokenan, die dem öffentlichen Endpunkt und dem API-Schlüssel in Zilliz Cloud entsprechen.
Daten laden
Erstellen Sie eine Basisinstanz von PDF url knowledage und laden Sie die Daten in die Instanz. Wir verwenden die PDF-Daten eines öffentlichen Rezepts als Beispiel.
# 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 Creating
INFO Loading knowledge
INFO Reading: https://phi-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf
INFO Added documents to knowledge base
Verwenden Sie einen Agenten, um auf eine Frage zu antworten
Integrieren Sie die Wissensdatenbank in einen Agenten, dann können wir dem Agenten eine Frage stellen und eine Antwort erhalten.
# Create and use the agent
agent = Agent(knowledge=knowledge_base, 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 fish sauce. ┃
┃ 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 separating. ┃
┃ • 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! ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Herzlichen Glückwunsch, Sie haben die Grundlagen der Verwendung von Milvus in Agno gelernt. Wenn Sie mehr über die Verwendung von Agno wissen möchten, lesen Sie bitte die offizielle Dokumentation.