配置全面迁移数据库:PromptConfig、TaskConfig动态调度、敏感词/清洗规则/趋势映射/平台标签/痛点模板全部可编辑
- 新增 PromptConfig 模型 + API,支持提示词在线编辑(16条默认) - 调度器动态读取 TaskConfig.schedule,admin 可调执行时间 - 新增 KeywordDomainMap、SensitiveWord、ContentCleanRule、TrendFieldMapping 表 - DOMAINS、TREND_DOMAIN_MAP、PLATFORM_TAGS、china_pains、RSS关键词、priority_weights 全部迁移到 DB - tasks.html 重构:卡片网格+配置/产出/历史/提示词四个Tab,折叠显示 - 清理冗余代码:DEFAULT_PROMPTS死代码、collector.py unreachable代码、compliance_checker bug - strip_thinking_html 改用 DB 规则优先
This commit is contained in:
+13
-50
@@ -12,6 +12,7 @@ sys.path.insert(0, str(PROJECT_ROOT))
|
||||
sys.path.insert(0, str(PROJECT_ROOT / "platform" / "backend"))
|
||||
|
||||
from db_helper import get_topic_by_id
|
||||
from prompt_loader import get_prompt, get_prompt_params
|
||||
try:
|
||||
from app.core.nvidia_client import call_llm
|
||||
HAVE_LLM = True
|
||||
@@ -52,57 +53,19 @@ class Outliner:
|
||||
|
||||
if HAVE_LLM:
|
||||
_now = datetime.datetime.now()
|
||||
prompt = f"""你是一个资深内容编辑,擅长设计读者爱看+搜索引擎友好+平台愿意推荐+有市场传播力的文章结构。
|
||||
|
||||
⚠️ 今天日期:{_now.strftime('%Y年%m月%d日')}。当前年份:{_now.year}年。
|
||||
|
||||
## 选题信息
|
||||
标题:{title}
|
||||
领域:{field}
|
||||
核心观点:{core}
|
||||
受众痛点:{pain}
|
||||
独特视角:{angle}
|
||||
|
||||
## 研究笔记
|
||||
{cases_summary}
|
||||
|
||||
## 大纲设计要求
|
||||
### 结构
|
||||
- 5-8章,每章2-4个要点
|
||||
- 结构要有递进:要么认知升级型,要么问题解决型
|
||||
- 把独特视角和受众痛点融入各章,不单独列
|
||||
- 每章标题自带信息量+好奇心,不要「引言」「总结」这类通用标题
|
||||
- 开头要有"钩子"(hook)抓住读者,结尾要有可转发/收藏的总结
|
||||
|
||||
### 数据与热点
|
||||
- **全文必须使用{_now.year-1}-{_now.year}年最新数据**,禁用一切过时数据
|
||||
- 每个观点必须配最新的国内外热点事件/数据/政策来佐证
|
||||
- 体现当前行业正在讨论的核心议题,拒绝泛泛而谈
|
||||
|
||||
### 独特风格
|
||||
- 有自己的判断和立场,不是搬运观点
|
||||
- 每章至少一个"反常识"或"很少有人提"的洞察
|
||||
- 避免同质化表达、老生常谈
|
||||
|
||||
### SEO
|
||||
- H2/H3自然包含用户搜索时会用的短语
|
||||
- 确保大纲覆盖2-3个高价值搜索词,包含1个长尾词
|
||||
- 每章标题对用户搜索意图有回应
|
||||
|
||||
### 市场价值
|
||||
- 读完每章读者能拿走一个实际有用的东西(方法/清单/思维框架/判断标准)
|
||||
- 避免「信息增量为零」的空洞章节
|
||||
- 思考:这篇文章对读者职业/生活/认知有什么用?
|
||||
|
||||
### 平台推荐优化
|
||||
- 知乎:偏硬核数据分析和深度逻辑,结构要有论证链
|
||||
- 小红书:偏实操步骤/清单/对比,结构要一目了然
|
||||
- 公众号:偏故事化开头+情感共鸣+金句结尾,段落节奏快
|
||||
- 一个框架适应三平台,各平台可裁剪侧重点
|
||||
|
||||
直接输出大纲,不要输出思考过程。"""
|
||||
prompt = get_prompt("outline_generation",
|
||||
date=_now.strftime('%Y年%m月%d日'),
|
||||
year=_now.year,
|
||||
title=title,
|
||||
field=field,
|
||||
core=core,
|
||||
pain=pain,
|
||||
angle=angle,
|
||||
cases_summary=cases_summary,
|
||||
)
|
||||
try:
|
||||
outline = call_llm(prompt, temperature=0.6, system_prompt="你是一个有经验的内容编辑,擅长为不同选题设计差异化的文章结构。")
|
||||
params = get_prompt_params("outline_generation")
|
||||
outline = call_llm(prompt, temperature=params.get("temperature", 0.7), max_tokens=params.get("max_tokens", 4000), system_prompt="你是一个有经验的内容编辑,擅长为不同选题设计差异化的文章结构。")
|
||||
logger.info(f"LLM 大纲生成成功,长度:{len(outline)}")
|
||||
return f"# 文章大纲:{title}\n\n{outline}\n\n---\n*大纲生成时间:{TODAY}*"
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user