Spaces:
Running
Running
| """ | |
| Pydantic models for request and response validation | |
| """ | |
| from typing import Optional, List, Dict, Any, Union | |
| from pydantic import BaseModel, Field | |
| from datetime import datetime | |
| from enum import Enum | |
| class KnowledgeGraphResponse(BaseModel): | |
| """Response model for knowledge graphs""" | |
| files: List[str] | |
| class PlatformStatsResponse(BaseModel): | |
| """Response model for platform statistics""" | |
| total_graphs: int | |
| total_entities: int | |
| total_relations: int | |
| entity_distribution: Dict[str, int] | |
| relation_distribution: Dict[str, int] | |
| recent_graphs: List[Dict[str, Any]] | |
| # Context Document Models | |
| class ContextDocumentType(str, Enum): | |
| """Enumeration of context document types.""" | |
| DOMAIN_KNOWLEDGE = "domain_knowledge" | |
| SCHEMA = "schema" | |
| DOCUMENTATION = "documentation" | |
| GUIDELINES = "guidelines" | |
| EXAMPLES = "examples" | |
| class ContextDocument(BaseModel): | |
| """Context document model.""" | |
| id: str | |
| title: str = Field(..., max_length=200, description="Document title") | |
| document_type: ContextDocumentType | |
| content: str = Field(..., max_length=100000, description="Document content") | |
| file_name: Optional[str] = Field(None, description="Original file name if uploaded") | |
| created_at: datetime | |
| is_active: bool = Field(default=True, description="Whether document is active") | |
| class CreateContextRequest(BaseModel): | |
| """Request model for creating context documents.""" | |
| title: str = Field(..., max_length=200, description="Document title") | |
| document_type: ContextDocumentType | |
| content: str = Field(..., max_length=100000, description="Document content") | |
| file_name: Optional[str] = Field(None, description="Original file name if uploaded") | |
| class UpdateContextRequest(BaseModel): | |
| """Request model for updating context documents.""" | |
| title: Optional[str] = Field(None, max_length=200, description="Document title") | |
| document_type: Optional[ContextDocumentType] = None | |
| content: Optional[str] = Field(None, max_length=100000, description="Document content") | |
| is_active: Optional[bool] = None | |
| class ContextDocumentResponse(BaseModel): | |
| """Response model for context document operations.""" | |
| success: bool | |
| message: str | |
| data: Optional[ContextDocument] = None | |
| class ContextStats(BaseModel): | |
| """Statistics for context documents.""" | |
| total_count: int | |
| active_count: int | |
| by_type: Dict[ContextDocumentType, int] |