AI-markdown/docling-service/app/models/ConvertModel.py

52 lines
1.3 KiB
Python

from typing import Optional
from pydantic import BaseModel
from sqlalchemy import Column, Integer, String, Text, DateTime, Boolean, func
from app.database import Base
class Conversion(Base):
__tablename__ = "conversions"
id = Column(Integer, primary_key=True, index=True)
filename = Column(String(255), nullable=False)
file_type = Column(String(50))
output_format = Column(String(20), default="markdown")
content = Column(Text)
page_count = Column(Integer, nullable=True)
llm_enabled = Column(Boolean, default=False)
created_at = Column(DateTime, server_default=func.now())
class ConvertResponse(BaseModel):
id: int
filename: str
output_format: str
content: str
page_count: Optional[int] = None
llm_enabled: bool = False
class Config:
from_attributes = True
class ConversionRecord(BaseModel):
id: int
filename: str
file_type: Optional[str] = None
output_format: str
page_count: Optional[int] = None
llm_enabled: bool = False
created_at: str
class Config:
from_attributes = True
class HealthResponse(BaseModel):
status: str
supported_formats: list[str]
output_formats: list[str]
llm_enabled: bool = False
llm_model: Optional[str] = None
ocr_engine: str = "none"