File size: 1,226 Bytes
fd027e9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from pydantic import BaseModel, Field
from typing import List, Optional

class Cannabinoid(BaseModel):
    name: str
    value: float
    unit: str = "%"
    display_label: Optional[str] = None

class Terpene(BaseModel):
    name: str
    value: float
    unit: str = "%"
    display_effects: Optional[List[str]] = None

class LabReportData(BaseModel):
    strain_name: str = Field(..., description="Name of the cannabis strain")
    strain_type: Optional[str] = Field(None, description="Indica, Sativa, or Hybrid")
    dominance: Optional[str] = Field(None, description="e.g., Indica-dominant")
    lab_name: Optional[str] = None
    producer: Optional[str] = None
    batch: Optional[str] = None
    lot_number: Optional[str] = None
    sample_id: Optional[str] = None
    test_date: Optional[str] = None
    origin: Optional[str] = None
    genetics: Optional[str] = None
    cannabinoids: List[Cannabinoid] = []
    terpenes: List[Terpene] = []
    confidence: float = 0.0
    source_type: str = "unknown"
    file_name: str = ""

class ExtractionRequest(BaseModel):
    file_content: str  # Base64 encoded file content
    file_name: str
    content_type: str

class GenerationRequest(BaseModel):
    data: LabReportData