Как использовать VectorStoreRetrieverMemory в langchain с PGVector?

Я хочу использовать VectorStoreRetrieverMemory в langchain с PGVector в Python. Я не получил никаких документов, связанных с этим. может кто-нибудь помочь мне с этим.

1 ответ

Для использования в langchain с , вам необходимо сначала установить следующие зависимости:

      pip install langchain
pip install pgvector

После установки зависимостей вы можете создать объект, передав строку подключения к вашей базе данных PostgreSQL (или предпочитаемой вами базе данных) и имя коллекции, содержащей векторизованные документы.

      from langchain.memory import VectorStoreRetrieverMemory

vector_store = VectorStoreRetrieverMemory(
    connection_string="postgresql://localhost:5432/my_database",
    collection="documents",
)

Затем вы можете использоватьretrieve()метод для получения документов, наиболее похожих на заданный запрос.

      documents = vector_store.retrieve(query="What is the capital of France?", k=3)

for document in documents:
    print(document["text"])

Вот полный пример того, как использовать сPGVector:

      import os

from langchain.llms import OpenAI
from langchain.chains import ConversationChain
from langchain.memory import VectorStoreRetrieverMemory

# Create a connection string to your PostgreSQL database.
connection_string = os.environ["PGVECTOR_CONNECTION_STRING"]

# Create a VectorStoreRetrieverMemory object.
vector_store = VectorStoreRetrieverMemory(connection_string, "documents")

# Create a ConversationChain object.
chain = ConversationChain(
    llm=OpenAI(),
    memory=vector_store,
)

# Start a conversation.
while True:
    query = input("")

    # Retrieve the most similar documents to the query.
    documents = vector_store.retrieve(query, k=3)

    # Print the most similar documents.
    for document in documents:
        print(document["text"])

    # Generate a response from the LLM.
    response = chain.generate(query)

    print(response)

Этот код создастConversationChainобъект, который используетVectorStoreRetrieverMemoryдля получения документов, наиболее похожих на запрос пользователя. Затем LLM будет использоваться для генерации ответа на запрос.

Другие вопросы по тегам