ContiAI / routers /books /rag_admin.py
ziadsameh32's picture
Add login page
325b94c
Raw
History Blame Contribute Delete
1.64 kB
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,
}