Llamaindex elasticsearch vector如何工作

bxpogfeg  于 2023-06-21  发布在  ElasticSearch
关注(0)|答案(1)|浏览(219)

我正在构建一个应用程序,使用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索引?

ss2ws0br

ss2ws0br1#

from_documents()接受存储上下文作为其参数之一。创建一个StorageContext.from_defaults(),它接受像OpenSearch这样的vectorstore,并在上面的方法(来自文档)中使用存储上下文作为参数。

相关问题