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:
@@ -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}"
|
||||
|
||||
Reference in New Issue
Block a user