qdrant-client icon indicating copy to clipboard operation
qdrant-client copied to clipboard

Don't write .lock file when loading from an existing collection

Open jonas-nothnagel opened this issue 5 months ago • 1 comments

I have stored a qdrant collection locally on my computer to access it for testing purposes. I am building a chatbot app in gradio and it requires to load the app.py many times to develop it in iterations.

However, every time I load the collection a .lock file is automatically created which I have to manually delete each time when loading app again for my application. Otherwise I run into following error:

RuntimeError: Storage folder qdrant/ is already accessed by another instance of Qdrant client. If you require concurrent access, use Qdrant server instead.

The code to load the collection is as follows:

vectors = QdrantVectorStore.from_existing_collection(
    path="qdrant/", 
    collection_name="uganda-documents",
    
    embedding = HuggingFaceEmbeddings(
        model_kwargs = {'device': device},
        encode_kwargs = {'normalize_embeddings': bool(int(config.get('retriever','NORMALIZE')))},
        model_name=config.get('retriever','MODEL')
    )
)

I would like to either automatically delete the .lock file or to not create it at all in the first place. Is this possible within Qdrant or do I have to build a manual work around?

I know I could simply add something like a os.remove("qdrant/.lock") but it seems not very intuitive.

jonas-nothnagel avatar Sep 02 '24 11:09 jonas-nothnagel