init. project
This commit is contained in:
85
rag-web-ui/backend/app/schemas/knowledge.py
Normal file
85
rag-web-ui/backend/app/schemas/knowledge.py
Normal file
@@ -0,0 +1,85 @@
|
||||
from typing import Optional, List
|
||||
from datetime import datetime
|
||||
from pydantic import BaseModel
|
||||
|
||||
class KnowledgeBaseBase(BaseModel):
|
||||
name: str
|
||||
description: Optional[str] = None
|
||||
|
||||
class KnowledgeBaseCreate(KnowledgeBaseBase):
|
||||
pass
|
||||
|
||||
class KnowledgeBaseUpdate(KnowledgeBaseBase):
|
||||
pass
|
||||
|
||||
class DocumentBase(BaseModel):
|
||||
file_name: str
|
||||
file_path: str
|
||||
file_hash: str
|
||||
file_size: int
|
||||
content_type: str
|
||||
|
||||
class DocumentCreate(DocumentBase):
|
||||
knowledge_base_id: int
|
||||
|
||||
class DocumentUploadBase(BaseModel):
|
||||
file_name: str
|
||||
file_hash: str
|
||||
file_size: int
|
||||
content_type: str
|
||||
temp_path: str
|
||||
status: str = "pending"
|
||||
error_message: Optional[str] = None
|
||||
|
||||
class DocumentUploadCreate(DocumentUploadBase):
|
||||
knowledge_base_id: int
|
||||
|
||||
class DocumentUploadResponse(DocumentUploadBase):
|
||||
id: int
|
||||
created_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class ProcessingTaskBase(BaseModel):
|
||||
status: str
|
||||
error_message: Optional[str] = None
|
||||
|
||||
class ProcessingTaskCreate(ProcessingTaskBase):
|
||||
document_id: int
|
||||
knowledge_base_id: int
|
||||
|
||||
class ProcessingTask(ProcessingTaskBase):
|
||||
id: int
|
||||
document_id: int
|
||||
knowledge_base_id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class DocumentResponse(DocumentBase):
|
||||
id: int
|
||||
knowledge_base_id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
processing_tasks: List[ProcessingTask] = []
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class KnowledgeBaseResponse(KnowledgeBaseBase):
|
||||
id: int
|
||||
user_id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
documents: List[DocumentResponse] = []
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class PreviewRequest(BaseModel):
|
||||
document_ids: List[int]
|
||||
chunk_size: int = 1000
|
||||
chunk_overlap: int = 200
|
||||
Reference in New Issue
Block a user