hv0905/NekoImageGallery

View on GitHub
app/Models/api_models/search_api_model.py

Summary

Maintainability
A
0 mins
Test Coverage
from enum import Enum

from pydantic import BaseModel, Field


class SearchBasisEnum(str, Enum):
    vision = "vision"
    ocr = "ocr"


class SearchModelEnum(str, Enum):
    average = "average"
    best = "best"


class AdvancedSearchModel(BaseModel):
    criteria: list[str] = Field([],
                                description="The positive criteria you want to search with",
                                max_length=16,
                                min_length=1)
    negative_criteria: list[str] = Field([],
                                         description="The negative criteria you want to search with",
                                         max_length=16)
    mode: SearchModelEnum = Field(SearchModelEnum.average,
                                  description="The mode you want to use to combine the criteria.")


class CombinedSearchModel(AdvancedSearchModel):
    extra_prompt: str = Field(max_length=100,
                              description="The secondary prompt used for filtering the image.")