Libro de cocina - Integración de LlamaIndex y Milvus
Este es un sencillo libro de cocina que demuestra cómo utilizar la integración LlamaIndex Langfuse. Utiliza Milvus Lite para almacenar los documentos y las consultas.
Milvus Lite es la versión ligera de Milvus, una base de datos vectorial de código abierto que potencia las aplicaciones de IA con incrustaciones vectoriales y búsqueda por similitud.
Configurar
Asegúrese de tener instalados llama-index
y langfuse
.
$ pip install llama-index langfuse llama-index-vector-stores-milvus --upgrade
Inicialice la integración. Obtén tus claves API de la configuración del proyecto Langfuse y sustituye public_key secret_key por los valores de tus claves. Este ejemplo utiliza OpenAI para incrustaciones y finalizaciones de chat, por lo que también debe especificar su clave OpenAI en la variable de entorno.
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])
Índice utilizando 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
)
Consulta
# 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)
Explorar rastros en Langfuse
# As we want to immediately see result in Langfuse, we need to flush the callback handler
langfuse_callback_handler.flush()
Hecho. ✨ Verás las trazas de tu índice y consulta en tu proyecto Langfuse.
Ejemplos de trazas (enlaces públicos):
Traza en Langfuse:
Trazas en Langfuse
¿Le interesan las funciones avanzadas?
Consulte la documentación completa de la integración para obtener más información sobre las funciones avanzadas y cómo utilizarlas:
- Interoperabilidad con Langfuse Python SDK y otras integraciones
- Añadir metadatos y atributos personalizados a las trazas