| from pydantic import BaseModel, Field |
| from typing import List, Optional |
|
|
| class InvoiceSchema(BaseModel): |
| vendor: str = Field(description="Name of the company or service provider") |
| total_amount: float = Field(description="Total cost extracted") |
| currency: str = Field(description="Currency code (USD, EUR, NGN)", default="USD") |
| date: str = Field(description="Date of transaction (YYYY-MM-DD) or 'Unknown'") |
| is_paid: bool = Field(description="Payment status") |
| items: List[str] = Field(description="List of line items purchased", default_factory=list) |
|
|
| class ResumeSchema(BaseModel): |
| name: str = Field(description="Candidate's full name") |
| email: Optional[str] = Field(description="Email address") |
| skills: List[str] = Field(description="Technical skills found") |
| years_experience: int = Field(description="Estimated years of experience", default=0) |
| summary: str = Field(description="Brief professional summary") |
|
|
| class GenericSchema(BaseModel): |
| key_points: List[str] = Field(description="Main takeaways or extracted facts") |
| sentiment: str = Field(description="Positive, Neutral, or Negative") |
|
|