thanhnt-cf's picture
initial commit
8ba64a4
from app.config import get_settings
from app.schemas.requests import ExtractionRequest, FollowSchemaRequest
from app.schemas.schema_tools import validate_json_schema
from app.utils.logger import setup_logger
logger = setup_logger(__name__)
settings = get_settings()
def validate_extract_request(request: ExtractionRequest):
"""Validate the request to extract attributes."""
request.max_attempts = max(request.max_attempts, 1)
request.max_attempts = min(request.max_attempts, 5)
# Limit the number of images to 10
if len(request.img_urls) > 10:
logger.warning(
f"Number of images exceeds 10: {len(request.img_urls)}. Limiting to 10."
)
request.img_urls = request.img_urls[:10]
for url in request.img_urls:
if not url.startswith("http"):
raise ValueError(f"Invalid URL: {url}")
# validate_json_schema(request.data_schema)
if request.ai_model.lower() not in settings.SUPPORTED_MODELS:
raise ValueError(
f"Invalid ai_model: {request.ai_model}, only support {settings.SUPPORTED_MODELS}"
)
def validate_follow_request(request: FollowSchemaRequest):
"""Validate the request to follow a schema."""
request.max_attempts = max(request.max_attempts, 1)
request.max_attempts = min(request.max_attempts, 5)
validate_json_schema(request.data_schema)
if request.ai_model.lower() not in settings.SUPPORTED_MODELS:
raise ValueError(
f"Invalid ai_model: {request.ai_model}, only support {settings.SUPPORTED_MODELS}"
)