markitdown / app /routers /embeddings.py
free-apis-collection's picture
Deploy 8b188a065eadac90c069eb2e3def7a2fffc189ff
c95b19e verified
Raw History Blame Contribute Delete
1.09 kB
"""Embeddings router — integrated native embedding service."""
from __future__ import annotations
from fastapi import APIRouter, Depends
from app.core.deps import ServiceAuth
from app.models.schemas import EmbedRequest
from app.services import embeddings
router = APIRouter()
@router.post("/embed", dependencies=[ServiceAuth])
async def embed(payload: EmbedRequest) -> dict:
if not embeddings.embedding_enabled():
return {"embeddings": [], "dimension": payload.dimension, "count": 0, "error": "currently embedding service is unavailable"}
result = await embeddings.generate_embeddings(payload.data, payload.dimension)
if isinstance(payload.data, str):
return {"embeddings": result, "dimension": len(result), "count": 1}
return {"embeddings": result, "dimension": len(result[0]) if result else 0, "count": len(result)}
@router.get("/health")
async def health() -> dict:
return {
"status": "healthy" if embeddings.embedding_enabled() else "embedding_service_disabled",
"loaded_dimensions": embeddings.supported_dimensions(),
}