feat(site-import): 两段生成器与数字校验器

Task 5:app/platform/site_import/generator.py——AI 两段(行业分析/
内容填槽,GEN1/GEN2 系统提示含数据边界声明与 JSON 严格指令)+
数字校验器(全半角/单位/千分位/波浪号归一比对,违例剔除+孤立单位
清理)+ spec §4 草稿组装(占位符填槽/出厂默认兜底/规格公开分支/
模板残留剔除/墙尾巴三语 es 降级 null)。create_provider 加可选
max_tokens 透传(默认 None 既有调用零影响);MAX_TOKENS_TARGET=8192
(Task 1 探针结论)。AI 调用 wait_for 120s 包裹,超时不吃重试预算。
测试 38 条(provider 全 fake),全量 774 passed + 2 skipped。

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-10-20 20:10:16 +08:00
parent 255c273f6b
commit e924b3a6a4
3 changed files with 941 additions and 2 deletions
+8 -2
View File
@@ -131,14 +131,20 @@ DEFAULT_PROVIDER = PromptProvider.from_dir(
Path(__file__).resolve().parents[3] / "seed_profiles" / "jiancai" / "prompts")
def create_provider(config_data: dict | None = None) -> AIProvider:
"""provider 工厂(Task 9: 按租户配置实例化 glm;None 走 env 平台默认)。"""
def create_provider(config_data: dict | None = None,
max_tokens: int | None = None) -> AIProvider:
"""provider 工厂(Task 9: 按租户配置实例化 glm;None 走 env 平台默认)。
max_tokens(site-import Task 5): 可选透传 GLMProvider(默认 None 不限,
既有调用零影响)——生成器长输出场景用,对话路径不传。
"""
cfg = resolve_ai_settings(config_data)
if cfg["provider"] == "glm":
return GLMProvider(
api_key=cfg["api_key"],
model=cfg["model"],
base_url=cfg["base_url"],
max_tokens=max_tokens,
)
raise ValueError(f"Unknown AI provider: {cfg['provider']}")