You've already forked RekomenciBackend
feat(): salary prediction
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user