I`m using an asynchronous method to perform qdrant operations in the celery task, and set prefer_grpc to True, and the qdrant asynchronous client will be blocked. It should be caused by a problem with the event loop.
My code snippet:
In my RAGInterface, I made some business encapsulation based on qdrant api. After my debugging, I found that every time I called AsyncQdrantClient, I would get stuck. For example, when I execute: async_client.collection_exists(collection_name), I will be stuck in the qdrant source code:
async def collection_exists(self, collection_name: str, **kwargs: Any) -> bool:
if self._prefer_grpc:
return (
await self.grpc_collections.CollectionExists(
grpc.CollectionExistsRequest(collection_name=collection_name),
timeout=self._timeout,
)
).result.exists
result: Optional[models.CollectionExistence] = (
await self.http.collections_api.collection_exists(collection_name=collection_name)
).result
assert result is not None, "Collection exists returned None"
return result.exists
code from : qdrant_client.async_qdrant_remote.AsyncQdrantRemote
I`m very confused in this problem, anybody can help me? thanks very much!!!
I`m using an asynchronous method to perform qdrant operations in the celery task, and set prefer_grpc to True, and the qdrant asynchronous client will be blocked. It should be caused by a problem with the event loop. My code snippet:
In my RAGInterface, I made some business encapsulation based on qdrant api. After my debugging, I found that every time I called AsyncQdrantClient, I would get stuck. For example, when I execute: async_client.collection_exists(collection_name), I will be stuck in the qdrant source code:
I`m very confused in this problem, anybody can help me? thanks very much!!!