ai-chat-ui/server/models/chat_models.py

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