milvus-logo
LFAI
フロントページへ
  • 統合

クックブック - LlamaIndexとMilvusの統合

Open In Colab

このクックブックはLlamaIndexとLangfuseの統合の使い方を説明したものです。ドキュメントとQueryの保存にはMilvus Liteを使用しています。

Milvus LiteはMilvusの軽量版です。Milvusはオープンソースのベクトルデータベースで、ベクトル埋め込みと類似性検索でAIアプリケーションを強化します。

セットアップ

llama-indexlangfuse の両方がインストールされていることを確認してください。

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

インテグレーションを初期化する。Langfuseプロジェクトの設定からAPIキーを取得し、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のトレース

より高度な機能に興味がありますか?

高度な機能とその使用方法については、統合に関する完全なドキュメントをご覧ください:

  • Langfuse Python SDK や他のインテグレーションとの相互運用性
  • トレースにカスタムメタデータと属性を追加する

翻訳DeepLogo

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
フィードバック

このページは役に立ちましたか ?