22 lines
781 B
Python
22 lines
781 B
Python
"""前端设计请求:原始需求、当前大屏及可选补充上下文"""
|
|
|
|
from pydantic import Field
|
|
|
|
from .base import ExtensibleModel, JsonObject, NonBlankString
|
|
from .screen import Screen
|
|
|
|
|
|
class RequestContext(ExtensibleModel):
|
|
selected_node_ids: list[NonBlankString] = Field(default_factory=list)
|
|
screen_id: NonBlankString | None = None
|
|
screen_revision: int | None = Field(default=None, ge=0)
|
|
conversation_id: NonBlankString | None = None
|
|
|
|
|
|
class DesignRequest(ExtensibleModel):
|
|
prompt: NonBlankString
|
|
screen: Screen
|
|
context: RequestContext = Field(default_factory=RequestContext)
|
|
# 只预留 JSON 描述入口,暂不规定材料种类,也不读取文件或远程资源
|
|
attachments: list[JsonObject] = Field(default_factory=list)
|