Back to skills
extension
Category: OtherNo API key required

金融投研文章总结助手

投研文章结构化摘要生成。阅读金融投研材料(研报、文章、新闻),按固定Markdown模板提炼核心观点、投资建议、判断方向等结构化要点,并生成汇总Excel表格和可视化HTML网页。触发词:投研摘要、研报总结、投研分析、文章摘要、投研材料、研报提炼、invest-article-summary。当用户提供一篇或多篇投研材料并要求提炼要点、生成摘要时触发。

personAuthor: user_f57b061bhubcommunity

投研文章结构化摘要生成

工作流程

  1. 接收材料:用户输入一篇或多篇投研材料(文本、链接、文件)
  2. 格式转换:非Markdown/纯文本文件自动转换为Markdown格式
  3. 去重检测:调用去重脚本,逐级检测新文章与已有摘要的重复关系
  4. 逐篇提炼:仅对去重后的唯一文章按Markdown模板生成结构化摘要文件
  5. 生成汇总表:所有材料处理完后,调用脚本生成Excel汇总表
  6. 生成HTML网页:调用脚本生成可视化HTML网页"投研观点集思录"

Markdown输出模板

对每篇材料生成一个 .md 文件,严格按以下格式:

### 原文标题
[提取原文标题]

### 发布日期
[提取该篇内容的发布日期]

### 发布作者
[提取发布作者]

### 原文链接
[提取原文链接]

### 核心观点
1. [观点1,≤20字]。[论据1,≤30字]
2. [观点2,≤20字]。[论据2,≤30字]
3. [观点3,≤20字]。[论据3,≤30字]

### 投资建议
[投资建议,40-50字,必须包含方向性表述,提示风险,禁止绝对化表述]

### 判断方向
[🔴强看多 / 🟠偏多 / ⚪中性 / 🔵偏空 / 🟢强看空]

### 分析逻辑
[仅从以下6个中选取,可多选用 `/` 分隔:基本面驱动 / 资金面驱动 / 政策驱动 / 技术面驱动 / 事件驱动 / 产业链驱动]

### 关联标签
[标签1(看多),标签2(看空),标签3,...](至少3个、最多10个,看多→看空→无观点排序,逗号分隔)

### 关注标的
[提取文中提到的具体可交易标的,如股票名称、基金名称等,最多10个,逗号分隔。无明确标的填"无"]

### 时效性
[仅从以下3个中单选:短期(1-5日) / 中期(1-4周) / 长期(1月以上)]

### 原文摘要
[150-200字原文核心段落摘要,保留关键数据和专有名词]

提炼规则

  • 核心观点:3条,每条格式为"观点≤20字。论据≤30字",一条总字数至少30字,论据必须从原文提炼,严禁编造
  • 投资建议:40-50字,包含方向性表述,提示风险,禁止绝对化表述(如"必涨""一定""稳赚")
  • 判断方向:严格按分级标准选择,无明确方向时填⚪中性
  • 分析逻辑:只能从【基本面驱动/资金面驱动/政策驱动/技术面驱动/事件驱动/产业链驱动】中选取,可多选用 / 分隔,不得自创关键词
  • 关联标签:优先使用备选项,至少3个、最多10个,看多→看空→无观点排序,逗号分隔。每个标签后可附(看多)/(看空),仅限原文有明确多空观点时
  • 时效性:只能从【短期(1-5日)/中期(1-4周)/长期(1月以上)】中单选,必须使用完整格式
  • 关注标的:提取具体可交易标的(股票、基金等),最多10个,逗号分隔。排除笼统概念如"科技股""黄金"等。无明确标的填"无"
  • 原文摘要:150-200字,保留关键数据和专有名词

详细分级标准和备选项参见 references/standards.md

格式转换

在提炼前,将非Markdown/纯文本文件自动转换为Markdown格式,确保后续处理统一。

支持格式

