File size: 3,390 Bytes
e83f5e9 c8b8c9b e83f5e9 c8b8c9b e83f5e9 c8b8c9b e83f5e9 c8b8c9b e83f5e9 c8b8c9b e83f5e9 c8b8c9b e83f5e9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
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"
}
} |