Spaces:
Sleeping
Sleeping
| from pydantic import BaseModel, Field | |
| from typing import Dict, List, Any, Optional | |
| class CaseAnalysisRequest(BaseModel): | |
| caseText: str = Field(..., description="The legal case text to analyze", min_length=10) | |
| useQueryGeneration: bool = Field(default=True, description="Whether to use Gemini for query generation in RAG") | |
| class CaseAnalysisResponse(BaseModel): | |
| initialVerdict: str = Field(..., description="Initial verdict from LegalBERT model") | |
| initialConfidence: float = Field(..., description="Confidence score of initial verdict") | |
| finalVerdict: Optional[str] = Field(None, description="Final verdict after Gemini evaluation") | |
| verdictChanged: bool = Field(default=False, description="Whether the verdict was changed by Gemini") | |
| searchQuery: str = Field(..., description="Query used for RAG retrieval") | |
| geminiExplanation: Optional[str] = Field(None, description="Detailed explanation from Gemini AI") | |
| supportingSources: Dict[str, List[Any]] = Field(default_factory=dict, description="Retrieved supporting legal documents") | |
| analysisLogs: Dict[str, Any] = Field(default_factory=dict, description="Detailed analysis logs") | |
| class HealthResponse(BaseModel): | |
| status: str = Field(..., description="Overall health status") | |
| services: Dict[str, bool] = Field(default_factory=dict, description="Status of individual services") | |
| error: Optional[str] = Field(None, description="Error message if unhealthy") | |
| class VerdictPrediction(BaseModel): | |
| verdict: str = Field(..., description="Predicted verdict (guilty/not guilty)") | |
| confidence: float = Field(..., description="Confidence score between 0 and 1") | |
| class RAGRetrievalResult(BaseModel): | |
| query: str = Field(..., description="Query used for retrieval") | |
| supportChunks: Dict[str, List[Any]] = Field(..., description="Retrieved chunks by category") | |
| logs: Dict[str, Any] = Field(default_factory=dict, description="Retrieval logs") | |
| class GeminiEvaluationRequest(BaseModel): | |
| inputText: str = Field(..., description="Original case text") | |
| modelVerdict: str = Field(..., description="Initial model verdict") | |
| confidence: float = Field(..., description="Confidence of initial verdict") | |
| support: Dict[str, List[Any]] = Field(..., description="Supporting legal documents") | |
| searchQuery: Optional[str] = Field(None, description="Search query used") | |
| class GeminiEvaluationResponse(BaseModel): | |
| finalVerdict: Optional[str] = Field(None, description="Final verdict from Gemini") | |
| verdictChanged: str = Field(..., description="Whether verdict was changed") | |
| explanation: str = Field(..., description="Detailed legal explanation") | |
| relevantLaws: List[str] = Field(default_factory=list, description="Relevant laws identified") | |