diff --git a/backend/app/api/admin.py b/backend/app/api/admin.py index 111d5fb..f607e59 100644 --- a/backend/app/api/admin.py +++ b/backend/app/api/admin.py @@ -50,6 +50,7 @@ async def create_source(body: SourceIn, session: AsyncSession = Depends(get_sess translate_to=body.translate_to, enabled=body.enabled, headers_json=body.headers_json, + blocklist_tags=body.blocklist_tags or [], ) session.add(src) try: diff --git a/backend/app/api/admin_llm.py b/backend/app/api/admin_llm.py index 2cdc1a9..723e1bb 100644 --- a/backend/app/api/admin_llm.py +++ b/backend/app/api/admin_llm.py @@ -38,6 +38,7 @@ async def get_settings(): classify_prompt=defaults["classify_prompt"], commentary_prompt=defaults["commentary_prompt"], image_prompt_template=defaults["image_prompt_template"], + blocklist_tags=[], ) return LlmSettingOut.model_validate(row) diff --git a/backend/app/schemas/source.py b/backend/app/schemas/source.py index a3422a8..ecb0318 100644 --- a/backend/app/schemas/source.py +++ b/backend/app/schemas/source.py @@ -25,6 +25,8 @@ class SourceOut(BaseModel): last_fetched_at: datetime | None = None last_status: str | None = None consecutive_failures: int = 0 + # 源级屏蔽分类标签;与 llm_settings.blocklist_tags 合并后注入 classify prompt + blocklist_tags: list[str] = [] class SourceIn(BaseModel): @@ -40,6 +42,7 @@ class SourceIn(BaseModel): enabled: bool = True detail_selector: dict | None = None headers_json: dict | None = None + blocklist_tags: list[str] = [] class SourceUpdate(BaseModel): @@ -49,3 +52,4 @@ class SourceUpdate(BaseModel): fetch_interval_min: int | None = Field(default=None, ge=5, le=1440) region: str | None = None translate_to: str | None = None + blocklist_tags: list[str] | None = None