93 lines
3.0 KiB
Python
93 lines
3.0 KiB
Python
"""
|
|
AI 应用 Schema
|
|
"""
|
|
from typing import Optional, List, Any
|
|
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, Field, ConfigDict
|
|
|
|
from app.base_schema import CSTDatetime
|
|
|
|
|
|
class AppCreate(BaseModel):
|
|
"""创建应用"""
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
name: str = Field(..., max_length=100, description="应用名称")
|
|
code: str = Field(..., max_length=100, description="应用编码")
|
|
description: str = Field(default="", description="描述")
|
|
icon: str = Field(default="", description="图标")
|
|
app_type: str = Field(default="chat", description="应用类型")
|
|
model_id: Optional[str] = Field(None, description="默认模型 ID")
|
|
system_prompt: str = Field(default="", description="系统提示词")
|
|
temperature: float = Field(default=0.7, description="温度")
|
|
top_p: float = Field(default=1.0, description="top_p")
|
|
max_tokens: int = Field(default=2048, description="最大 Token")
|
|
opening_statement: str = Field(default="", description="开场白")
|
|
suggested_questions: List[str] = Field(default_factory=list, description="建议问题")
|
|
is_public: bool = Field(default=False, description="是否公开")
|
|
|
|
|
|
class AppUpdate(BaseModel):
|
|
"""更新应用"""
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
name: Optional[str] = None
|
|
description: Optional[str] = None
|
|
icon: Optional[str] = None
|
|
model_id: Optional[str] = None
|
|
system_prompt: Optional[str] = None
|
|
temperature: Optional[float] = None
|
|
top_p: Optional[float] = None
|
|
max_tokens: Optional[int] = None
|
|
opening_statement: Optional[str] = None
|
|
suggested_questions: Optional[List[str]] = None
|
|
is_public: Optional[bool] = None
|
|
workflow_definition: Optional[dict] = None
|
|
|
|
|
|
class AppResponse(BaseModel):
|
|
"""应用输出"""
|
|
model_config = ConfigDict(from_attributes=True, protected_namespaces=())
|
|
|
|
id: str
|
|
name: str
|
|
code: str
|
|
description: str = ""
|
|
icon: str = ""
|
|
app_type: str = "chat"
|
|
status: str = "draft"
|
|
model_id: Optional[str] = None
|
|
model_name: str = ""
|
|
system_prompt: str = ""
|
|
temperature: float = 0.7
|
|
top_p: float = 1.0
|
|
max_tokens: int = 2048
|
|
opening_statement: str = ""
|
|
suggested_questions: List[Any] = Field(default_factory=list)
|
|
workflow_definition: dict = Field(default_factory=dict)
|
|
is_public: bool = False
|
|
conversation_count: int = 0
|
|
message_count: int = 0
|
|
sort: int = 0
|
|
sys_create_datetime: Optional[CSTDatetime] = None
|
|
sys_update_datetime: Optional[CSTDatetime] = None
|
|
|
|
|
|
class AppListResponse(BaseModel):
|
|
"""应用列表输出"""
|
|
model_config = ConfigDict(from_attributes=True, protected_namespaces=())
|
|
|
|
id: str
|
|
name: str
|
|
code: str
|
|
description: str = ""
|
|
icon: str = ""
|
|
app_type: str = "chat"
|
|
status: str = "draft"
|
|
model_name: str = ""
|
|
is_public: bool = False
|
|
conversation_count: int = 0
|
|
message_count: int = 0
|
|
sys_create_datetime: Optional[CSTDatetime] = None
|