53 lines
927 B
Python
53 lines
927 B
Python
from enum import Enum
|
|
from pydantic import BaseModel
|
|
from typing import List
|
|
|
|
|
|
class Message(BaseModel):
|
|
role: str
|
|
content: str
|
|
|
|
|
|
class ChatRequest(BaseModel):
|
|
model: str
|
|
messages: List[Message]
|
|
|
|
|
|
class ModelType(str, Enum):
|
|
text = "text" # 文字对话
|
|
image = "image" # 文生图
|
|
audio = "audio" # 语音模型
|
|
reasoning = "reasoning" # 深度思考模型
|
|
|
|
|
|
class ModelInfo(BaseModel):
|
|
model_id: str
|
|
model_name: str
|
|
model_type: ModelType
|
|
|
|
|
|
class VendorModelList(BaseModel):
|
|
vendor: str
|
|
models: List[ModelInfo]
|
|
|
|
|
|
class VendorModelResponse(BaseModel):
|
|
data: List[VendorModelList]
|
|
|
|
|
|
# Speaker相关模型
|
|
class Speaker(BaseModel):
|
|
speaker_id: str
|
|
speaker_name: str
|
|
language: str
|
|
platforms: List[str]
|
|
|
|
|
|
class CategorySpeakers(BaseModel):
|
|
category: str
|
|
speakers: List[Speaker]
|
|
|
|
|
|
class SpeakerResponse(BaseModel):
|
|
data: List[CategorySpeakers]
|