Как удалить документы в векторном магазине LangChain

Я следую руководству LangChain , чтобы создать селектор примеров для автоматического выбора похожих примеров с учетом входных данных.

      example_selector = SemanticSimilarityExampleSelector.from_examples(
    # This is the list of examples available to select from.
    examples, 
    # This is the embedding class used to produce embeddings which are used to measure semantic similarity.
    OpenAIEmbeddings(), 
    # This is the VectorStore class that is used to store the embeddings and do a similarity search over.
    Chroma, 
    # This is the number of examples to produce.
    k=1
)

Я сдал свои документы вexamples, однако я понял, что некоторые примеры могут вызвать ошибку фильтрации контента OpenAI, поэтому я хочу удалить их из векторного хранилища, но не мог понять, как это сделать. Я попытался заново воссоздать свои примеры документов и пример селектора, но хотел бы узнать, есть ли способ удалить вложения из векторного хранилища.

1 ответ

Поскольку вы, похоже, используете ChromaDB, вы можете использовать предоставленный метод удаления. Большинство баз данных должны иметь метод удаления в langchain.

Ниже приведен пример из официальной документации langchain (https://python.langchain.com/docs/integrations/vectorstores/chroma#update-and-delete) .

      # create simple ids
ids = [str(i) for i in range(1, len(docs) + 1)]

# add data
example_db = Chroma.from_documents(docs, embedding_function, ids=ids)
docs = example_db.similarity_search(query)
print(docs[0].metadata)

# delete the last document
print("count before", example_db._collection.count())
example_db._collection.delete(ids=[ids[-1]])
print("count after", example_db._collection.count())
Другие вопросы по тегам