news 2026/9/28 20:39:01

ChatGPT-Shortcut 社区提示词指南:发现、投票、收藏与私有化共享的完整流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ChatGPT-Shortcut 社区提示词指南:发现、投票、收藏与私有化共享的完整流程
  • 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
点击查看免费下载

社区提示词(Community Prompts)是 ChatGPT-Shortcut 中由用户共享、经投票机制筛选的公开提示词库。本文将围绕 i18n/th/docusaurus-plugin-content-docs/current/guides/community.md 的核心内容,结合仓库前端源码(列表页、详情页、投票与收藏逻辑),为你讲透社区页的排序过滤、投票机制、私有化切换与讨论区功能,并给出与自定义提示词、我的收藏的联动关系,帮助你把提示词"存进来、投出去、收进库"。

社区提示词是什么

在 ChatGPT-Shortcut 中,除了官方预置的提示词库(首页卡片),任何登录用户都可以通过"创建提示词"把自写内容发布到社区,形成Prompt ชุมชน(社区提示词)。社区页面聚合了其他用户主动分享的内容,你可以浏览获取灵感,也可以把自己创作的东西分享出去。投票机制是社区内容排序的核心:有用且受欢迎的提示词会不断攀升,质量较弱的提示词则会在足够多的反对票后从列表中被隐藏。

从源码看,社区页是独立的 React 路由页面 src/pages/community-prompts.tsx,它通过 src/api/prompts.ts 中的getCommPrompts()向后端/userprompts端点分页拉取数据;单条提示词的详情由 src/components/CommunityPromptPage.tsx 渲染。社区数据与官方卡片(cards类型)不同,属于commus类型的用户生成内容,由 Strapi 后端存储并通过/userprompts/bulk批量获取。

排序与筛选

社区列表页顶部提供了两种排序维度与一个搜索框(src/pages/community-prompts.tsx):

排序/筛选说明
最新发布(默认)按id倒序,展示最近分享的提示词,对应后端的sort=id:desc
最多赞按upvoteDifference倒序,展示净赞数最高的提示词,对应sort=upvoteDifference:desc
关键词搜索通过页面 URL 的name查询参数驱动,无需登录即可搜索公开社区内容

排序切换由 antdSegmented组件实现,切换或输入搜索词后会自动回到第 1 页。搜索由 src/components/SearchBar 渲染,社区公开内容搜索不要求登录(源码注释明确"community prompts 是用户主动分享的公开内容,搜索无需登录"),但投票与收藏仍需要登录。

从底层实现看,getCommPrompts()(src/api/prompts.ts)会把搜索词 percent-encode 后拼进filters[$or]查询:同时对description(内容)、title(标题)、remark(用途说明)三个字段做不区分大小写的包含匹配。搜索词超过 100 字符会被截断,且缓存键用q_前缀隔离,避免与"无搜索"的默认列表缓存互相污染。

投票机制:赞/踩如何决定可见性

投票是社区内容治理的核心,规则如下:

  • 赞(Upvote):把优质内容推到更多人面前,净赞数upvoteDifference = upvotes - downvotes决定"最多赞"排序;
  • 踩(Downvote):当一条提示词累积的反对票达到阈值,就会被从列表中隐藏;
  • 收藏 = 赞:把一条社区提示词加入你的收藏,会自动为它投一票赞;
  • 仅限登录用户:投票前必须登录,且对同一条提示词,只有你最近一次投票生效(后投的会覆盖先投的)。

前端投票调用链

社区卡片上的投票按钮会调用vote回调(src/pages/community-prompts.tsx),其完整流程为:

  1. 登录检查:未登录时弹出voteLoginRequiredText()提示并引导打开登录弹窗(文案见 src/utils/voteMessages.ts);
  2. 会话级防重:用sessionVotedIdsRef记录本次会话已投过的promptId_action组合,防止 API 在途时重复点击;
  3. 乐观更新(Optimistic UI):先本地把upvotes/downvotes/upvoteDifference更新到界面上,让点赞有即时反馈;
  4. 请求后端:调用 src/api/prompts.ts 的voteOnUserPrompt(promptId, action),请求POST /userprompts/{id}/vote;
  5. 权威数据回填:成功后用服务端返回的counts(真实upvotes/downvotes)覆盖本地,并清空列表缓存(flushCacheByPrefix(CACHE_PREFIX.COMM_LISTS))确保下次刷新看到最新票数;
  6. 失败回滚:请求出错时回滚到原始票数,移除会话标记,并提示voteFailedText(action)。

收藏即投票的源码印证

"收藏 = 赞"在 src/hooks/useFavorite.tsx 中有明确实现:当isComm=true收藏社区提示词时,addFavorite()在收藏 PATCH 成功后会异步追加一次voteOnUserPrompt(id, "upvote")(不阻塞收藏流程,.catch(() => {})静默处理失败)。同时它还做了本地预校验:不能收藏自己发布的提示词(会直接提示"不能收藏自己的提示词"并省掉一次注定 403 的 PATCH 请求)。反方向,取消收藏(useFavorite.tsx)则只移出收藏、不会自动投踩。

投票按钮的 UI 细节

