feat(backend): 整章再沟通/重写 SSE 端点——喂当前草稿+意见+完整记忆注入流式重写一版
WFW-8 整章级再沟通(后端)。新增 POST /projects/{id}/chapters/{no}/rewrite(SSE):
- rewrite.md 教条(品类无关内核,非 SPEC,仿 write_craft 经 load_prompt 读盘);
- rewrite_node:build_rewrite_request 纯函数(system=[rewrite教条,stable_core] cache 前缀;
input=近况+当前草稿+作者意见,断点后不入缓存前缀——守不变量 #9)+ stream_chapter_rewrite;
- RewriteStreamRequest{feedback,prior_draft}(带 max_length 上界);端点复用 assemble 记忆注入
+ normalize_deltas SSE,只读不写库(HITL,新版停前端接受才落,不变量 #3),是工具非写节点
(不破坏 章=f(outline,state) 纯函数,不变量 #7),项目不存在触网关前 404。
门禁绿:ruff / mypy 224 files / pytest(新增 test_rewrite_node 5 例 + 更新 doctrine 一一对应)/
alembic 无漂移。OpenAPI 含新路径 + schema(前端待 gen:api)。
This commit is contained in:
@@ -58,10 +58,11 @@ def test_specs_registry_len_is_23() -> None:
|
||||
assert all(key == spec.name for key, spec in SPECS.items())
|
||||
|
||||
|
||||
# 非 SPEC 教条 prompt:主写章 craft 内核(灵感①)。它是散文教条、不是结构化产物 spec,
|
||||
# 非 SPEC 教条 prompt:写章 craft 内核(write_craft,灵感①)与整章重写内核(rewrite,WFW-8)。
|
||||
# 都是散文教条、不是结构化产物 spec,经 load_prompt/load_craft_doctrine 直接读盘用于流式端点,
|
||||
# 故不入 SPECS/SCHEMA_CATALOG、不进 prompt_hashes 金标准——但仍是 prompts/*.md,需在
|
||||
# md↔spec↔catalog 一一对应校验里显式排除,否则集合等式误报。
|
||||
_DOCTRINE_STEMS = {"write_craft"}
|
||||
_DOCTRINE_STEMS = {"write_craft", "rewrite"}
|
||||
|
||||
|
||||
# ---- #2 md ↔ spec ↔ catalog 一一对应(覆盖 style.md / character-gen.md 连字符)----
|
||||
|
||||
Reference in New Issue
Block a user