🦙 LlamaIndex 0.9 : Getting Started : カスタマイズ・チュートリアル (翻訳/解説)
翻訳 : クラスキャット セールスインフォメーション
作成日時 : 11/25/2023 (v0.9.6.post2)
* 本ページは、LlamaIndex の以下のドキュメントを翻訳した上で適宜、補足説明したものです:
- Getting Started : Customization Tutorial
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Website: www.classcat.com ; ClassCatJP
🦙 LlamaIndex 0.9 : Getting Started : カスタマイズ・チュートリアル
このチュートリアルでは、スターター・サンプル のために書いたコードから始めて、貴方のユースケースのためにそれをカスタマイズすることを望む場合の最も一般的な方法を示します :
from llama_index import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")
print(response)
◆「ドキュメントをパースして小さいチャンクに分割したい」
from llama_index import ServiceContext
service_context = ServiceContext.from_defaults(chunk_size=1000)
ServiceContext は LlamaIndex パイプラインに渡り使用されるサービスと configuration のバンドルです。
from llama_index import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(
documents, service_context=service_context
)
query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")
print(response)
◆「別のベクトルストアを使用したい」
import chromadb
from llama_index.vector_stores import ChromaVectorStore
from llama_index import StorageContext
chroma_client = chromadb.PersistentClient()
chroma_collection = chroma_client.create_collection("quickstart")
vector_store = ChromaVectorStore(chroma_collection=chroma_collection)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
StorageContext はドキュメント、埋め込みとインデックスがどこにストアされるかストレージバックエンドを定義します。ストレージ と それをカスタマイズする方法 について更に学習することができます。
from llama_index import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(
documents, storage_context=storage_context
)
query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")
print(response)
◆「クエリーするときより多くのコンテキストを検索取得したい」
from llama_index import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(similarity_top_k=5)
response = query_engine.query("What did the author do growing up?")
print(response)
as_query_engine はインデックス上にデフォルトの retriever とクエリーエンジンを構築します。キーワード引数を渡すことにより retriever とクエリーエンジンを構成できます。ここでは、(デフォルトの 2 の代わりに) top 5 の最も類似したドキュメントを返すように retriever を構成します。retrievers と クエリーエンジン について更に学習できます。
◆「別の LLM を使用したい」
from llama_index import ServiceContext
from llama_index.llms import PaLM
service_context = ServiceContext.from_defaults(llm=PaLM())
LLM のカスタマイズ について更に学習できます。
from llama_index import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(service_context=service_context)
response = query_engine.query("What did the author do growing up?")
print(response)
◆「別の応答モードを使用したい」
from llama_index import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(response_mode="tree_summarize")
response = query_engine.query("What did the author do growing up?")
print(response)
クエリーエンジン と 応答モード について更に学習できます。
◆「レスポンスをストリーミングで返したい」
from llama_index import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(streaming=True)
response = query_engine.query("What did the author do growing up?")
response.print_response_stream()
ストリーミング応答 について更に学習できます。
◆「Q&A ではなくチャットボットを望みます」
from llama_index import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_chat_engine()
response = query_engine.chat("What did the author do growing up?")
print(response)
response = query_engine.chat("Oh interesting, tell me more.")
print(response)
チャットエンジン について学習しましょう。
以上