尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

localGPT 提示词清单(Ground-Truth Prompt Inventory)全解:索引、检索、合成、Agent 与验证环节的硬编码提示词逐条拆解

发布时间:2026/9/13 18:04:08

资讯中心
01
ARTICLE

localGPT 提示词清单(Ground-Truth Prompt Inventory)全解:索引、检索、合成、Agent 与验证环节的硬编码提示词逐条拆解

localGPT 提示词清单(Ground-Truth Prompt Inventory)全解:索引、检索、合成、Agent 与验证环节的硬编码提示词逐条拆解
localGPT 提示词清单Ground-Truth Prompt Inventory全解索引、检索、合成、Agent 与验证环节的硬编码提示词逐条拆解【免费下载链接】localGPTChat with your documents on your local device using GPT models. No data leaves your device and 100% private.项目地址: https://gitcode.com/GitHub_Trending/lo/localGPT导读本文以 Documentation/prompt_inventory.md 这份提示词真相清单为骨架逐条展开 localGPT 代码库中所有硬编码的生成/校验提示词。你会看到每条提示词的完整原文、在源码中的精确位置与变量名、实际调用方式、输出解析逻辑以及它们在整个 RAG 流水线中所处的阶段。读完本文你将能在不翻阅全部源码的情况下定位、理解和修改任意一条提示词并了解项目规划的集中式提示词注册表迁移方案。这份清单是什么代码库中提示词的唯一真相源prompt_inventory.md的定位是Ground-Truth真相源清单所有在代码中硬编码的生成generation与校验verification提示词都被登记在案每条记录包含四个关键字段字段含义示例ID提示词的稳定标识供集中注册表迁移时使用overview_builder.defaultFile Lines提示词所在源码文件及行号rag_system/indexing/overview_builder.py12-21Variable / Builder源码中的变量名或构建函数名DEFAULT_PROMPTPurpose该提示词的用途说明为搜索路由生成一段文档概述清单按流水线阶段将全部提示词划分为7 大类别索引/上下文增强、检索/查询转换、流水线答案合成、Agent 经典循环、验证器、后端快速路由、杂项。这种按执行阶段而非文件位置的组织方式让读者能沿着一条用户查询的生命周期理解每一步 LLM 调用所承担的职责。清单还明确了编辑约定如果修改了代码中的提示词必须同步更新本清单当项目迁移到集中注册表后则应删除对应条目避免双源维护。此外文档末尾列出了两项待办To-Do一是验证ReActAgent.PROMPT_TEMPLATE是否覆盖了所有占位符二是待后端提示词移植后搜索 TS/JS 代码目前尚无前端提示词。1. 索引阶段提示词为入库内容增值索引阶段是文档进入知识库前的预处理环节。localGPT 在此阶段用 LLM 为文档生成概述、为分块生成上下文摘要、从分块中抽取知识图谱实体与关系这三类提示词构成了索引期全部 LLM 调用。1.1 文档概述生成overview_builder.default定义于 rag_system/indexing/overview_builder.py 的OverviewBuilder.DEFAULT_PROMPT完整原文如下You will receive the beginning of a document. In no more than 120 tokens, describe what the document is about, state its type (e.g. invoice, slide deck, policy, research paper, receipt) and mention 3-5 important entities, numbers or dates it contains. DOCUMENT_START: {text} OVERVIEW:该提示词服务于搜索时路由search-time routing后端路由器会读取每篇文档的概述判断用户问题是否与库内文档相关详见第 6 节。从源码可以确认以下实现细节OverviewBuilder.__init__默认模型为qwen3:0.6b默认只取文档前 5 个分块first_n_chunks5拼接作为输入并对文本做了[:5000]字符的安全截断生成结果会通过re.sub(rthink[^]*.*?/think, ...)剥离 Qwen 系模型可能输出的思维链标记概述以 JSONL 形式追加写入index_store/overviews/overviews.jsonl可通过out_path参数覆盖每条记录形如{doc_id: ..., overview: ...}。1.2 上下文增强Contextual Enrichmentcontextualizer.*对应 rag_system/indexing/contextualizer.py这是受 Anthropic 上下文检索Contextual Retrieval思路启发的实现由系统提示词 两条人类消息模板组成contextualizer.systemSYSTEM_PROMPT You are an expert at summarizing and providing context for document sections based on their local surroundings.一句话交代模型的本地上下文摘要专家角色contextualizer.local_contextLOCAL_CONTEXT_PROMPT_TEMPLATE用local_context.../local_context标签包裹当前分块周围的相邻分块文本由create_contextual_window按window_size构建窗口contextualizer.chunkCHUNK_PROMPT_TEMPLATE用chunk.../chunk标签包裹目标分块本身并给出 6 条指令——仅基于本地上下文、输出 2-5 句摘要、聚焦分块主题与相邻文本关系、涵盖整体主题主题/概念/相关信息、且只输出摘要本身。最终的人类消息由两条模板拼接而成并与系统提示词合并为单个完整提示词交给 Ollama。源码展示了分块文本的最终形态若摘要生成成功分块文本会被改写为Context: {summary}\n\n---\n\n{original_text}的形式原始文本与摘要同时存入metadata.original_text和metadata.contextual_summary。摘要还经过多层清洗剥离think块、剥离assistant标签、截取Answer:分隔符后的内容、只取首个非空行。enrich_chunks通过 rag_system/utils/batch_processor.py 的BatchProcessor分批处理并预估内存占用批大小默认为 10。1.3 知识图谱抽取graph_extractor.entities与graph_extractor.relationships对应 rag_system/indexing/graph_extractor.py 的两步式抽取且两步都要求 JSON 输出formatjsonentity_prompt实现在extract()内联构建要求从文本中抽取关键实体人、公司、地点返回仅含entities键的 JSON 对象字符串列表并要求短而具体。实体还需经过长度 50字符与括号符号的过滤relationship_prompt将清洗后的实体列表与原文一并给出要求返回仅含relationships键的 JSON 对象每个关系对象含source、target、label三个字段。源码会去重收集关系三元组并汇总为{entities: [...], relationships: [...]}字典当 LLM 返回无法解析的 JSON 时会打印警告并跳过该分块。整个抽取过程对每个分块依次执行是索引阶段代价较高的 LLM 调用之一。2. 检索阶段提示词把问题变形成可检索的形式检索阶段的三条提示词分别负责问题分解、HyDE 假设文档生成、知识图谱查询翻译全部位于 rag_system/retrieval/query_transformer.py。2.1 查询分解query_transformer.expand清单中 ID 为query_transformer.expand原文档标注行号10-26对应源码中的QueryDecomposer.decompose()方法——这是清单 ID 与代码实际类名不完全一致的实例阅读源码时需注意这一映射关系。该提示词是本地仓库中体量最大的提示词包含系统指令要求返回 RFC-8259 合规的 JSON 对象、schema 含requires_decomposition/reasoning/resolved_query/sub_queries四个字段、上下文解析规则代词/省略/简写消解、分解触发条件多部件问题、比较/最高级、时序问题、枚举、实体集比较与不触发条件单一事实需求、需澄清的歧义问题、六条新示例含代词归一化、无明确先行词的保守处理、时序比较、枚举、多公司对比、多部件问题以及被注释掉的遗留示例块。实现细节值得注意chat_history只取最近 5 轮用户问题并以|分隔拼接输入负载以json.dumps({query: ..., chat_history: ...}, indent2)序列化进提示词解析时先剥离可能的json代码块标记sub_queries为空时回退为resolved_query或原始查询最终去重并强制截断为前 10 条。2.2 HyDE 假设文档hyde.hypothetical_docHyDEGenerator.generate()中内联构建原文为Generate a short, hypothetical document that answers the following question. The document should be dense with keywords and concepts related to the query. Query: {query} Hypothetical Document:HyDEHypothetical Document Embeddings的思路是先让 LLM 针对查询虚构一篇关键词密集的假设文档再用该文档的向量去检索真实文档从而提高语义召回。该提示词刻意强调dense with keywords and concepts正是为了让假设文档能命中更多真实语料。2.3 知识图谱查询翻译graph_query.translateGraphQueryTranslator._generate_translation_prompt()要求 LLM 扮演查询规划专家把用户问题转成面向知识图谱的结构化 JSON 查询输出含start_node查询中的已知实体与edge_label被询问的关系并以(Tim Cook) -[IS_CEO_OF]- (Apple)为例说明图的节点-有向边结构。调用时同样使用formatjson解析失败时返回空字典由上层如agent/loop.py的_run_graph_query回退到普通检索。3. 流水线答案合成提示词retrieval_pipeline.synth_final定义于 rag_system/pipelines/retrieval_pipeline.py 的_synthesize_final_answer()这是单查询路径的最终答案生成器。提示词包含一套完整的 6 条指令directives逐条评估检索片段与原始问题的相关性忽略无关噪音仅使用相关片段中的信息合成答案片段相互矛盾时显式说明矛盾片段缺乏所需信息时必须逐字回复I could not find that information in the provided documents.给出详尽、结构良好的答案可用段落或项目符号数字/名称须按原文出现无严格句数上限除非触发第 4 条可附加一行明确标注为 General knowledge 的通用知识句否则不得引入外部知识。输出格式固定为Answer:\nyour answer here检索片段用分隔线夹在Retrieved Snippets块中。实现上通过stream_completion逐 token 流式返回并借助event_callback(token, ...)转发给上层做 SSE 推送——这与前端逐字流式展示体验直接相关。4. Agent 经典循环提示词rag_system/agent/loop.pyrag_system/agent/loop.py 实现了带语义缓存、路由、并行子查询、合成与验证的完整 Agent 循环清单登记了其中的 4 条提示词。4.1agent.loop.initial_thought历史格式化与首轮思考原文档标注157-180对应_format_query_with_history()与_triage_query_async()两处。历史格式化提示词将最近对话渲染为User: ...\nAssistant: ...列表并强调历史仅用于消解代词与后续问题。随后的_triage_query_async是三段式路由先尝试基于文档概述的快速路由_route_via_overviews见 4.4命中即返回有历史记录时默认rag_query视为追问最后才回退到 LLM 分类。4.2agent.loop.verify_pathLLM 回退分类原文档标注190-205即_triage_query_async中的回退分类提示词要求模型从rag_query文档内容问题、direct_answer通用知识/寒暄、graph_query知识图谱事实关系中恰好选择一类并以{category: your_choice}的 JSON 返回。提示词特别强调关于知名公司、人物与事实的通用知识问题应选择direct_answer。JSON 解析失败时兜底为rag_query。4.3agent.loop.compose_sub子答案合成原文档标注506-542即并行子查询全部完成后compose_from_sub_answersTrue时的compose_prompt要求合成器阅读每个子答案仅用子答案中的信息撰写对原始问题的最终回答包含比较性问题时明确陈述结果如 A B并引用具体数字无法回答的部分须明说答案保持 ≤ 5 句、第三人称、事实性口吻。输入为ORIGINAL QUESTION与序列化的SUB-ANSWERS (JSON)列表同样以流式逐 token 生成。子查询的引用文档会按chunk_id去重每个子查询最多保留 5 条引用。4.4agent.loop.router基于概述的路由决策原文档标注648-660即_route_via_overviews()内的router_prompt在仅有文档概述上限 40 条时让模型判断查询属于 A) 寒暄/社交、B) 通用知识、C) 文档内容三类并映射为{category: direct_answer}或{category: rag_query}。该提示词是目前唯一带占位示例文本Documents available: Invoices, DeepSeek-V3 research papers的提示词——这是为演示硬编码的占位内容读者在实际使用时应替换为自己的文档类型。5. 验证器提示词verifier.fact_check定义于 rag_system/agent/verifier.py 的Verifier.verify_async()是严格的 JSON 格式接地grounding验证器。提示词要求模型扮演自动化事实核查员判断答案是否被上下文完全支持并输出单行 JSON。提示词内置了 3 组 few-shot 示例示例查询结论说明1天空是什么颜色{verdict: SUPPORTED, is_grounded: true, reasoning: ..., confidence_score: 100}上下文直接支持答案2苹果和橙子种在哪里{verdict: NOT_SUPPORTED, is_grounded: false, reasoning: ..., confidence_score: 80}上下文提到果园但未提橙子/果林3流程需要多长时间{verdict: NEEDS_CLARIFICATION, is_grounded: false, reasoning: ..., confidence_score: 70}答案遗漏了第二步的 5 天输入格式统一为QUERY、CONTEXT、ANSWER、OUTPUT四段标签上下文被截断为4000 字符上限。返回结果封装为VerificationResult(is_grounded, reasoning, verdict, confidence_score)。在agent/loop.py的验证环节只有confidence_score 0时才会向答案追加[Confidence: xx%]且当is_grounded为假或分数低于 50 时追加[Warning: Low confidence...]分数为 0 通常意味着 JSON 解析失败此时不追加任何标注。6. 后端快速路由提示词backend.router对应 backend/server.py 的_route_using_overviews()属于**重型处理之前的快速路径fast path**决策。该提示词要求模型在USE_RAG与DIRECT_LLM之间二选一并内置了 5 条规则任一概述与问题明显相关实体、数字、地址、日期、金额、公司、技术术语→USE_RAG文档类操作总结、分析、解释、提取、查找→USE_RAG仅寒暄Hi、Hello、Thanks→DIRECT_LLM与文档无关的纯数学/世界知识 →DIRECT_LLM拿不准时 →USE_RAG。还附带了 6 条决策示例如 What invoice amounts are mentioned? → USE_RAG、What is 22? → DIRECT_LLM并要求只输出一个词。概述来自索引阶段生成的overviews.jsonl加载上限为 40 条server.py在读取时同样做了[:40]截断。7. 杂项vision.placeholder清单最后一条vision.placeholder位于 rag_system/utils/ollama_client.py 的__main__自测块中提示词仅为What color is this image?配合一张 100×100 的黑色占位图用于验证多模态VLM能力——测试前需要先ollama pull llava之类的视觉模型。它不参与生产流水线只是客户端的连通性自检。8. 待办事项与下一步向集中式注册表迁移清单末尾明确了两项待办与一个规划方向待办 1验证ReActAgent.PROMPT_TEMPLATE是否覆盖了每个占位符——部分早期行可能需要显式 ID为集中注册表做准备待办 2待后端提示词移植完成后搜索 TS/JS 代码中的提示词目前前端尚无下一步创建rag_system/prompts/registry.yaml将上述每条提示词以完全一致的 ID迁移为键值条目并使用前文提议的辅助函数逐步更新调用方。当前各提示词仍以模块级常量如DEFAULT_PROMPT、SYSTEM_PROMPT或方法内联 f-string 的形式分散在rag_system/indexing/、rag_system/retrieval/、rag_system/pipelines/、rag_system/agent/与backend/目录中。这份清单正是迁移前最重要的映射基准——本文收录的每条提示词原文与调用上下文均可作为未来registry.yaml条目的默认值与调用方改造的验收依据。附提示词全貌速查表ID文件变量/构建处输出格式用途overview_builder.defaultrag_system/indexing/overview_builder.pyDEFAULT_PROMPT纯文本≤120 token生成文档概述供路由contextualizer.systemrag_system/indexing/contextualizer.pySYSTEM_PROMPT—设定摘要专家角色contextualizer.local_context同上L14-L16LOCAL_CONTEXT_PROMPT_TEMPLATE—包裹相邻分块窗口contextualizer.chunk同上L18-L26CHUNK_PROMPT_TEMPLATE纯文本2-5 句为目标分块生成上下文摘要graph_extractor.entitiesrag_system/indexing/graph_extractor.pyentity_promptJSON{entities: [...]}抽取实体graph_extractor.relationships同上L54-L59relationship_promptJSON{relationships: [...]}抽取关系三元组query_transformer.expandrag_system/retrieval/query_transformer.pyQueryDecomposer.decompose()JSON4 字段 schema查询分解与消解hyde.hypothetical_doc同上L299-L302HyDEGenerator.generate()纯文本生成假设文档做向量检索graph_query.translate同上L309-L319_generate_translation_prompt()JSON{start_node, edge_label}翻译为知识图谱查询retrieval_pipeline.synth_finalrag_system/pipelines/retrieval_pipeline.py_synthesize_final_answer()Answer:\n...流式基于已核验事实合成答案agent.loop.initial_thoughtrag_system/agent/loop.py_format_query_with_history/_triage_query_async纯文本/JSON历史格式化与首轮分类agent.loop.verify_path同上L192-L208回退分类提示词JSON{category: ...}LLM 回退路由agent.loop.compose_sub同上L510-L535compose_prompt纯文本≤5 句流式由子答案合成最终答案agent.loop.router同上L652-L666router_promptJSON{category: ...}基于概述的路由决策verifier.fact_checkrag_system/agent/verifier.pyverify_async()单行 JSON答案接地性验证backend.routerbackend/server.py_route_using_overviews()单个词USE_RAG/DIRECT_LLM重型处理前的快速路由vision.placeholderrag_system/utils/ollama_client.py__main__自测块纯文本VLM 连通性自检注意清单中标注的部分行号与当前源码实际行号存在小幅偏移如overview_builder.py实际为L13-L19这是文档更新与代码演进的时间差所致如需精确定位建议以本文引用的源码链接为准并在修改提示词后按清单的编辑约定同步更新prompt_inventory.md。【免费下载链接】localGPTChat with your documents on your local device using GPT models. No data leaves your device and 100% private.项目地址: https://gitcode.com/GitHub_Trending/lo/localGPT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。