Как использовать 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 будет использоваться для генерации ответа на запрос.