- AI 应用
- 提示工程
- 人工智能
- 前端
【免费下载链接】ChatGPT-Shortcut
Stop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor · Русский 한국어 العربية हिन्दी ไทย | 别再从头写提示词:现成的拿来就用,好用的收进自己的库
ChatGPT-Shortcut(AI Short)是一个可搜索的提示词库,支持 ChatGPT、Claude、Gemini 与 Cursor 等主流模型。在登录后,你可以创建属于自己的提示词并保存到账户中随时取用——自定义提示词会出现在「我的收藏」(My Collection / Koleksi Saya)视图中。本文以官方印尼语文档《Prompt Kustom》为骨架,结合仓库前端源码(表单实现、API 调用链、缓存策略),完整讲解自定义提示词的创建、编辑、删除、社区分享、导入导出与团队协作流程。读完本文,你将能熟练地管理个人提示词资产,并通过 JSON 备份/恢复实现跨设备与跨成员的数据迁移。
功能总览:自定义提示词在项目中的定位
在 ChatGPT-Shortcut 中,提示词数据分为三类来源,前端通过统一的getPrompts批量接口按类型取数(见 src/api/prompts.ts):
- cards:项目内置的精选提示词库(本地
prompt_*.json数据); - commus:社区用户分享的提示词;
- userprompts:你本人创建的自定义提示词。
自定义提示词属于第三类,它和收藏(favorites)共同组成「我的收藏」视图。在 src/components/user/MySpace.tsx 中,items被按type区分为prompt(自建)与favorite(收藏),自建提示词卡片自带编辑(铅笔)与删除按钮,而收藏卡片则带移除收藏按钮。整个创建/编辑/删除流程由 src/hooks/useUserPrompt.tsx 这一自定义 Hook 封装,对应 API 定义在 src/api/prompts.ts 中(submitPrompt/updatePrompt/deletePrompt)。
创建提示词(Buat Prompt)
操作步骤
- 登录后,点击页面顶部的「创建提示词」按钮;
- 在弹出的「创建提示词」对话框中填写字段;
- 设置底部的「是否愿意将该提示词分享到公开页面?」开关(默认开启,关闭即为私有);
- 点击「创建提示词」提交。
表单字段说明
创建对话框的字段结构与 src/components/user/modal/PromptFormModal.tsx 完全对应:
| 字段 | 是否必填 | 说明 | 源码约束 |
|---|---|---|---|
| 提示词名称(title) | 必填 | 提示词的名称 | 校验规则required |
| 提示词内容(description) | 必填 | 提示词主体;显示时方括号[...]内的文本会被高亮为占位符 | 校验规则required,并参与promptLength计算 |
| 作用/用途(remark) | 可选 | 一句话描述提示词的用途 | Input,maxLength=100 |
| 备注说明(notes) | 可选 | 来源、其他语言版本或补充说明 | Input.TextArea,maxLength=2000 |
| 分享开关(share) | - | 是否发布到公开的社区页面 | 创建时默认share: true |
从源码看,新建提示词的提交逻辑位于submitPrompt(src/api/prompts.ts),它向/userprompts发送POST请求,payload 为:
{ title: values.title, description: values.description, remark: values.remark, notes: values.notes, share: values.share, promptLength: values.description.length, // 提示词内容长度,随请求一并上报 }提交成功后调用clearMySpaceCache()使「我的收藏」数据立即失效并重新拉取。前端侧的addPrompt(src/hooks/useUserPrompt.tsx)在请求成功后还会强制refreshUserAuth()刷新登录态数据,确保新增的提示词立刻出现在收藏视图中。
一个完整的示例
官方文档给出的「每日站会更新生成器」示例非常典型,充分体现了占位符写法的用法:
- 名称:Standup Update Generator
- 内容:You are a concise communication assistant. Turn the following notes into a daily standup update with three sections — Yesterday, Today, Blockers. Keep each bullet short and outcome-focused: [my raw notes]
- 用途:把凌乱的笔记整理成干净的站会更新
- 备注:在早间站会前运行
其中[my raw notes]即占位符——使用提示词时,把方括号内的内容替换成你的实际输入即可。
编辑与删除提示词
编辑
在「我的收藏」视图中,点击自建提示词卡片上的编辑(铅笔)按钮,即可打开「编辑提示词」对话框。你可以:
- 修改名称、内容、用途/作用与备注;
- 切换公开/私有分享状态;
- 点击「保存」提交更新。
编辑对应的接口是updatePrompt(src/api/prompts.ts),向/userprompts/{id}发送PUT请求,提交字段与创建时一致。注意两个关键的缓存清理动作:更新成功后,代码会先removeCache(getPromptCacheKey("userprompts", id))清掉该提示词的单项缓存,再clearMySpaceCache()使收藏列表失效,从而保证界面上立即展示最新内容。
删除
在编辑对话框中点击「删除」即可删除。删除不可撤销,请谨慎操作。删除前会弹出确认弹窗——confirmRemovePrompt(src/hooks/useUserPrompt.tsx)使用modal.confirm二次确认,点击确认后才调用removePrompt执行真正的删除。
删除接口deletePrompt(src/api/prompts.ts)向/userprompts/{id}发送DELETE请求,同样会清理单项缓存与「我的收藏」缓存。此外,源码在getPrompts中还有一个值得注意的兜底机制:当已收藏的社区提示词被原作者取消分享或删除后,缓存会被标记为_unavailable: true(原因unshared),用户仍可在一年的缓存期内访问之前缓存的内容(见 src/api/prompts.ts),这避免了收藏突然"消失"的体验断层。
分享到社区
创建或编辑时,底部的「是否愿意将该提示词分享到公开页面?」开关控制可见性:
- 开启(默认):提示词会出现在社区提示词页面,其他用户可以查看并收藏它;
- 关闭:私有,仅自己可见。
分享状态可随时切换。社区页面的底层实现是getCommPrompts(src/api/prompts.ts),它调用/userprompts接口,支持分页(pagination[page]/pagination[pageSize])、排序(如按upvoteDifference:desc)以及关键词搜索(对description、title、remark三个字段做$containsi模糊匹配,即社区页的"最新发布 / 最多点赞 / 关键词搜索"三种能力)。
社区提示词支持投票机制:voteOnUserPrompt(src/api/prompts.ts)向/userprompts/{promptId}/vote发送POST,携带action: "upvote" | "downvote",并在成功后同步更新本地的赞/踩计数与列表缓存。需要留意:收藏一条社区提示词相当于自动为它投了一票赞(这一规则在社区提示词文档中有明确说明)。另外,把社区提示词"转为私有"的操作在 MySpace.tsx 中实现——它会把社区提示词的内容复制为新私有提示词(备注自动标注"从社区提示词转换(原ID: xx)"),然后从收藏中移除原社区项,适合社区内容被作者下架后想保留副本的场景。
导出提示词(备份)
导出是防止数据丢失的推荐手段。步骤:
- 进入「我的账户」页面,找到「数据管理 →导出提示词」;
- 点击「导出数据」按钮;
- 系统生成 JSON 文件并自动下载。
导出的内容包含:
- 提示词的名称、内容、用途/作用与备注;
- 分享状态(公开/私有);
- 你的收藏列表、收藏排序以及自定义标签。
官方文档明确建议定期导出以防数据丢失。这套导出/导入能力与「我的账户」页面的数据管理模块(清除缓存、导出提示词、导入提示词)绑定在一起,相关说明可参见账户管理文档。
导入提示词与团队协作
导入规则
从 JSON 文件导入提示词与收藏:
- 进入「我的账户」→「数据管理 →导入提示词」;
- 点击「导入数据」按钮;
- 选择 JSON 文件;
- 系统自动合并数据:按标题去重(标题相同视为重复);ID 属于其他账户的提示词自动设为私有。
团队协作工作流
官方文档给出了一套推荐的在团队内共享提示词的流程:
- 筛选与分享:导出后,手动移除自己的收藏列表,或筛选出真正要分享的提示词,再把 JSON 文件发给团队成员导入;
- 隐私保护:导入的提示词如果归属于他人(ID 不属于当前账户),会被自动设置为私有,从而保证每个成员的数据相互隔离、互不串扰。
这套设计意味着 JSON 文件既是备份格式,也是跨账户/跨团队的传输协议——导入端会自动把"别人写的"提示词降级为私有,不会未经授权就把内容发布到社区。
从源码看数据一致性:缓存与「我的空间」联动
自定义提示词之所以在创建/编辑/删除后能立刻在「我的收藏」中正确显示,得益于前端一套精细的缓存联动策略:
- 「我的收藏」数据来源于
getMySpace()(src/api/myspace.ts),它请求/myspace接口,使用标准 HTTPIf-None-Match/ETag做条件请求:服务端返回304时只续期缓存,200时更新缓存并按updatedAt清理过期的提示词单项缓存;无缓存时遇到瞬时失败会降级返回旧缓存,401则绝不返回缓存(避免"僵尸登录"); - 每次对提示词的增删改都会调用
clearMySpaceCache()(src/api/myspace.ts),移除 MySpace 缓存及其 ETag,迫使下一次进入「我的收藏」时重新拉取; getPrompts("userprompts", ids)走/userprompts/favorbulk批量接口(src/api/prompts.ts),并对已缓存的提示词做条件性续期(extendCacheIfNeeded),减少不必要的网络请求;同时用"进行中请求去重"(dedupe)避免同一批 ID 被并发触发多次校验。
配合「我的收藏」视图提供的类型筛选(全部 / 提示词 / 收藏)、自定义标签筛选、Ctrl+K快捷搜索与拖拽排序(排序通过updateMySpaceOrder调/favorites/myspace-order保存,失败时回滚到原顺序),自定义提示词最终沉淀为一套完整、可迁移的个人提示词管理体系。关于收藏与标签管理的更多细节,可参考我的收藏文档。
相关文档
- 我的收藏(Koleksi Saya):收藏与标签管理
- 社区提示词(Prompt Komunitas):分享与投票
- 账户管理(Manajemen Akun):登录与设置
- AI 应用
- 提示工程
- 人工智能
- 前端
【免费下载链接】ChatGPT-Shortcut
Stop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor · Русский 한국어 العربية हिन्दी ไทย | 别再从头写提示词:现成的拿来就用,好用的收进自己的库
相关推荐
ChatGPT-Shortcut 自定义提示词完全指南:创建、编辑、社区分享与 JSON 备份导入导出
ChatGPT Shortcut 自定义提示词完全指南:创建、编辑、社区分享与 JSON 备份导入导出 本文围绕 ChatGPT Shortcut 的「自定义提
AI 应用提示工程人工智能前端ChatGPT-Shortcut 自定义提示词实战:创建、编辑、社区共享与 JSON 导入导出的完整实现解析
ChatGPT Shortcut 自定义提示词实战:创建、编辑、社区共享与 JSON 导入导出的完整实现解析 在 ChatGPT Shortcut 中,登录用户
AI 应用提示工程人工智能前端ChatGPT-Shortcut 自定义提示词完全指南:创建、编辑、共享社区与 JSON 备份
ChatGPT Shortcut 自定义提示词完全指南:创建、编辑、共享社区与 JSON 备份 本篇基于 ChatGPT Shortcut(一个可检索的 Cha
AI 应用提示工程人工智能前端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考