![見出し画像](https://assets.st-note.com/production/uploads/images/132567529/rectangle_large_type_2_9ae8d148e66bdba63d1e776c41144e8f.png?width=1200)
LlamaIndex の Gemini統合 を試す
「LlamaIndex」の「Gemini」統合を試したので、まとめました。
・llama-index v0.10.14
1. Gemini と GeminiEmbedding
「llama-index-llms-gemini」パッケージの「Gemini」と「llama-index-embeddings-gemini」パッケージの「GeminiEmbedding」を通じて、Googleの「Gemini」と「Embedding」およびその他の生成モデルにアクセスできます。
2. ドキュメントの準備
今回は、マンガペディアの「ぼっち・ざ・ろっく!」のドキュメントを用意しました。
・bocchi.txt
![](https://assets.st-note.com/img/1709302829655-dDQPH9wKMn.png?width=1200)
3. 質問応答
Colabでの実行手順は、次のとおりです。
(1) パッケージのインストール。
「llama-index-llms-gemini」と「llama-index-embeddings-gemini」をインストールします。
# パッケージのインストール
!pip install llama-index==0.10.14
!pip install llama-index-llms-gemini llama-index-embeddings-gemini
(2) ログレベルの設定。
import logging
import sys
# ログレベルの設定
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, force=True)
(3) 環境変数の準備。
左端の鍵アイコンで「GOOGLE_API_KEY」を設定してからセルを実行してください。
# 環境変数の準備 (左端の鍵アイコンでGOOGLE_API_KEYを設定)
import os
from google.colab import userdata
os.environ["GOOGLE_API_KEY"] = userdata.get("GOOGLE_API_KEY")
(4) LLMと埋め込みモデルの準備。
from llama_index.core import Settings
from llama_index.llms.gemini import Gemini
from llama_index.embeddings.gemini import GeminiEmbedding
# LLMの準備
Settings.llm = Gemini(
model_name="models/gemini-pro",
)
# 埋め込みモデルの準備
Settings.embed_model = GeminiEmbedding(
model_name="models/embedding-001",
)
【注意】「models/embedding-001」は日本語の精度がよく無さそうなので、今は「OpenAI API」のEmbeddingを使ったほうが良さそうです。
(5) Colabにdataフォルダを作成してドキュメントを配置。
左端のフォルダアイコンでファイル一覧を表示し、右クリック「新しいフォルダ」でdataフォルダを作成し、ドキュメントをドラッグ&ドロップします。
![](https://assets.st-note.com/img/1709302865579-RsIjMm3UUT.png?width=1200)
(6) ドキュメントの読み込み。
from llama_index.core import SimpleDirectoryReader
# ドキュメントの読み込み
documents = SimpleDirectoryReader("data").load_data()
(7) インデックスの作成。
from llama_index.core import VectorStoreIndex
# インデックスの作成
index = VectorStoreIndex.from_documents(documents)
(8) クエリエンジンの作成。
# クエリエンジンの作成
query_engine = index.as_query_engine()
(9) 質問応答。
# 質問応答
print(query_engine.query("ぼっちちゃんの得意な楽器は?"))
ギター