✨ feat(vscode): 代码阅读把 Pydantic 的 BaseModel 子类画成数据模型卡片,字段摊成属性表
This commit is contained in:
1 parent
2a11d5a19f
commit
4d8b99db7b
7 files changed
+659
-12
No files matched your search
@@ -0,0 +1,29 @@
|
||||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
|
||||
class AIGCMetadata(BaseModel):
|
||||
"""生成内容来源标识。"""
|
||||
|
||||
model_config = ConfigDict(strict=True, extra="forbid")
|
||||
|
||||
Label: str
|
||||
ContentProducer: str
|
||||
ProduceID: str
|
||||
ReservedCode1: str
|
||||
ContentPropagator: str
|
||||
PropagateID: str
|
||||
ReservedCode2: str
|
||||
|
||||
|
||||
class TextTrace(BaseModel):
|
||||
"""生成文本及其来源标识。"""
|
||||
|
||||
content_key: str
|
||||
text: str
|
||||
reasoning_content: str | None = None
|
||||
metadata: AIGCMetadataEnvelope
|
||||
model_id: str | None = None
|
||||
served_model: str | None = None
|
||||
generated_at: datetime | None = None
|
||||
@@ -0,0 +1,29 @@
|
||||
from pydantic import BaseModel, ConfigDict, Field, field_validator
|
||||
|
||||
from luffy_agent.share.enums import ShareTargetType
|
||||
|
||||
|
||||
class CreateShareRequest(BaseModel):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
target_type: ShareTargetType = ShareTargetType.SESSION_ARTIFACT
|
||||
session_id: str = Field(min_length=1, description="作品所属 session id")
|
||||
preview_url: str = Field(
|
||||
min_length=1,
|
||||
max_length=2048,
|
||||
description="作品当前 preview URL(前端从预览态取)",
|
||||
)
|
||||
title: str = Field(min_length=1, max_length=255, description="分享卡片标题")
|
||||
description: str | None = Field(default=None, max_length=500)
|
||||
thumbnail_url: str | None = Field(default=None, max_length=2048)
|
||||
|
||||
@field_validator("preview_url", "thumbnail_url")
|
||||
@classmethod
|
||||
def validate_http_scheme(cls, value: str | None) -> str | None:
|
||||
"""强制 http(s):// scheme,拒绝 javascript: 等可执行 URL 注入落地页 iframe。"""
|
||||
if value is None:
|
||||
return None
|
||||
|
||||
if not value.startswith(("http://", "https://")):
|
||||
raise ValueError("URL 必须以 http:// 或 https:// 开头")
|
||||
return value
|
||||
Reference in new issue
Block a user