from enum import Enum from pydantic import BaseModel from typing import Dict, Union, List, Optional class HistoryType(Enum): """ 历史记录类型 """ TENDER_INFO = 0 USER = 1 ASSISTANT = 2 class IntentionType(Enum): """ 意图类型 """ ANALYSIS = 0 TENDER_INFO = 1 CHAT = 2 class ClarificationRequest(BaseModel): data: str class AgentData(BaseModel): exec_res: List[str] class TenderData(BaseModel): title: Optional[str] publishDate: Optional[str] mainBody: Optional[str] md5Id: Optional[str] province:Optional[str] city: Optional[str] region: Optional[str] bidUnit: Optional[List[Dict]] winBidUnit: Optional[List[Dict]] agentUnit: Optional[List[Dict]] budgetAmount: Optional[str] winBidAmount: Optional[str] tenderProducts: Optional[str] bidType: Optional[str] subBidType: Optional[str] attachmentUrls: Optional[List[str]] contentAttachmentUrl: Optional[List[str]] class HistoryModel(BaseModel): type: HistoryType data: Union[TenderData, AgentData, str] class BaseRequest(BaseModel): data: str history: list[HistoryModel] = []