Files
ozon-seller-kit/server/schemas/copy.py
T
2026-08-11 17:09:23 +08:00

38 lines
1.1 KiB
Python

from pydantic import BaseModel, Field, field_validator
class CopyRequest(BaseModel):
source_text: str = Field(..., description="商品资料,可同时包含事实与本次生成要求")
product_name: str = Field(default="", description="当前表单商品名")
model_code: str = Field(default="", description="型号")
model: str = Field(default="", description="模型 id(可选,须在 models.yaml 白名单内)")
@field_validator("source_text")
@classmethod
def source_text_min_length(cls, value: str) -> str:
text = (value or "").strip()
if len(text) < 10:
raise ValueError("source_text 去空白后至少 10 个字符")
return text
@field_validator("model")
@classmethod
def normalize_model(cls, value: str) -> str:
return (value or "").strip()
class UsageInfo(BaseModel):
prompt_tokens: int = 0
completion_tokens: int = 0
class CopyResponse(BaseModel):
titles_ru: list[str]
titles_zh: list[str]
description_ru: str
description_zh: str
tags_ru: list[str]
tags_zh: list[str]
model: str
usage: UsageInfo