首次提交by MimoCode

This commit is contained in:
tang1219
2026-06-15 14:50:15 +08:00
parent 584b31da50
commit ead13f863c
166 changed files with 14908 additions and 1 deletions
+43
View File
@@ -0,0 +1,43 @@
from abc import ABC, abstractmethod
from typing import Optional
from pydantic import BaseModel
class VisionResult(BaseModel):
generic_name: Optional[str] = None
brand_name: Optional[str] = None
manufacturer: Optional[str] = None
specification: Optional[str] = None
class DateResult(BaseModel):
production_date: Optional[str] = None
expiry_date: Optional[str] = None
class LeafletResult(BaseModel):
indications: str
adult_dose: str
child_dose: Optional[str] = None
contraindications: str
notes: Optional[str] = None
class VisionProvider(ABC):
@abstractmethod
async def recognize_medicine(self, image_bytes: bytes) -> VisionResult:
pass
@abstractmethod
async def recognize_dates(self, image_bytes: bytes) -> DateResult:
pass
class TextProvider(ABC):
@abstractmethod
async def summarize_leaflet(self, text: str) -> LeafletResult:
pass
@abstractmethod
async def natural_language_search(self, query: str, medicines: list) -> list:
pass