Spaces:
Sleeping
Sleeping
| import asyncio | |
| from src.infrastructure.qdrant.qdrant_vectorstore import AsyncQdrantVectorStore | |
| from src.utils.logger_util import setup_logging | |
| logger = setup_logging() | |
| async def main() -> None: | |
| """Create necessary indexes for the Qdrant vector store. | |
| Initializes an AsyncQdrantVectorStore and creates HNSW, title, article authors, | |
| feed author, and feed name indexes. Logs errors and ensures proper execution. | |
| Args: | |
| None | |
| Returns: | |
| None | |
| Raises: | |
| RuntimeError: If an error occurs during index creation. | |
| Exception: For unexpected errors during execution. | |
| """ | |
| logger.info("Creating Qdrant indexes") | |
| try: | |
| vectorstore = AsyncQdrantVectorStore() | |
| await vectorstore.enable_hnsw() | |
| await vectorstore.create_title_index() | |
| await vectorstore.create_article_authors_index() | |
| await vectorstore.create_feed_author_index() | |
| await vectorstore.create_article_feed_name_index() | |
| logger.info("Qdrant indexes created successfully") | |
| except RuntimeError as e: | |
| logger.error(f"Failed to create Qdrant indexes: {e}") | |
| raise RuntimeError("Error creating Qdrant indexes") from e | |
| except Exception as e: | |
| logger.error(f"Unexpected error creating Qdrant indexes: {e}") | |
| raise | |
| if __name__ == "__main__": | |
| asyncio.run(main()) | |