解构 prompts.chat 的 PROMPTS.md:一个社区 Prompt 语料库的文件结构、语法与维护管线 解构 prompts.chat 的 PROMPTS.md一个社区 Prompt 语料库的文件结构、语法与维护管线【免费下载链接】prompts.chatf.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.项目地址: https://gitcode.com/GitHub_Trending/aw/prompts.chatPROMPTS.md 是 prompts.chat前身为 Awesome ChatGPT Prompts的核心数据档案一个以纯 Markdown 维护的公开 Prompt 全集当前规模约 14.4 万行、收录数百条社区贡献的提示词。本文以该文件为骨架逐层拆解它的条目结构、提示词写作范式角色设定、模拟器协议、变量占位符、结构化 Prompt以及背后的自动化同步管线读完后可独立读懂该语料库的任意条目并能用仓库中的 prompts.csv 导出格式与数据管线对其做程序化消费。一、PROMPTS.md 在项目中的定位prompts.chat 是一个分享、发现、收集 Prompt的开源平台README 中将其定位为 f.k.a. Awesome ChatGPT Prompts并明确 PROMPTS.md 与 prompts.csv 并列为项目的两大静态数据格式见 README.md 的 Data Formats 表格。两者的关系是同一份数据的两种投影PROMPTS.md面向人类与 LLM 阅读每条 Prompt 以可折叠的 Markdown 块组织保留贡献者署名prompts.csv面向机器批量处理同一批 Prompt 以固定五列 CSV 呈现act,prompt,for_devs,type,contributor。许可证方面LICENSE 声明 Prompt 内容与数据prompts.csv、PROMPTS.md 及所有用户提交的 Prompt以CC0 1.0 公共领域授权提供即可以任意用途复制、修改与分发这也解释了为什么该文件敢以单一巨型 Markdown 的形式全量开源而不受维护困扰。文件头部即为全集的元信息# Awesome ChatGPT Prompts A curated list of prompts for ChatGPT and other AI models. ---其后是逐条追加的 Prompt 块顺序与提交时间一致由维护脚本按 CSV 行序同步见后文管线章节。二、条目块结构PROMPTS.md 的Schema整个文件可以看作一个重复的、强约束的条目块序列。每个条目块固定由 6 个部分组成以下是一个完整样例Linux Terminal 条目PROMPTS.md 第 20-31 行details summarystrongLinux Terminal/strong/summary ## Linux Terminal Contributed by [f](https://github.com/f) md I want you to act as a linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. do not write explanations. do not type commands unless I instruct you to do so. when i need to tell you something in english, i will do so by putting text inside curly brackets {like this}. my first command is pwd各部分的职责与生成逻辑如下渲染逻辑可对照维护脚本 scripts/generate-contributors.sh 中的generate_prompt_block函数该函数正是按此模板拼接字符串组成部分作用生成规则details开标签让条目在支持 HTML 的 Markdown 渲染器如 GitHub中默认折叠固定模板summarystrong标题/strong/summary折叠态下仅露出标题便于在 14 万行文件中扫读标题取自 CSV 的act字段## 标题展开后的 H2 锚点标题与 summary 同名Contributed by ...贡献者署名GitHub 用户名渲染为个人主页链接邮箱类账号渲染为anonymous见format_contributor_linksscripts/generate-contributors.shmd围栏代码块承载 Prompt 全文保持逐字符保真代码块语言标签按类型映射TEXT→md、JSON→json、YAML→yaml/details闭合折叠块固定模板选择details/summary而非普通 H2 列表的原因在于单文件可读性数百条 Prompt 若全部展开页面将不可浏览折叠后每个条目只占一行视觉空间而代码块语法高亮又保证了复制 Prompt 时的格式保真。维护脚本对条目块的增删改全部基于标题锚定的正则替换这一约束反过来解释了模板为何必须严格一致。更新某个条目时脚本以如下正则定位并整体替换目标块scripts/generate-contributors.shpattern rfdetails\nsummarystrong{re.escape(act)}/strong/summary.*?/details\n\n new_content, count re.subn(pattern, generate_prompt_block(row), content, flagsre.DOTALL)也就是说details\nsummarystrong标题/strong/summary这一前缀是机器可识别的唯一键——标题act即条目 ID。这也意味着同名条目会被覆盖更新新增条目只会追加到文件末尾。三、Prompt 内容范式从语料中提炼的四类写法PROMPTS.md 的价值不止于收录其条目本身构成一份可研究的提示词写作语料。通读全文可归纳出四类高复用范式。3.1 角色扮演范式I want you to act as ...文件中最主流的结构覆盖 Advertiser、Storyteller、Debater、Screenwriter、Novelist、Poet、Recruiter、Dentist、Historian 等大量条目。典型骨架为三段式角色设定 → 行为契约 → 首个请求锚点。以 Job InterviewerPROMPTS.md 第 53-57 行为例I want you to act as an interviewer. I will be the candidate and you will ask me the interview questions for the ${Position:Software Developer} position. I want you to only reply as the interviewer. Do not write all the conversation at once. I want you to only do the interview with me. Ask me the questions and wait for my answers. Do not write explanations. Ask me the questions one by one like an interviewer does and wait for my answers. My first sentence is Hi值得注意的两个工程化细节Do not write explanations / only reply ... and nothing else式的输出面约束反复出现用于压制模型的解释癖让输出可直接作为下游输入末尾的 My first request is ... 锚点给出第一条真实输入把模型锁定进入角色后的第一轮对话避免模型先长篇自我介绍。3.2 模拟器范式把模型当作终端/解释器Linux Terminal、JavaScript Console、SQL Terminal、Python Interpreter、Text Based Adventure Game 等条目共享同一套模拟器协议以 JavaScript ConsolePROMPTS.md 第 68-69 行为例I want you to act as a javascript console. I will type commands and you will reply with what the javascript console should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. do not write explanations. do not type commands unless I instruct you to do so. when i need to tell you something in english, i will do so by putting text inside curly brackets {like this}. my first command is console.log(Hello World);该协议的四个要素可逐条拆解单一代码块输出only reply with ... inside one unique code block保证用户端可一键复制执行结果禁止越权do not type commands unless I instruct you模型只显示不执行避免幻觉出用户没输入过的命令带外通道putting text inside curly brackets {like this}花括号文本被约定为用户对模拟器的元指令而非模拟器内部输入这是纯文本环境下的极简通道协议冷启动命令my first command is ...立即进入第一轮交互。SQL Terminal 条目则进一步在 Prompt 内内联了数据库 SchemaThe database contains tables named Products, Users, Orders and Suppliers相当于给虚拟终端预置了可查询的数据契约使模拟结果更自洽。3.3 变量占位符${name:default}与{name}两种写法语料中存在两套占位符写法它们恰好与 prompts.chat 平台的变量系统一一对应带默认值的${变量:默认值}语法。例如 Job Interviewer 中的${Position:Software Developer}、English Pronunciation Helper 中的${Mother Language:Turkish}。平台运行时的解析逻辑在 src/components/prompts/variable-fill-modal.tsx 中正则与语法完全吻合// Parse ${variablename:defaultvalue} or ${variablename} patterns const regex /\$\{([^:}])(?::([^}]*))?\}/g;解析后弹窗列出所有唯一变量及其默认值用户可直接替换并一键复制/运行未替换时冒号后的默认值生效。换言之${Position:Software Developer}这类条目开箱即用——直接粘贴进 ChatGPT 也会把Software Developer作为岗位名使用。裸占位符{name}语法。如 Character 条目PROMPTS.md 第 147 行I want you to act like {character} from {series} ...。这类写法面向人工填槽。平台侧对它的态度由 src/lib/variable-detection.ts 定义——该工具会扫描[[name]]、{{name}}、[NAME]、{NAME}、NAME、%NAME%等 7 类变体dollar_curly即${name}视为已合规、不告警并在提示词编辑界面建议作者将其规范化为${name:default}格式。因此阅读 PROMPTS.md 时可见到两种语法并存是存量条目 渐进迁移的自然结果。3.4 结构化 PromptC.R.A.F.T. 与 Agent 风格文件后半段出现了明显更长、更接近工程文档的条目标志 Prompt 从一句话向系统化结构演进。Prompt Generator 条目PROMPTS.md 第 835-878 行给出了一套名为C.R.A.F.T.的 Prompt 元结构要求生成器产出的每条 Prompt 都包含五个分区分区含义写作要点原文摘译Context上下文说明需要该 Prompt 的场景帮助模型确定应参考的知识域Role角色定义为拥有 20 年以上相关经验的行业领先专家Action行动编号化的顺序步骤列表是模型应遵循的操作序列Format格式产出的结构组织方式散文、表格、代码、Markdown 列表等Target Audience目标受众人口的地理、语言、阅读水平、偏好等条目还附带一个完整的 C.R.A.F.T. 示例月度目标指南以及先确认主题 → 追问细节 → 必要时用[my placeholder]留空 → 直接输出 Prompt 不解释的执行流ACTION 1-7 步。这是典型的few-shot 流程约束组合可作为编写元提示词prompt about prompts的参照模板。Agent/Skill 风格条目。文件末尾PROMPTS.md 第 143938-143937 行附近收录了一条以SKILL.md为产物的 repository-scaffolder 技能定义YAML frontmattername/description 四步指令流水线解析项目简报 → 建立架构布局 → 应用非功能标准 → 交付完整工件并内置了${project_name}、${one_sentence_description}等参数化字段与 No Questions Policy对缺失参数做行业默认假设而非反问。这类条目说明该语料库的边界已从聊天提示词延伸到Agent 技能规范与仓库中plugins/claude/prompts.chat/skills/下的技能查找功能在主题上呼应。四、PROMPTS.md 与 prompts.csv 的字段同构对比文件与 prompts.csv 前若干行如 Ethereum Developer、Linux Terminal 两条可确认二者行序一致、内容同源。CSV 表头为act,prompt,for_devs,type,contributor各列的取值逻辑可由线上 CSV 端点 src/app/prompts.csv/route.ts 的源码精确还原列生成规则源码依据actPrompt 标题CSV 转义引号内加倍为prompt内容全文含逗号/引号/换行的字段整体加引号for_devscategory.slug coding ? TRUE : FALSE即按分类而非内容判断是否为开发者向typestructuredFormat为 JSON 或 YAML 时输出STRUCTURED否则TEXTcontributor主作者在前、协作者逗号分隔GitHub OAuth 用户用githubUsername其余用用户名或邮箱src/app/prompts.csv/route.ts 的getUserIdentifier管理员导入端点 src/app/api/admin/import-prompts/route.ts 定义了type列到数据库字段的完整映射JSON/YAML→STRUCTURED记录structuredFormatIMAGE/VIDEO/AUDIO各自映射为多模态类型其余回落TEXT。这解释了为何 PROMPTS.md 中的代码块语言标签只出现md/json/yaml——当前语料以 TEXT 与 STRUCTURED 两类为主。除 CSV 外平台还提供 JSON 导出 src/app/prompts.json/route.ts默认每页 50 条、上限 100 条DEFAULT_LIMIT 50、MAX_LIMIT 100第 13-14 行支持?pagelimitfull_contenttrue参数且内容默认截断为 500 字符预览CONTENT_PREVIEW_LENGTH 500并基于总条数 最近更新时间生成 ETag 返回 304 以节省带宽第 19-23、60-69 行。三个导出面Markdown 文件、CSV 端点、JSON API共同覆盖了人读、批处理、应用集成三种消费场景。五、维护管线PROMPTS.md 如何与站点自动同步PROMPTS.md 不靠人工编辑而是由 scripts/generate-contributors.sh 驱动的同步流程维护其完整链路为用户提交/编辑 Promptprompts.chat 站点 │ ▼ 站点数据库Prompt 表含软删除与 unlisted 标记 │ ▼ GET /prompts.csv ──► 只导出 isPrivatefalse、isUnlistedfalse、deletedAtnull 的条目 │ ▼ curl 拉取远端 CSV → 与本地 prompts.csv 按 act 求差集新增/更新/删除 │ ▼ 逐条更新 PROMPTS.md 条目块 重写 CSV 行 │ ▼ 每条 Prompt 一个 git commit作者贡献者含 Co-authored-by关键实现细节差集判定scripts/generate-contributors.sh以act为键prompt或contributor字段变化换行符归一化后比较判定为更新本地有而远端没有的判定为删除对应站点侧被 unlist/删除的条目删除优先、更新次之、新增最后第 253-321 行删除用正则整体移除条目块更新做原位替换新增追加到文件末尾每步都重写 CSV 并单独提交提交归属还原git_commitscripts/generate-contributors.sh通过GIT_AUTHOR_NAME/EMAIL环境变量把每次提交归属到实际贡献者协作者写入Co-authored-bytrailer邮箱类贡献者映射到users.noreply.github.com形式署名脱敏format_contributor_links用邮箱正则识别真实邮箱一律渲染为anonymous避免署名泄露符合 GitHub 用户名正则^A-Za-z0-9){0,38}$的才渲染为主页链接幂等性git_commit在git diff --cached --quiet为空时直接返回 Falseno changes, skipping重复运行脚本不会产生空提交。脚本末行的Review with: git log --oneline prompts.csv PROMPTS.md也提示了该管线的产物验证方式两个文件应始终以每个 Prompt 一个提交的节奏成对变化。从这一结构可以推断PROMPTS.md 的行数增长与 git 历史中的 Add/Update/Remove prompt 提交一一对应读者可用该日志追溯任一条目如 Linux Terminal的提交者与修改史。六、如何使用这份语料库基于文件结构与配套工具链给出三类典型用法1. 人类浏览。直接打开 PROMPTS.md渲染后条目默认折叠或按标题在编辑器内检索由于每个条目前缀均为summarystrong标题/strong/summary用正则summarystrong关键词/strong即可精确定位条目块。语料主题覆盖编程Ethereum Developer、SQL Terminal、JavaScript Console、语言学习English Translator、Spoken English Teacher、创作Novelist、Poet、Rapper、职业顾问Recruiter、Career Counselor、Interviewer与娱乐模拟Football Commentator、Text Based Adventure Game、AI Trying to Escape the Box等方向可按##标题清单快速建立全库地图。2. 机器消费。优先取 prompts.csv或站点 CSV/JSON 端点而非解析 MarkdownCSV 已是规范化数据标题、内容、开发者向标记、类型、贡献者五列可直接导入 pandas/DataFrame 做统计、去重或向量化检索。若需程序解析 PROMPTS.md 本身可按第二节所述模板以details…/details块切分取summary内文本为标题、首个围栏代码块为内容。3. 变量化改写。把静态条目改造为参数化模板时以${name:default}为目标语法平台运行时识别格式见 src/components/prompts/variable-fill-modal.tsx并可借助 src/lib/variable-detection.ts 列出的 7 类正则自查是否还有{{x}}、[X]、X等未规范占位符残留。七、小结PROMPTS.md 是一个数据即文档的典型案例它既没有传统文档的章节结构又凭借严格的条目块模板details折叠 标题锚点 代码块保真 署名行让 14 万行的社区语料保持机器可解析、人可扫读、git 可审计。其条目内容则沉淀了提示词工程的几种基础范式——角色设定与输出面约束、带外通道的模拟器协议、带默认值的变量占位符、以及 C.R.A.F.T. 式的结构化元提示词——而 scripts/generate-contributors.sh 与 src/app/prompts.csv/route.ts、src/app/prompts.json/route.ts 构成的同步与导出管线保证了这份语料与线上站点双向一致、CC0 授权下可自由再分发。对提示词工程研究者与 Agent 开发者而言该文件与其配套数据格式共同构成了一个可直接检索、直接嵌入的开源 Prompt 基准语料库。【免费下载链接】prompts.chatf.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.项目地址: https://gitcode.com/GitHub_Trending/aw/prompts.chat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考