Livre de recettes - Intégration LlamaIndex & Milvus
Il s'agit d'un simple livre de recettes qui montre comment utiliser l'intégration LlamaIndex Langfuse. Il utilise Milvus Lite pour stocker les documents et les requêtes.
Milvus Lite est la version allégée de Milvus, une base de données vectorielle open-source qui alimente les applications d'intelligence artificielle avec des embeddings vectoriels et des recherches de similarité.
Configuration
Assurez-vous que llama-index
et langfuse
sont installés.
$ pip install llama-index langfuse llama-index-vector-stores-milvus --upgrade
Initialisez l'intégration. Récupérez vos clés API dans les paramètres du projet Langfuse, et remplacez public_key secret_key par les valeurs de vos clés. Cet exemple utilise OpenAI pour les embeddings et les complétions de chat, vous devez donc également spécifier votre clé OpenAI dans la variable d'environnement.
import os
# Get keys for your project from the project settings page
# https://cloud.langfuse.com
os.environ["LANGFUSE_PUBLIC_KEY"] = ""
os.environ["LANGFUSE_SECRET_KEY"] = ""
os.environ["LANGFUSE_HOST"] = "https://cloud.langfuse.com" # 🇪🇺 EU region
# os.environ["LANGFUSE_HOST"] = "https://us.cloud.langfuse.com" # 🇺🇸 US region
# Your openai key
os.environ["OPENAI_API_KEY"] = ""
from llama_index.core import Settings
from llama_index.core.callbacks import CallbackManager
from langfuse.llama_index import LlamaIndexCallbackHandler
langfuse_callback_handler = LlamaIndexCallbackHandler()
Settings.callback_manager = CallbackManager([langfuse_callback_handler])
Indexation à l'aide de Milvus Lite
from llama_index.core import Document
doc1 = Document(text="""
Maxwell "Max" Silverstein, a lauded movie director, screenwriter, and producer, was born on October 25, 1978, in Boston, Massachusetts. A film enthusiast from a young age, his journey began with home movies shot on a Super 8 camera. His passion led him to the University of Southern California (USC), majoring in Film Production. Eventually, he started his career as an assistant director at Paramount Pictures. Silverstein's directorial debut, “Doors Unseen,” a psychological thriller, earned him recognition at the Sundance Film Festival and marked the beginning of a successful directing career.
""")
doc2 = Document(text="""
Throughout his career, Silverstein has been celebrated for his diverse range of filmography and unique narrative technique. He masterfully blends suspense, human emotion, and subtle humor in his storylines. Among his notable works are "Fleeting Echoes," "Halcyon Dusk," and the Academy Award-winning sci-fi epic, "Event Horizon's Brink." His contribution to cinema revolves around examining human nature, the complexity of relationships, and probing reality and perception. Off-camera, he is a dedicated philanthropist living in Los Angeles with his wife and two children.
""")
# Example index construction + LLM query
from llama_index.core import VectorStoreIndex
from llama_index.core import StorageContext
from llama_index.vector_stores.milvus import MilvusVectorStore
vector_store = MilvusVectorStore(
uri="tmp/milvus_demo.db", dim=1536, overwrite=False
)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
index = VectorStoreIndex.from_documents(
[doc1,doc2], storage_context=storage_context
)
Requête
# Query
response = index.as_query_engine().query("What did he do growing up?")
print(response)
# Chat
response = index.as_chat_engine().chat("What did he do growing up?")
print(response)
Explorer les traces dans Langfuse
# As we want to immediately see result in Langfuse, we need to flush the callback handler
langfuse_callback_handler.flush()
Terminé ! ✨ Vous voyez les traces de votre index et de votre requête dans votre projet Langfuse.
Exemples de traces (liens publics) :
Trace dans Langfuse :
Langfuse Traces
Intéressé par des fonctionnalités plus avancées ?
Consultez la documentation complète de l'intégration pour en savoir plus sur les fonctionnalités avancées et comment les utiliser :
- Interopérabilité avec le SDK Langfuse Python et d'autres intégrations
- Ajouter des métadonnées et des attributs personnalisés aux traces