shonsukee
@shonsukee

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【RAG】LlamaIndexで既存インデックスに接続

現状

LlamaIndexを用いてRAG環境を構築しています.ベクトルDBはPineconeを使ってドキュメントを格納しています.
そして,作成したインデックスに接続してクエリ検索を行おうと考えています.
公式docによるとインデックス作成後にそれを使い回すことで実現していました.
(下記コード参照)

documents = SimpleDirectoryReader("./data/paul_graham").load_data()
pinecone_index = pc.Index("quickstart")

vector_store = PineconeVectorStore(pinecone_index=pinecone_index)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
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?")

実現したいこと

インデックスを格納するファイルと,クエリ検索するファイルを分けて実装したいと考えています.
例えば,下記のコードのように行いたいです.

create_index.py
documents = SimpleDirectoryReader("./data/paul_graham").load_data()
pinecone_index = pc.Index("quickstart")

vector_store = PineconeVectorStore(pinecone_index=pinecone_index)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
index = VectorStoreIndex.from_documents(
    documents, storage_context=storage_context
)
query.py
# これは動かないけどこんな感じで実装したい
index = VectorStoreIndex(    
    storage_context=storage_context,
)

query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")

最後に

githubを確認しましたが,VectorStoreIndexから接続する関数を見つけることができませんでした.(VectorStoreIndex.from_vector_storeなのかな??)
そもそもユーザが利用する際,毎回ドキュメントをベクトルDBへ格納する必要があるのでしょうか?
(個人的にLlamaIndexはインデックス作成後にクエリ検索を行うことを想定しているのかなと思っています.多分違うけど…)

もし既存関数で提供されているものがあれば情報提供よろしくお願いいたします.
他にも間違いや考え方の指摘等もコメントよろしくお願いいたします.

参考

0

1Answer

Your answer might help someone💌