| 格式 | 扩展名 | 说明 | |------|--------|------| | 已支持 | .md, .txt, .markdown | 直接跳过,无需转换 | | 文档 | .pdf, .docx, .pptx | Word/PDF/PPT | | 表格 | .xlsx, .xls | Excel | | 数据 | .html, .csv, .json, .xml | 网页/结构化数据 | | 其他 | .epub, .rtf | 电子书/富文本 |

环境依赖

脚本自动检测并使用可用的转换工具(按优先级):

  1. python -m markitdown(推荐,需 pip install markitdown[all],完整格式支持)
  2. uvx markitdown(需安装 uv,可能缺少部分可选依赖)
  3. 无可用工具时自动尝试 pip install markitdown[all] 安装

调用方式

$env:PYTHONIOENCODING="utf-8"; python scripts/convert_to_md.py <file1> [file2] ...
  • .md/.txt 文件自动跳过
  • 转换后的文件保存在 output/YYYYMMDD/<原文件名>_raw.md
  • 输出格式:# CONVERTED_FILES / # SKIPPED / # ERRORS 三个段落

脚本路径:scripts/convert_to_md.py(相对于本Skill目录)

去重检测

在提炼前,对新文章与已有摘要进行逐级去重,避免重复处理:

去重规则(三级递进)

| 级别 | 依据 | 说明 | |------|------|------| | L1 | 原文链接精确匹配 | 去除UTM等追踪参数后比较,最可靠 | | L2 | 标题归一化精确匹配 | 去除空格、标点、大小写后比较 | | L3 | 标题相似度 ≥ 0.85 | 使用编辑距离算法,阈值默认0.85 |

  • 默认扫描 output/所有日期目录的已有MD文件
  • 支持 --date 参数限制扫描范围
  • 多篇新文章之间也会互相去重(后到的与先判为唯一的比较)
  • 被判为重复的文章会报告匹配级别和已存在的文章标题

调用方式

# 方式1:直接传入文章文本
$env:PYTHONIOENCODING="utf-8"; python scripts/dedup_articles.py --new "文章标题1" "文章标题2"

# 方式2:传入文件路径
$env:PYTHONIOENCODING="utf-8"; python scripts/dedup_articles.py --files <f1> [f2] ...

# 限制扫描日期范围
$env:PYTHONIOENCODING="utf-8"; python scripts/dedup_articles.py --new "标题" --date 20260609 20260610

# 输出JSON格式
$env:PYTHONIOENCODING="utf-8"; python scripts/dedup_articles.py --new "标题" --json

# 调整相似度阈值
$env:PYTHONIOENCODING="utf-8"; python scripts/dedup_articles.py --new "标题" --threshold 0.9

脚本路径:scripts/dedup_articles.py(相对于本Skill目录)

生成Excel汇总表

所有Markdown文件生成后,运行脚本生成汇总Excel:

$env:PYTHONIOENCODING="utf-8"; python scripts/create_summary_xlsx.py <md1> [md2] ...
  • <md1> [md2] ...:所有生成的Markdown摘要文件路径
  • 输出自动保存到 output/YYYYMMDD/汇总_YYYYMMDD.xlsx(同日内多次处理自动追加)

脚本路径:scripts/create_summary_xlsx.py(相对于本Skill目录)

生成HTML可视化网页

Excel生成后,运行脚本生成"投研观点集思录"HTML网页。支持三种调用方式:

方式1:默认当日(扫描当天日期目录)

$env:PYTHONIOENCODING="utf-8"; python scripts/create_summary_html.py

自动扫描 output/当天YYYYMMDD/ 目录中的 .md 文件,仅包含当日文章。

方式2:指定日期

$env:PYTHONIOENCODING="utf-8"; python scripts/create_summary_html.py --date 20260610

只包含指定日期目录下的文章。也可指定日期范围(含两端):

$env:PYTHONIOENCODING="utf-8"; python scripts/create_summary_html.py --date 20260609 20260610

方式3:显式指定MD文件(兼容旧模式)

$env:PYTHONIOENCODING="utf-8"; python scripts/create_summary_html.py <md1> [md2] ...
  • 输出自动保存到 output/YYYYMMDD/投研观点集思录.html(YYYYMMDD为运行当日)

