Spaces:
Runtime error
Runtime error
| """ | |
| Request models para a API | |
| CORRIGIDO: model_config para evitar warning de namespace protegido | |
| """ | |
| from pydantic import BaseModel, Field, ConfigDict | |
| from typing import Optional, List | |
| from datetime import datetime | |
| class ProcessingOptionsRequest(BaseModel): | |
| """ | |
| Opções de processamento de acórdãos. | |
| CORRIGIDO: Adicionado model_config para desabilitar protected_namespaces | |
| """ | |
| # ✅ Configuração para permitir campos que começam com "model_" | |
| model_config = ConfigDict(protected_namespaces=()) | |
| llm_provider: str = Field( | |
| default="groq", | |
| description="Provedor LLM (groq, openai, anthropic)" | |
| ) | |
| model_type: str = Field( | |
| default="balanced", | |
| description="Tipo de modelo (fast, balanced, quality)" | |
| ) | |
| enable_parallel: bool = Field( | |
| default=True, | |
| description="Processar especialistas em paralelo" | |
| ) | |
| max_workers: int = Field( | |
| default=3, | |
| ge=1, | |
| le=10, | |
| description="Número de workers paralelos" | |
| ) | |
| save_to_db: bool = Field( | |
| default=False, | |
| description="Salvar resultados no banco de dados" | |
| ) | |
| specialist_ids: Optional[List[int]] = Field( | |
| default=None, | |
| description="IDs dos especialistas a executar (1-9), None = todos" | |
| ) | |
| class AcordaoUploadRequest(BaseModel): | |
| """Request para upload de acórdão individual.""" | |
| acordao_id: str = Field(..., description="ID único do acórdão") | |
| tribunal: str = Field(..., description="Tribunal (ex: TJPR)") | |
| ementa: str = Field(..., description="Ementa do acórdão") | |
| integra: str = Field(..., description="Texto integral do acórdão") | |
| # Campos opcionais | |
| numero_processo: Optional[str] = Field(None, description="Número do processo") | |
| relator: Optional[str] = Field(None, description="Nome do relator") | |
| data_julgamento: Optional[datetime] = Field(None, description="Data do julgamento") | |
| classe_processual: Optional[str] = Field(None, description="Classe processual") | |
| class BatchProcessingRequest(BaseModel): | |
| """Request para processamento em batch.""" | |
| acordaos: List[AcordaoUploadRequest] = Field( | |
| ..., | |
| description="Lista de acórdãos a processar" | |
| ) | |
| processing_options: ProcessingOptionsRequest = Field( | |
| default_factory=ProcessingOptionsRequest, | |
| description="Opções de processamento" | |
| ) | |
| class TaskStatusRequest(BaseModel): | |
| """Request para consultar status de task.""" | |
| task_id: str = Field(..., description="ID da task") | |
| class DatabaseQueryRequest(BaseModel): | |
| """Request para consultas ao banco de dados.""" | |
| tribunal: Optional[str] = Field(None, description="Filtrar por tribunal") | |
| relator: Optional[str] = Field(None, description="Filtrar por relator") | |
| date_from: Optional[datetime] = Field(None, description="Data inicial") | |
| date_to: Optional[datetime] = Field(None, description="Data final") | |
| limit: int = Field(default=100, ge=1, le=1000, description="Limite de resultados") | |
| offset: int = Field(default=0, ge=0, description="Offset para paginação") | |