30 lines
856 B
Python
30 lines
856 B
Python
"""
|
|
FILE: app/routers/embed_router.py
|
|
DESCRIPTION: Exponiert die lokale Embedding-Funktion als API-Endpunkt.
|
|
VERSION: 0.1.0
|
|
STATUS: Active
|
|
DEPENDENCIES: app.embeddings, pydantic
|
|
LAST_ANALYSIS: 2025-12-15
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
from fastapi import APIRouter
|
|
from pydantic import BaseModel, Field
|
|
from typing import List
|
|
|
|
from ..embeddings import embed_texts
|
|
|
|
router = APIRouter(prefix="/embed", tags=["embeddings"])
|
|
|
|
class EmbedRequest(BaseModel):
|
|
texts: List[str] = Field(..., description="List of texts to embed")
|
|
|
|
class EmbedResponse(BaseModel):
|
|
vectors: list[list[float]]
|
|
dim: int
|
|
|
|
@router.post("", response_model=EmbedResponse, summary="Generate MiniLM embeddings for texts")
|
|
def post_embed(req: EmbedRequest):
|
|
vecs = embed_texts(req.texts)
|
|
dim = len(vecs[0]) if vecs else 0
|
|
return {"vectors": vecs, "dim": dim} |