from fastapi import APIRouter from qdrant_client import QdrantClient import os router = APIRouter(prefix="/rag", tags=["RAG Admin"]) @router.get("/collections") def list_collections(): client = QdrantClient( url=os.environ["QDRANT_URL"], api_key=os.environ["QDRANT_API_KEY"], ) collections = client.get_collections().collections return { "count": len(collections), "collections": [ { "name": c.name, } for c in collections ], } @router.get("/collections/{book_id}") def get_collection_info(book_id: str): collection_name = f"book_{book_id}" client = QdrantClient( url=os.environ["QDRANT_URL"], api_key=os.environ["QDRANT_API_KEY"], ) try: info = client.get_collection(collection_name) count = client.count(collection_name=collection_name, exact=True) return { "collection": collection_name, "status": info.status, "vectors_count": count.count, } except Exception: return { "collection": collection_name, "exists": False, "message": "Collection not found", } @router.get("/books") def list_books(): client = QdrantClient( url=os.environ["QDRANT_URL"], api_key=os.environ["QDRANT_API_KEY"], ) collections = client.get_collections().collections books = [ c.name.replace("book_", "") for c in collections if c.name.startswith("book_") ] return { "books_count": len(books), "books": books, }