🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Интеграции
    • Оценка и наблюдаемость
  • Home
  • Docs
  • Интеграции

  • Оценка и наблюдаемость

  • LangFuse

Использование Langfuse для трассировки запросов в RAG

Open In Colab

Это простая поваренная книга, демонстрирующая, как использовать Langfuse для трассировки запросов в RAG. Конвейер RAG реализован с помощью LlamaIndex и Milvus Lite для хранения и получения документов.

В этом кратком руководстве мы покажем вам, как настроить приложение LlamaIndex, используя Milvus Lite в качестве хранилища векторов. Мы также покажем вам, как использовать интеграцию LlamaIndex с Langfuse для отслеживания вашего приложения.

Langfuse - это инженерная платформа LLM с открытым исходным кодом, которая помогает командам совместно отлаживать, анализировать и дорабатывать свои LLM-приложения. Все функции платформы интегрированы для ускорения рабочего процесса разработки.

Milvus Lite - это облегченная версия Milvus, векторной базы данных с открытым исходным кодом, которая обеспечивает работу приложений искусственного интеллекта с помощью векторных вкраплений и поиска сходства.

Установка

Убедитесь, что у вас установлены llama-index и langfuse.

$ pip install llama-index langfuse llama-index-vector-stores-milvus --upgrade

Инициализируйте интеграцию. Получите ключи API из настроек проекта Langfuse и замените public_key secret_key на значения ваших ключей. Этот пример использует OpenAI для встраивания и завершения чата, поэтому вам также нужно указать ключ OpenAI в переменной окружения.

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])

Индекс с помощью 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
)

Запрос

# 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)

Исследуйте трассы в Langfuse

# As we want to immediately see result in Langfuse, we need to flush the callback handler
langfuse_callback_handler.flush()

Готово! ✨ Вы видите трассировку индекса и запроса в вашем проекте Langfuse.

Примеры трасс (публичные ссылки):

  1. Запрос
  2. Запрос (чат)

Трассировка в Langfuse:

Langfuse Traces Langfuse Traces

Интересуетесь более продвинутыми возможностями?

Ознакомьтесь с полной документацией по интеграции, чтобы узнать больше о расширенных возможностях и о том, как их использовать:

  • Взаимодействие с Langfuse Python SDK и другими интеграциями
  • Добавление пользовательских метаданных и атрибутов к трассам

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?