빅데이타 & 머신러닝/생성형 AI (ChatGPT etc)

Langchain Vector Store Record Delete

Terry Cho 2024. 1. 13. 14:31

Langchain Retriever를 리서치하다가 개별의 레코드를 삭제하거나 업데이트 하는 방법에 대해서 찾아봤는데, 작년까지만 해도, record id와 metadata filter를 통해서 삭제가 가능하였다. 

지금도 아래 코드 처럼 id로 삭제를 하는 기능은 제공하지만, langchain 에서 retrieve한 record의 id는 리턴되지 않기 때문에 실질적으로 사용이 불가능하다. 

vectordb.delete(ids=['27c0afe6-6f08-4b4b-95a7-f2b2c851b59f'] )

 

이런저런 이유 때문에 없애버리고 Indexing이라는 기능을 추가하였는데, 

https://python.langchain.com/docs/modules/data_connection/indexing

 

Indexing | 🦜️🔗 Langchain

Here, we will look at a basic indexing workflow using the LangChain

python.langchain.com

기본적인 개념은 저장된 벡터에 대한 정보를 앞단에 SqlLite나 Postgres/Redis등의 데이터베이스에 저장해놓고, 인덱스를 관리하고자 하는 전략인데, 무지 불편하다.

 

하루 리서치 결과로 내린 결론은 아마도 이 Indexing 기능은 추후 보강될거 같으니, 그때까지는 pinecone API를 직접사용하여 delete나 record에 대한 업데이트 기능을 하는 것이 좋을듯 하다.

 

그리드형