news 2026/9/26 2:57:18

ChatGPT-Shortcut 自定义提示词全流程指南:创建、编辑、分享与 JSON 导入导出

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ChatGPT-Shortcut 自定义提示词全流程指南:创建、编辑、分享与 JSON 导入导出
  • AI 应用
  • 提示工程
  • 人工智能
  • 前端

【免费下载链接】ChatGPT-Shortcut

Stop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor · Русский 한국어 العربية हिन्दी ไทย | 别再从头写提示词:现成的拿来就用,好用的收进自己的库

项目地址:https://gitcode.com/gh_mirrors/ch/ChatGPT-Shortcut
点击查看免费下载

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)

操作步骤

  1. 登录后,点击页面顶部的「创建提示词」按钮;
  2. 在弹出的「创建提示词」对话框中填写字段;
  3. 设置底部的「是否愿意将该提示词分享到公开页面?」开关(默认开启,关闭即为私有);
  4. 点击「创建提示词」提交。

表单字段说明

创建对话框的字段结构与 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)"),然后从收藏中移除原社区项,适合社区内容被作者下架后想保留副本的场景。

导出提示词(备份)

导出是防止数据丢失的推荐手段。步骤:

  1. 进入「我的账户」页面,找到「数据管理 →导出提示词」;
  2. 点击「导出数据」按钮;
  3. 系统生成 JSON 文件并自动下载。

导出的内容包含:

  • 提示词的名称、内容、用途/作用与备注;
  • 分享状态(公开/私有);
  • 你的收藏列表、收藏排序以及自定义标签。

官方文档明确建议定期导出以防数据丢失。这套导出/导入能力与「我的账户」页面的数据管理模块(清除缓存、导出提示词、导入提示词)绑定在一起,相关说明可参见账户管理文档。

导入提示词与团队协作

导入规则

从 JSON 文件导入提示词与收藏:

  1. 进入「我的账户」→「数据管理 →导入提示词」;
  2. 点击「导入数据」按钮;
  3. 选择 JSON 文件;
  4. 系统自动合并数据:按标题去重(标题相同视为重复);ID 属于其他账户的提示词自动设为私有。

团队协作工作流

官方文档给出了一套推荐的在团队内共享提示词的流程:

  1. 筛选与分享:导出后,手动移除自己的收藏列表,或筛选出真正要分享的提示词,再把 JSON 文件发给团队成员导入;
  2. 隐私保护:导入的提示词如果归属于他人(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 · Русский 한국어 العربية हिन्दी ไทย | 别再从头写提示词:现成的拿来就用,好用的收进自己的库

项目地址:https://gitcode.com/gh_mirrors/ch/ChatGPT-Shortcut
点击查看免费下载

相关推荐

上一篇:iOS微信抢红包终极指南:如何用免费插件实现自动抢红包
下一篇:英雄联盟终极辅助工具Seraphine:让游戏数据成为你的最强队友 🎮

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

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

ctf-agent:LLM驱动的CTF解题代理系统架构与实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/26 2:54:50

【前端问题】解决浮动元素的父容器塌陷

问题&#xff1a;浮动的子元素脱离了文档流&#xff0c;父容器无法感知它们的高度&#xff0c;高度会坍塌为 0&#xff08;或仅剩边框&#xff09;&#xff0c;页脚会错误地跑到浮动元素旁边&#xff0c;而不是在容器下方。HTML<div class"father"><div cla…

作者头像 李华
网站建设 2026/9/26 2:54:05

UE5.7插件自动编译失败排查全攻略:从LNK2019到模块依赖

如果你的工作流和我一样&#xff0c;习惯在UE5.7工程里丢一个插件&#xff0c;启动编辑器让它自动编译&#xff0c;然后趁这个空档去倒杯水&#xff0c;那你大概率经历过这样一个场景&#xff1a;水还没喝上两口&#xff0c;编辑器弹出一整片红色编译错误&#xff0c;插件加载失…

作者头像 李华