feat(): salary prediction

This commit is contained in:
gitgernit
2025-11-22 19:06:02 +03:00
parent a06c83cb18
commit 38dbfc25ac
6 changed files with 219 additions and 46 deletions
+44
View File
@@ -0,0 +1,44 @@
from dishka import FromDishka
from dishka.integrations.fastapi import DishkaRoute
from fastapi import APIRouter
from pydantic import BaseModel, Field
from template_project.application.common.embedding import Embedder
router = APIRouter(route_class=DishkaRoute, tags=["Embedding"])
class GetEmbeddingRequest(BaseModel):
text: str = Field(
..., min_length=1, description="Text to encode", examples=["python backend developer with django"]
)
model_config = {"json_schema_extra": {"example": {"text": "python backend developer with django"}}}
class GetEmbeddingResponse(BaseModel):
embedding: list[float] = Field(..., description="Embedding vector")
model_config = {
"json_schema_extra": {
"example": {
"embedding": [0.1, 0.2, 0.3, 0.4, 0.5],
}
}
}
@router.post(
"/get_embedding",
summary="Get embedding",
description="Encode text into embedding vector",
responses={
200: {"description": "Embedding generated successfully", "model": GetEmbeddingResponse},
},
)
async def get_embedding(
request: GetEmbeddingRequest,
embedder: FromDishka[Embedder],
) -> GetEmbeddingResponse:
embedding = await embedder.encode(request.text)
return GetEmbeddingResponse(embedding=embedding)