脚本路径:scripts/create_summary_html.py(相对于本Skill目录)

HTML网页设计规范(固定,不可修改)

  • 主题:浅色暖白基底(#F6F5F1),白色卡片
  • 标题:Noto Serif SC 字体,"投研观点集思录" + 英文副标题
  • 统计栏:收录文章 / 来源作者 / 文章标签(三维度动态统计)
  • 筛选栏:"全部"黑色重置按钮 + 4个筛选入口 + 搜索框
    • 📅日期:单选下拉
    • 🧭方向:多选下拉(5档+确定按钮),按钮仅显示指南针+名称(无彩色圆点),≤2项全展示,>2项省略+hover tooltip
    • ✍️作者:多选下拉+确定按钮,≤3项全展示,>3项省略+hover tooltip
    • 🏷️标签:多选下拉+确定按钮(可滚动),≤3项全展示,>3项省略+hover tooltip
  • 卡片:双列网格(480px起),方向徽章(52x52) + 标题/作者/日期/链接 + 标签行(关联标签仅显示3个按多空着色:看多浅红/看空浅绿/无观点蓝灰,时效性琥珀,分析逻辑灰) + 3条核心观点(红圆点) + 投资建议块 + 关注标的(每个标的独立气泡框) + 可展开原文摘要
  • 方向徽章颜色:强看多=红/偏多=橘/中性=灰/偏空=蓝/强看空=青
  • 卡片排序:同作者按日期降序
  • 底部:免责声明 + 风险提示 + 数据截至日期(等距排列)
  • 筛选交互:多选不自动关闭下拉,底部"确定"按钮关闭并筛选;搜索框实时筛选
  • 详情参见references/html_design_spec.md

Excel表格结构

| 列 | 类型 | 说明 | |----|------|------| | ID | 自动编号 | 序号 | | 原文标题 | 文本 | 文章标题 | | 发布日期 | 日期(YYYY-MM-DD) | 发布日期 | | 发布作者 | 文本 | 发布作者 | | 原文链接 | 超链接文本 | 原文链接 | | 核心观点 | 文本 | 核心观点 | | 投资建议 | 文本 | 投资建议 | | 判断方向 | 单选 | 🔴强看多 / 🟠偏多 / ⚪中性 / 🔵偏空 / 🟢强看空 | | 分析逻辑 | 多选 | 基本面驱动/资金面驱动/政策驱动/技术面驱动/事件驱动/产业链驱动 | | 关联标签 | 文本 | 逗号分隔,可附(看多)/(看空) | | 关注标的 | 文本 | 具体可交易标的,逗号分隔,最多10个 | | 时效性 | 单选 | 短期(1-5日)/中期(1-4周)/长期(1月以上) | | 原文摘要 | 文本 | 原文摘要 |

输出文件命名

  • 输出目录:output/YYYYMMDD/
    • Markdown:output/YYYYMMDD/YYYYMMDD_N_作者.md
    • Excel:output/YYYYMMDD/汇总_YYYYMMDD.xlsx(同日内多次处理自动追加)
    • HTML:output/YYYYMMDD/投研观点集思录.html

注意事项

  1. 多篇材料时,先转换格式,再去重,再逐篇生成Markdown,最后统一生成Excel
  2. 如果原文信息缺失(如无作者、无链接),对应字段填"未提供"
  3. 论据严禁凭空编造,必须从原文提炼
  4. 输出文件保存到 Skill 目录下的 output/YYYYMMDD/ 子目录中,按日期组织,支持同日内多次追加
  5. 同一日期的所有输出(Markdown + Excel + HTML)放在同一文件夹下,便于管理
  6. HTML网页格式严格遵循设计规范,确保每次生成风格统一
  7. 去重检测在提炼前执行,重复文章不会进入提炼流程,节省处理资源
  8. 格式转换使用 markitdown,首次使用需联网安装依赖,后续离线可用