gitlink-cli/skills/gitlink-faq/references/gitlink-faq-collect.md

5.6 KiB
Raw Blame History

gitlink-faq 数据采集与 Q&A 提取

本文档详细说明如何采集 Issue 数据,以及如何从 Issue 中提取"问题 → 答案"对。

数据源

数据 命令 说明
Issue 列表open issue +list --state open --limit 100 --format json 仍开放的 Issue
Issue 列表closed issue +list --state closed --limit 100 --format json 已关闭的 Issue
Issue 详情 issue +view --number N --format json 含标题、描述、comment_journals_count评论数

关键认知GitLink 平台很多已解决的 Issue 不会被及时设为"关闭"状态。因此必须同时采集 open 和 closed 两份列表,合并去重后才能得到完整的 Issue 集合。

筛选策略

采集后需筛选。注意GitLink API 不支持读取 Issue 评论journals,提取只能基于 subject + description。

宽松筛选原则(只排除明确无价值的):

类型 是否纳入 原因
有 description 的 Issue 纳入 description 可能包含详细的复现步骤和解决方案
仅有标题无 description 纳入 标题本身承载了问题信息
功能请求 纳入 可转为"能否支持 xx"格式的 FAQ
标题含 [test]/测试 排除 纯测试数据
标题为空或纯占位符 排除 无有效信息

宽松吸纳:宁可多留一条低质量的,也别漏掉一条有答案的。

分批采集

Issue 总量        采集策略
─────────        ─────────
< 20             全部采集,逐个读详情
20-50           全部采集,按标题粗筛后读重点 Issue 详情
50-100          分批采集(每批 50先按标题粗筛
> 100            取最近活跃的 100 个,优先高参与度的

参与度筛选

优先采集"高参与度"的 Issue更有可能提取到完整答案

  • comment_journals_count ≥ 2(有人讨论过,答案可能来自讨论)
  • journals 中包含维护者回复(优先作为答案来源)
  • description 中包含"解决""修复""方案""workaround"等关键词

Q&A 提取方法

这是整个流程的核心:从每条 Issue 的 subject + description 中提取"问题Q→ 答案A"。

提取 Prompt

你正在从项目 Issue 中提取 FAQ 知识库条目。请对每条 Issue 提取 Q&A 对。

## Issue 数据
编号: {number}
标题: {subject}
描述: {description}
评论数: {comment_journals_count}

## 提取规则
1. Q问题用一句话概括这个 Issue 要解决的核心问题。用中文表述,以问号结尾。
2. A答案从 description 中提取解决方案、操作步骤、配置方法、workaround 或官方回复。
   - 如果 description 明确描述了解决方法 → 直接提取
   - 如果 description 仅有问题描述无解决方案 → A 写"暂未找到解决方案,详见 Issue 讨论"
   - 如果 Issue 是功能请求 → A 写当前状态(已支持/开发中/不支持)和替代方案
   - 如果 description 为 null 或只有图片 → A 写"Description 无文本内容,无法提取答案"

返回 JSON
{
  "issue_number": N,
  "Q": "一句话问题?",
  "A": "答案内容",
  "confidence": "high|medium|low"
}

不同类型 Issue 的提取策略

Issue 实际类型 Q 模板 A 提取来源 示例
Bug 报告 "为什么出现 xxx 错误/异常?" description 中的修复步骤、workaround "为什么执行 gitlink-cli issue +view 返回数据与网页端不一致?"
Bug 报告(无修复) "遇到 xxx 问题怎么办?" "暂未找到解决方案,详见 Issue 讨论"
功能请求 "能否支持 xxx" description/journals 中的状态说明 "能否支持按 Issue 序号查询?"
使用问题 "如何配置/使用 xxx" description 中的步骤说明 "如何在 CI 环境中配置 gitlink-cli"
使用问题(无回复) "xxx 怎么处理?" "暂未找到解决方案,详见 Issue 讨论"

答案质量标注

标注 条件
high description 明确描述了解决方案、修复方法或有维护者回复
medium 有部分相关信息但不够完整,或需要结合其他 Issue
low description 只有问题描述,无解决方案;或 description 为空

输出数据格式

采集提取后整理为以下结构供合并归类使用:

[
  {
    "issue_number": 142,
    "Q": "安装 gitlink-cli 后运行报 command not found 怎么办?",
    "A": "将 ~/.local/bin 加入 PATH 环境变量。Linux/Mac 执行: export PATH=$PATH:~/.local/bin。Windows 将 %USERPROFILE%\\.local\\bin 加入系统 PATH。",
    "confidence": "high",
    "journal_count": 5,
    "labels": ["安装配置"]
  },
  {
    "issue_number": 158,
    "Q": "issue +view 命令返回的 JSON 缺少部分字段?",
    "A": "暂未找到解决方案,详见 Issue 讨论",
    "confidence": "low",
    "journal_count": 2,
    "labels": ["CLI 命令", "数据显示"]
  }
]

API 注意事项

  • issue +list--limit 最大 200超出需分页--page 参数)
  • --state 参数不可靠:与 PR 列表类似,必须同时拉取 open 和 closed 两份列表并合并去重
  • issue +view 不返回 journals 内容:只有 comment_journals_count(评论数量),无法通过 API 读取实际评论。GET /v1/.../issues/{N}/journals 返回 HTML 而非 JSON。分析只能依靠 subject + description
  • 大量请求时建议用 --debug 查看实际请求 URL确认分页参数正确