| from pydantic_settings import BaseSettings |
|
|
|
|
| |
| AVAILABLE_MODELS: list[dict] = [ |
| { |
| "id": "iiiorg/piiranha-v1-detect-personal-information", |
| "label": "Piiranha v1", |
| "provider": "iiiorg", |
| "params": "110M", |
| "quality": "good", |
| "quality_score": 2, |
| "speed": "fast", |
| "entity_types": ["PER", "EMAIL", "PHONE", "ADDRESS", "ORG", "LOC", "DATE", "ID"], |
| "description": "Lightweight BERT-based model fine-tuned specifically for PII detection across 8+ entity types. Best for general-purpose anonymization with minimal latency.", |
| }, |
| { |
| "id": "dslim/bert-base-NER", |
| "label": "BERT-base NER", |
| "provider": "dslim", |
| "params": "110M", |
| "quality": "good", |
| "quality_score": 2, |
| "speed": "fast", |
| "entity_types": ["PER", "ORG", "LOC", "MISC"], |
| "description": "Standard CoNLL-2003 NER model. High precision on person names, organizations and locations. Limited to 4 entity types — ideal when false positives matter more than coverage.", |
| }, |
| { |
| "id": "Jean-Baptiste/roberta-large-ner-english", |
| "label": "RoBERTa-large NER", |
| "provider": "Jean-Baptiste", |
| "params": "355M", |
| "quality": "best", |
| "quality_score": 3, |
| "speed": "slow", |
| "entity_types": ["PER", "ORG", "LOC", "MISC"], |
| "description": "355M parameter RoBERTa fine-tuned on OntoNotes 5.0. Highest accuracy on complex/ambiguous text. Significantly slower — use when precision is critical.", |
| }, |
| ] |
|
|
| DEFAULT_MODEL_ID: str = AVAILABLE_MODELS[0]["id"] |
|
|
|
|
| class Settings(BaseSettings): |
| |
| app_env: str = "local" |
|
|
| default_model_name: str = DEFAULT_MODEL_ID |
| host: str = "0.0.0.0" |
| port: int = 8000 |
|
|
| |
| frontend_url: str = "" |
|
|
| |
| @property |
| def allowed_origins(self) -> list[str]: |
| origins = ["http://localhost:3000", "http://127.0.0.1:3000"] |
| if self.frontend_url: |
| origins.append(self.frontend_url) |
| return origins |
|
|
| model_config = {"env_file": ".env", "env_file_encoding": "utf-8"} |
|
|
|
|
| settings = Settings() |
|
|