Как удалить документы в векторном магазине 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())