Pix-Agent / app /models /pdf_models.py
ManTea's picture
QA to PROD
0e5b8f8
raw
history blame
3.39 kB
from pydantic import BaseModel, Field
from typing import Optional, List, Dict, Any
class PDFUploadRequest(BaseModel):
"""Request model cho upload PDF"""
namespace: Optional[str] = Field("Default", description="Namespace trong Pinecone")
index_name: Optional[str] = Field("testbot768", description="Tên index trong Pinecone")
title: Optional[str] = Field(None, description="Tiêu đề của tài liệu")
description: Optional[str] = Field(None, description="Mô tả về tài liệu")
vector_database_id: Optional[int] = Field(None, description="ID của vector database trong PostgreSQL để sử dụng")
class PDFResponse(BaseModel):
"""Response model cho các endpoints liên quan đến PDF."""
success: bool = Field(False, description="Kết quả xử lý: true/false")
document_id: Optional[str] = Field(None, description="ID của tài liệu đã xử lý")
document_database_id: Optional[int] = Field(None, description="ID của tài liệu trong PostgreSQL (nếu có)")
chunks_processed: Optional[int] = Field(None, description="Số lượng chunks đã xử lý")
total_text_length: Optional[int] = Field(None, description="Tổng kích thước text đã xử lý")
error: Optional[str] = Field(None, description="Thông báo lỗi (nếu có)")
warning: Optional[str] = Field(None, description="Cảnh báo (nếu có)")
message: Optional[str] = Field(None, description="Thông báo thành công")
class Config:
schema_extra = {
"example": {
"success": True,
"document_id": "550e8400-e29b-41d4-a716-446655440000",
"chunks_processed": 25,
"total_text_length": 50000,
"message": "Successfully processed document"
}
}
class DeleteDocumentRequest(BaseModel):
"""Request model cho xóa document"""
document_id: str = Field(..., description="ID của tài liệu cần xóa")
namespace: Optional[str] = Field("Default", description="Namespace trong Pinecone")
index_name: Optional[str] = Field("testbot768", description="Tên index trong Pinecone")
vector_database_id: Optional[int] = Field(None, description="ID của vector database trong PostgreSQL")
class DocumentsListResponse(BaseModel):
"""Response model cho danh sách documents"""
success: bool = Field(False, description="Kết quả xử lý: true/false")
total_vectors: Optional[int] = Field(None, description="Tổng số vectors trong namespace")
namespace: Optional[str] = Field(None, description="Namespace đã truy vấn")
index_name: Optional[str] = Field(None, description="Tên index đã truy vấn")
documents: Optional[List[Dict[str, Any]]] = Field(None, description="Danh sách documents")
postgresql_documents: Optional[List[Dict[str, Any]]] = Field(None, description="Danh sách documents từ PostgreSQL")
postgresql_document_count: Optional[int] = Field(None, description="Số lượng documents từ PostgreSQL")
error: Optional[str] = Field(None, description="Thông báo lỗi (nếu có)")
class Config:
schema_extra = {
"example": {
"success": True,
"total_vectors": 5000,
"namespace": "Default",
"index_name": "testbot768"
}
}