| from pydantic import BaseModel | |
| from typing import List, Dict, Any, Optional | |
| class AnalyzeDocumentInput(BaseModel): | |
| document_text: str | |
| max_tokens: int = 1600 | |
| stride: int = 50 | |
| max_length: int = 128 | |
| min_length: int = 24 | |
| class ChunkInput(BaseModel): | |
| text: str | |
| max_tokens: int = 1600 | |
| stride: int = 50 | |
| class SummarizeBatchInput(BaseModel): | |
| texts: List[str] | |
| max_length: int = 128 | |
| min_length: int = 24 | |
| class ChatInput(BaseModel): | |
| question: str | |
| doc_id: str | |
| class RiskTerm(BaseModel): | |
| term: str | |
| context: str | |
| confidence: float | |
| class ClauseMatch(BaseModel): | |
| clause_type: str | |
| matched_text: str | |
| similarity_score: float | |
| chunk_index: int | |
| class AnalysisResult(BaseModel): | |
| doc_id: str | |
| summary: Dict[str, Any] | |
| risky_terms: List[Dict[str, Any]] | |
| key_clauses: List[Dict[str, Any]] | |
| chunk_count: int | |
| processing_time: str | |