news 2026/9/11 13:24:04

如何用 GraphRAG 的 prompt-tune 命令生成领域适配的索引提示词?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用 GraphRAG 的 prompt-tune 命令生成领域适配的索引提示词?

如何用 GraphRAG 的 prompt-tune 命令生成领域适配的索引提示词?

【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag

GraphRAG 的索引流水线默认使用一组通用提示词来构建知识图谱。如果你的输入数据集中在某个领域(比如环境新闻、太空科学、微生物学),prompt-tune命令可以读取你的实际输入数据,通过一系列 LLM 调用生成适配该领域的提示词,文档建议在执行 Index Run 之前运行这一步,以获得更好的索引结果。本文以命令行方式完整走一遍:初始化工作区、准备输入、运行prompt-tune、核对生成的提示词文件,并把settings.yaml指到新的提示词上。

前置条件(来自文档):

  • Python 3.10–3.12;
  • 已安装graphrag(可从 PyPI 安装);
  • 已用graphrag init初始化过工作区,且.env中的 API Key 已配置;
  • input/目录中有待索引的数据文件。

初始化工作区并准备输入

prompt-tune依赖graphrag init生成的配置文件,先在你的项目目录下执行:

python -m pip install graphrag graphrag init

执行过程中按提示选择默认的 chat 与 embedding 模型。init命令会创建以下文件:

  • settings.yaml— 流水线配置;
  • .env— 环境变量文件,包含GRAPHRAG_API_KEY=<API_KEY>,把<API_KEY>替换为你自己的 OpenAI 或 Azure API key(prompt-tune 会发起 LLM 调用,Key 必须有效);
  • prompts/— 存放 GraphRAG 默认提示词的目录。

然后把你的数据文件放进input/目录。prompt-tune会读取这个目录下的输入,支持的格式包括.csv.txt.json.jsonl.parquet以及 MarkItDown 支持的文件。文档也提醒:GraphRAG 可能消耗大量 LLM 资源,建议先用小的教程数据集熟悉流程,并用较快、较便宜的模型做实验。

运行 prompt-tune

命令的完整形式(来自 Auto Prompt Tuning 文档):

graphrag prompt-tune [--root ROOT] [--domain DOMAIN] [--selection-method METHOD] [--limit LIMIT] [--language LANGUAGE] \ [--max-tokens MAX_TOKENS] [--chunk-size CHUNK_SIZE] [--n-subset-max N_SUBSET_MAX] [--k K] \ [--min-examples-required MIN_EXAMPLES_REQUIRED] [--discover-entity-types] [--output OUTPUT]

各选项的含义与默认值:

选项说明默认值
--root包含配置文件(settings.yaml)的项目目录当前目录
--domain输入数据的领域,如 'space science';留空时从输入数据自动推断
--selection-method文档选择方法:all、random、auto、toprandom
--limit使用 random 或 top 选择时加载的 text units 数量15
--language处理使用的语言;与输入语言不同时 LLM 会翻译空(自动检测)
--max-tokens提示词生成的最大 token 数2000
--chunk-size从输入文档生成 text units 使用的 token 块大小200
--n-subset-maxauto 选择方法中要嵌入的文本块数量300
--kauto 选择方法中选取的文档数量15
--min-examples-required实体抽取提示词所需的最少示例数2
--discover-entity-types允许 LLM 自动发现并抽取实体类型;数据覆盖主题很多或高度随机时建议使用不启用
--output保存生成提示词的目录prompts

文档给出的两个示例:

python -m graphrag prompt-tune --root /path/to/project --domain "environmental news" \ --selection-method random --limit 10 --language English --max-tokens 2048 --chunk-size 256 --min-examples-required 3 \ --no-discover-entity-types --output /path/to/output

文档标注的最小配置运行方式(suggested):

python -m graphrag prompt-tune --root /path/to/project --no-discover-entity-types

示例中的/path/to/project/path/to/output是占位符,替换为你实际的项目目录和输出目录;如果已经在项目目录下运行,--root可省略(默认当前目录),--output省略时默认写入prompts目录。

内部流程:命令先加载输入数据,按chunk-size切成 text units,再用所选方法抽取样本,最后通过 LLM 调用与模板替换生成最终提示词。文档建议直接使用脚本默认值,按需再调整。

选择文档采样方法

--selection-method决定从 text units 中取什么样本来做提示词生成:

  • random:随机选取,默认且文档推荐;
  • top:取前 n 个 text units(配合--limit);
  • all:使用全部 text units,文档明确说只适合小数据集,通常不推荐;
  • auto:把 text units 嵌入低维空间后选取距质心最近的 k 个,适合大数据集,用于选取有代表性的样本(配合--n-subset-max--k)。

验证生成的提示词

运行结束后,检查输出目录(默认prompts/)中是否写入了三个提示词文件:

  • extract_graph.txt— 实体/关系抽取提示词;
  • summarize_descriptions.txt— 实体/关系描述汇总提示词;
  • community_report_graph.txt— 社区报告提示词。

文件名依据 CLI 实现,该实现会把三个生成结果写入输出目录,并在日志中输出Writing prompts to ...Prompts written to ...两行记录,可据此确认文件写入位置。

更新配置以使用新提示词

文档的 Modify Config 一节要求运行后修改settings.yaml中以下变量,让 index run 使用新提示词:

extract_graph: prompt: "prompts/extract_graph.txt" summarize_descriptions: prompt: "prompts/summarize_descriptions.txt" community_reports: prompt: "prompts/community_report.txt"

文档同时提醒:务必把路径更新为生成提示词的实际位置,上面示例使用默认prompts路径。这里有一处需要留意的差异:文档示例中写的是prompts/community_report.txt,而命令实际写入的文件名为community_report_graph.txt,且init生成的默认配置中community_reports使用的是graph_prompt: "prompts/community_report_graph.txt"。修改前请先查看输出目录里的真实文件名,再按实际名称填写,不要照抄可能与代码不一致的路径。

另外,如果--output保持默认的prompts,生成的三个文件名与init生成的默认配置所引用的路径一致,配置可能无需改动即可指向新提示词。

下一步

提示词就位后,就可以启动索引流水线:

graphrag index

关于settings.yaml各字段的更多配置项,见 配置文档;手动编辑提示词的进阶用法(各提示词支持的 token 替换位)见 Manual Prompt Tuning。

【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 13:21:46

低功耗开发入行地图:安卓与嵌入式功耗优化核心知识梳理

做功耗这行时间长了&#xff0c;经常有刚毕业或者想转方向的朋友问我&#xff1a;“低功耗开发到底是干什么的&#xff1f;是不是就是让手机待机时间长一点&#xff1f;”说实话&#xff0c;这个理解不算错&#xff0c;但离真实的岗位需求差得有点远。功耗优化不是某一项具体技…

作者头像 李华
网站建设 2026/9/11 13:18:09

G-Helper 完整指南:华硕笔记本三大核心控制与避坑验收清单

G-Helper 完整指南&#xff1a;华硕笔记本三大核心控制与避坑验收清单 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook…

作者头像 李华