feat: 平台配置表扩展配图/字数字段,微信公众号正文插入配图,合规检查从DB读规则

- PlatformConfig模型新增requires_image、image_count_min/max、image_width/height、min_words/max_words
- schemas.py同步PlatformConfigBase/Create/Update/Response新字段
- initial_data.py为三大平台填充初始值(微信需配图、字数800-1500等)
- database.py添加新列ALTER TABLE迁移
- platforms.html重写编辑弹窗(正确字段名+配图/字数设置)
- writer.py微信公众号文章正文h1后插入<img>占位
- compliance_checker.py接受platform_config参数,从DB读取规则替代硬编码
- compliance_optimizer.py启动时加载DB平台配置传入checker
This commit is contained in:
Yuzhiran Dev
2026-05-17 23:08:43 +08:00
parent 5674114599
commit 41b0f694ee
9 changed files with 174 additions and 51 deletions
+16 -1
View File
@@ -185,6 +185,17 @@ def optimize_article(html: str, platform: str, topic_data: Dict, remaining_issue
logs.append(pol_log)
return html, logs
def _load_platform_configs() -> Dict[str, Dict]:
"""从 DB 加载所有平台配置"""
from app.database import SessionLocal
from app.models import PlatformConfig
db = SessionLocal()
try:
configs = db.query(PlatformConfig).all()
return {c.platform: c.to_dict() for c in configs}
finally:
db.close()
def main(topic_ids: List[str] = None):
logger.info("=== 合规审查与优化开始 ===")
llm_cfg = get_llm_config()
@@ -193,6 +204,9 @@ def main(topic_ids: List[str] = None):
else:
logger.info("LLM 配置: 使用环境变量默认值")
platform_configs = _load_platform_configs()
logger.info(f"已加载 {len(platform_configs)} 个平台配置")
articles = get_articles_from_db(topic_ids)
if not articles:
logger.warning("未找到任何文章(可能尚未创作或同步到 DB)")
@@ -216,7 +230,8 @@ def main(topic_ids: List[str] = None):
logger.warning(f"未找到选题: {topic_id}")
continue
check_result = check_article(html, platform_dir, topic_data)
pc = platform_configs.get(platform_dir, {})
check_result = check_article(html, platform_dir, topic_data, platform_config=pc)
issues = check_result['issues']
score = check_result['score']
label = f"{platform_dir}/{topic_id}"