fix(backend): 补 directive/instruction 文本上界——LLM 入参防超长(CR-H9 收尾)
This commit is contained in:
@@ -23,6 +23,7 @@ from ww_api.schemas.generation import CharacterGenerateRequest, WorldGenerateReq
|
|||||||
from ww_api.schemas.projects import (
|
from ww_api.schemas.projects import (
|
||||||
AcceptRequest,
|
AcceptRequest,
|
||||||
DraftSaveRequest,
|
DraftSaveRequest,
|
||||||
|
DraftStreamRequest,
|
||||||
ProjectCreateRequest,
|
ProjectCreateRequest,
|
||||||
ReviewRequest,
|
ReviewRequest,
|
||||||
)
|
)
|
||||||
@@ -64,6 +65,8 @@ _STR_CASES: list[_StrCase] = [
|
|||||||
_StrCase(DraftSaveRequest, "text", 200_000, "draft-text<=200000"),
|
_StrCase(DraftSaveRequest, "text", 200_000, "draft-text<=200000"),
|
||||||
_StrCase(ReviewRequest, "draft", 200_000, "review-draft<=200000"),
|
_StrCase(ReviewRequest, "draft", 200_000, "review-draft<=200000"),
|
||||||
_StrCase(RefineRequest, "segment", 20_000, "segment<=20000"),
|
_StrCase(RefineRequest, "segment", 20_000, "segment<=20000"),
|
||||||
|
_StrCase(RefineRequest, "instruction", 2_000, "refine-instruction<=2000", {"segment": "s"}),
|
||||||
|
_StrCase(DraftStreamRequest, "directive", 20_000, "directive<=20000"),
|
||||||
_StrCase(ForeshadowRegisterRequest, "code", 100, "code<=100", {"title": "t"}),
|
_StrCase(ForeshadowRegisterRequest, "code", 100, "code<=100", {"title": "t"}),
|
||||||
_StrCase(ForeshadowRegisterRequest, "title", 500, "foreshadow-title<=500", {"code": "c"}),
|
_StrCase(ForeshadowRegisterRequest, "title", 500, "foreshadow-title<=500", {"code": "c"}),
|
||||||
_StrCase(RuleCreateRequest, "content", 10_000, "rule-content<=10000", {"level": "project"}),
|
_StrCase(RuleCreateRequest, "content", 10_000, "rule-content<=10000", {"level": "project"}),
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ from pydantic import BaseModel, Field
|
|||||||
# 请求文本长度上界(CR-H9:防超长入参 DoS/成本)。标题=标签级;章正文=整章级。
|
# 请求文本长度上界(CR-H9:防超长入参 DoS/成本)。标题=标签级;章正文=整章级。
|
||||||
_TITLE_MAX = 200
|
_TITLE_MAX = 200
|
||||||
_CHAPTER_TEXT_MAX = 200_000
|
_CHAPTER_TEXT_MAX = 200_000
|
||||||
|
_DIRECTIVE_MAX = 20_000 # CR-H9 收尾:本章指令喂 LLM,加上界(正文级 body 中间件仍兜底)
|
||||||
|
|
||||||
|
|
||||||
class ProjectCreateRequest(BaseModel):
|
class ProjectCreateRequest(BaseModel):
|
||||||
@@ -121,7 +122,7 @@ class DraftStreamRequest(BaseModel):
|
|||||||
后端只入 volatile(守缓存前缀不变量 #9)。无 body 时退化为纯按大纲生成(向后兼容)。
|
后端只入 volatile(守缓存前缀不变量 #9)。无 body 时退化为纯按大纲生成(向后兼容)。
|
||||||
"""
|
"""
|
||||||
|
|
||||||
directive: str | None = None
|
directive: str | None = Field(default=None, max_length=_DIRECTIVE_MAX)
|
||||||
|
|
||||||
|
|
||||||
# 整章重写输入上界(守 DoS/成本,CR-H9 方向):意见短、整章草稿大(复用章正文上界,DRY)。
|
# 整章重写输入上界(守 DoS/成本,CR-H9 方向):意见短、整章草稿大(复用章正文上界,DRY)。
|
||||||
|
|||||||
@@ -59,7 +59,8 @@ class RefineRequest(BaseModel):
|
|||||||
"""回炉:重写选中段(可选改写指令)。"""
|
"""回炉:重写选中段(可选改写指令)。"""
|
||||||
|
|
||||||
segment: str = Field(min_length=1, max_length=_SEGMENT_MAX)
|
segment: str = Field(min_length=1, max_length=_SEGMENT_MAX)
|
||||||
instruction: str | None = None
|
# CR-H9 收尾:再沟通意见喂 LLM,加上界(与 clarify instruction 同口径 2000)。
|
||||||
|
instruction: str | None = Field(default=None, max_length=_MAX_CLARIFY_INSTRUCTION_LEN)
|
||||||
|
|
||||||
|
|
||||||
class RefineResponse(BaseModel):
|
class RefineResponse(BaseModel):
|
||||||
|
|||||||
Reference in New Issue
Block a user