34 lines
871 B
Python
34 lines
871 B
Python
"""
|
|
数据模型定义
|
|
"""
|
|
from pydantic import BaseModel
|
|
from typing import Dict, List, Optional, Any, Union
|
|
|
|
|
|
class ChatMessageContentItem(BaseModel):
|
|
type: str # "text" or "image_url"
|
|
text: Optional[str] = None
|
|
image_url: Optional[Dict[str, str]] = None # {"url": "...", "detail": "auto|low|high"}
|
|
|
|
|
|
class ChatMessage(BaseModel):
|
|
role: str
|
|
content: Union[str, List[ChatMessageContentItem]] # 支持字符串或内容项列表
|
|
images: Optional[List[str]] = None
|
|
files: Optional[List[str]] = None
|
|
|
|
|
|
class ChatRequest(BaseModel):
|
|
model: str = "qwen-plus"
|
|
messages: List[Dict[str, Any]]
|
|
stream: bool = True
|
|
temperature: Optional[float] = 0.7
|
|
max_tokens: Optional[int] = 2000
|
|
|
|
|
|
class ModelInfo(BaseModel):
|
|
id: str
|
|
name: str
|
|
description: str
|
|
maxTokens: int
|
|
provider: str |