我正在构建一个应用程序,使用Opensearch作为vecotr商店与Llamaindex使用this示例。下面是我的代码:
endpoint = getenv("OPENSEARCH_ENDPOINT", "http://localhost:9200")
idx = getenv("OPENSEARCH_INDEX", "gpt-index-demo")
UnstructuredReader = download_loader("UnstructuredReader")
loader = UnstructuredReader()
documents = loader.load_data(file=Path(file_name))
# OpensearchVectorClient stores text in this field by default
text_field = "content"
# OpensearchVectorClient stores embeddings in this field by default
embedding_field = "embedding"
# OpensearchVectorClient encapsulates logic for a
# single opensearch index with vector search enabled
client = OpensearchVectorClient(endpoint, idx, 1536, embedding_field=embedding_field, text_field=text_field)
# initialize vector store
vector_store = OpensearchVectorStore(client)
# initialize an index using our sample data and the client we just created
index = GPTVectorStoreIndex.from_documents(documents=documents)
我的困惑是,当我们创建OpensearchVectorClient
时,我们没有传递任何documents
,然后当我们初始化index时,我们没有传递vector_store
,也没有合适的字段通过查看GPTVectorStoreIndex.from_documents()
的定义来传递它。那么,文档如何进入Elasticsearch索引?
1条答案
按热度按时间ss2ws0br1#
from_documents()接受存储上下文作为其参数之一。创建一个StorageContext.from_defaults(),它接受像OpenSearch这样的vectorstore,并在上面的方法(来自文档)中使用存储上下文作为参数。