在详情页 src/components/CommunityPromptPage.tsx 中,投票按钮被设计为非对称的"投票胶囊"(vote pill):▲ 永远带数字(主信号),而 ▼ 在downvotes=0时只显示图标弱化呈现;只有当踩数大于 0 时才显示数字。整个控件带role="group"与aria-label无障碍标注,fontVariantNumeric: "tabular-nums"保证数字等宽对齐。字符数与 token 估算(estimateTokens)也会在标题下方的元信息行展示,帮助读者判断提示词体量。

私有提示词:公开与私有的切换

并非所有想法都适合公开。创建或编辑提示词时,底部的"分享到社区"开关控制可见性(详见 用户提示词指南):

  • 开启(默认):提示词发布到社区列表,其他用户可见、可收藏、可投票;
  • 关闭:提示词变为私有,仅你自己可见;
  • 随时可切换:公开/私有状态可以反复切换,不需要重建。

私有化在数据层也有兜底:当一条社区提示词被作者转为私有或删除后,前端getPrompts()(src/api/prompts.ts)会通过/userprompts/check-updates校验发现它已不在返回列表,从而把缓存条目标记为_unavailable: true、_unavailableReason: "unshared",并保留一份带 1 年 TTL 的"不可用"缓存——这意味着即便作者取消分享,已经收藏过它的用户仍能看到缓存内容(界面会提示"该提示词可能已被删除或设为私有")。这是"私有化即刻生效、但已消费内容不硬性消失"的设计取舍。

讨论区:评论与表情互动

打开任意社区提示词的详情页(src/components/CommunityPromptPage.tsx),除了完整内容(标题、作者、字符数、tokens、正文、作者备注),底部还有讨论区:登录后即可发表评论、参与对话,支持表情(emoji)和 GIF。

讨论区由 src/components/Comments.tsx 实现(通过lazyWithRetry按需加载,避免把评论组件链拖入首屏主包),并以pageId+type="userprompt"关联到具体社区提示词。详情页外层会通过onCountChange回调显示"讨论 · N"的评论数徽标。分享按钮同样支持把当前提示词分享到社交平台(ShareButtons 懒加载)。

与其他功能的联动

社区提示词并非孤立模块,它与账号体系内两个核心功能深度联动:

关联功能联动方式
自定义提示词社区内容来自用户创建的提示词,开关控制发布/私有
我的收藏收藏社区提示词 = 自动赞 + 收入个人库,可在"我的收藏"中统一管理

在"我的收藏"视角(我的收藏指南)中,收藏的社区提示词与自建提示词一同展示,支持标签分类、拖拽排序、跨设备同步;而收藏社区条目会自动带来源标记source: "community",与服务端commLoves字段保持一致,确保心形按钮的状态判断始终与服务端权威值同源。

性能与体验设计

社区页在体验上有几处值得注意的实现(可作为理解社区功能运行原理的补充):

  • 构建期快照:社区首屏数据由 src/utils/snapshotPrime.ts 从构建期生成的communitySnapshot.json预热到本地缓存(列表层 + 详情层),让 SSG HTML 首屏即含真实卡片,并把网络请求延后为后台静默刷新(SWR 模式);
  • 分页:每页 12 条(COMMUNITY_PAGE_SIZE = 12),列表底部提供分页器与快速跳转;
  • ETag 条件请求:getCommPrompts()携带If-None-Match头,服务端返回 304 时直接复用本地缓存并延长 TTL,减少不必要的流量;
  • 请求节流:同一条缓存键 1 小时内不再重复请求后端,失败时也会留下 1 小时的抑制窗口,避免对后端反复重试。

这些机制共同保证了社区列表在移动端与桌面端的流畅体验,同时让投票、收藏后的排序结果能较快反映到界面上。

小结

通过本文你可以完整掌握 ChatGPT-Shortcut 社区提示词的使用链路:在 社区列表页 用"最新/最多赞/关键词"筛选内容 → 在 详情页 查看完整信息并投票、收藏、评论 → 通过"分享到社区"开关管理自己的内容公开/私有 → 在"我的收藏"统一整理。投票决定内容可见性、收藏自动点赞、私有化随时可切换,这三个机制构成了社区内容自治的核心闭环。

  • 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
点击查看免费下载

相关推荐

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

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

深度学习 - 25 DDP

DDP 深度教程 1. DDP 到底解决什么问题 DDP(DistributedDataParallel)解决的核心问题非常直接: 让多个 GPU 分别计算不同数据上的梯度,然后把这些梯度同步起来,使所有 GPU 可以像在一个更大的 batch 上训练一样更新同一个模型。 假设现在有 4 张 GPU: GPU0 …

作者头像 李华
网站建设 2026/9/28 20:37:17

PHP 反序列化漏洞入门

PHP 反序列化漏洞入门(零基础彻底看懂) 前言 PHP 反序列化漏洞是 Web 安全中非常经典的高阶漏洞,也是 CTF Web 题型、红蓝对抗、代码审计的高频考点。不同于上传、包含这类直观漏洞,反序列化漏洞属于代码逻辑漏洞,利…

作者头像 李华
网站建设 2026/9/28 20:36:43

LoRa 自组网设备原理深度分析

该设备是868MHz LoRa 半双工无线透传模块,实现 1 主 N 从自发现组网、RS485‑LoRa 双向透传、按键本地配置、485 远程参数配置、IAP 串口固件升级;核心特性:信道 0‑62,单帧最大 238 字节,依靠net_id网络标识实现同信道…

作者头像 李华