news 2026/9/25 6:51:25

AI Short 离线部署实战:企业内网无后端纯静态提示词库的搭建、迁移与运维

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI Short 离线部署实战:企业内网无后端纯静态提示词库的搭建、迁移与运维
  • 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 Short(ChatGPT-Shortcut)离线版是一套面向企业内网、政务网络、保密环境等无法或不便访问外网场景的纯静态部署方案:无需后端服务器、无需用户注册,所有个人数据(收藏、自建提示词、排序、标签)都保存在浏览器localStorage中,管理员一次部署后团队成员打开浏览器即可使用。本文以 离线部署文档 为骨架,结合仓库内的 Dockerfile、nginx.conf、package.json 与前端缓存实现 cache.js,完整讲解离线版的架构原理、Docker/源码/Nginx 三种部署方式、数据导入导出与从在线版迁移的实操流程,并解答团队使用中的高频疑问。

离线版是什么:定位与适用场景

离线版是为 IT 管理员或技术负责人设计的部署形态。它把整个提示词库站点编译为一套纯静态文件(HTML/CSS/JS),托管在内网服务器上,团队成员通过浏览器访问内网地址即可浏览、搜索、复制提示词,整个过程:

  • 无后端:不依赖任何服务端接口,站点本身不保存用户数据;
  • 无账户:不需要注册、登录,打开即用;
  • 数据本地化:每个人的收藏与自建提示词只存在于自己浏览器的localStorage,互不影响。

典型适用场景包括:企业内网、政务网络、保密环境、校园网、对数据本地化有严格要求或无法访问外网的任何环境。普通用户不需要阅读部署文档——管理员部署完成后,把内网访问地址发给他们即可。

团队使用方式:一次部署,全员开箱即用

离线版是纯静态网站,整体工作流如下:

  1. 管理员将离线版部署到内网服务器(例如http://192.168.1.100:3000);
  2. 团队成员用浏览器打开该地址,即可浏览、搜索、复制提示词;
  3. 每个人的收藏和自建提示词保存在自己的浏览器中,互不影响;
  4. 无需注册账户、无需安装任何软件,打开即用。

这里的关键设计是:提示词库(精选提示词)是构建时打包的静态数据,所有用户看到的内容完全一致;而每个用户的收藏、自建提示词、排序和标签则各自保存在浏览器本地,彼此独立。

从仓库实现看,这一"静态库 + 本地个人数据"的架构与源码结构高度吻合:站点全部由 Docusaurus 静态构建(见 package.json 的start/build脚本),而本地数据层则由 src/utils/cache.js 基于lscache封装实现,统一走浏览器localStorage读写,并在其上增加内存缓存与跨标签页同步。

与在线版的功能差异

离线版与在线版共享同样的提示词浏览体验,但在需要服务端的场景做了取舍,功能对照如下:

功能在线版离线版
提示词浏览/搜索/筛选✅✅
提示词复制✅✅
收藏管理服务器存储浏览器本地存储
自定义提示词服务器存储浏览器本地存储
我的收藏(拖拽排序、标签)✅✅
多语言支持(18 种)✅✅
数据导入/导出✅✅(格式互通)
提示词详情页✅✅(静态数据,无评论)
用户注册/登录✅❌(无需账户)
社区提示词列表/投票✅❌
评论反馈✅❌

可以理解为:离线版保留了读与复制提示词、本地个人管理(收藏/自建/排序/标签)、数据导入导出这三条核心链路,砍掉了所有依赖服务端的能力(账户、社区、评论)。docs/deploy.md 中也将"离线部署版"列为与"标准部署""带后端的完整自部署"并列的三大部署形态之一。

数据存储设计:四个 localStorage 键

每位用户的数据保存在自己浏览器的localStorage中,与服务器无关。离线版共使用四个核心存储键:

数据存储键说明
收藏列表local_favorites收藏的提示词 ID 数组
自建提示词local_user_prompts用户创建的提示词数据
排列顺序local_myspace_order我的收藏中的卡片排序
自定义标签local_custom_tags标签定义和分配关系

源码层面,src/utils/cache.js 通过lscache将数据写入localStorage(键名带lscache-前缀),并额外提供两层增强:

  • 内存缓存(memCache):lscache每次get都会从localStorage反序列化并返回新对象引用,缓存层保证相同 key 多次读取返回同一引用,避免不必要的重渲染;
  • 跨标签页同步:通过监听storage事件(键名以lscache-开头),一个标签页修改数据后,其他标签页自动失效对应缓存,保证同一浏览器多标签下的数据一致性。

需要注意的容量与风险

文档明确提醒以下三点:

  • 浏览器本地存储约5MB容量上限,日常个人使用通常够用;
  • 清除浏览器数据会丢失个人数据——建议定期通过「我的账户 → 数据管理 → 导出数据」备份;
  • 更换电脑或浏览器后需重新导入数据。

部署:三种落地方式

离线版基于offline分支。管理员完成一次部署后,团队成员无需任何额外操作即可使用。以下是三种推荐的部署路径。

方式一:Docker 部署(推荐)

最简单的方式,一条命令即可在内网服务器上运行预构建的离线版镜像:

# 使用预构建的离线版镜像(GitHub Container Registry) docker run -d -p 3000:3000 --name aishort-offline ghcr.io/rockbenben/chatgpt-shortcut:offline # 或使用 Docker Hub 镜像 docker run -d -p 3000:3000 --name aishort-offline rockben/chatgpt-shortcut:offline

部署后团队成员访问http://<服务器IP>:3000即可使用。

若希望以docker-compose方式管理,使用如下配置:

services: aishort-offline: container_name: aishort-offline image: ghcr.io/rockbenben/chatgpt-shortcut:offline ports: - "3000:3000" restart: unless-stopped

仓库中的 Dockerfile 展示了官方镜像的构建思路,可帮助理解离线版容器的运行方式:

  • 第一阶段(构建):基于node:24-alpine,执行yarn install --frozen-lockfile后运行yarn build生成静态站点;构建时设置SKIP_GIT_INFO=true,使站点完全不依赖 git 元数据;
  • 第二阶段(运行):基于nginx:stable-alpine,将构建产物build/复制到/usr/share/nginx/html,并应用仓库自带的 nginx.conf,对外暴露3000 端口,启动 Nginx 提供静态服务。

也就是说,ghcr.io/rockbenben/chatgpt-shortcut:offline镜像本质上就是一个"静态文件 + Nginx"的容器,这也是它能一行命令跑起来的原因。

方式二:源码构建

如需自定义提示词内容或修改配置,可以克隆offline分支自行构建:

# 克隆离线版分支 git clone -b offline https://gitcode.com/gh_mirrors/ch/ChatGPT-Shortcut.git cd ChatGPT-Shortcut # 安装依赖 yarn # 本地开发 yarn start # 构建单语言版本(中文) yarn build --locale zh-Hans # 构建全部语言 yarn build

构建产物位于build/目录,可部署到任意静态文件服务器(Nginx、Apache、Caddy 等)。

需要说明两点构建细节(来源:package.json 与 Dockerfile):

  • yarn build实际执行的是scripts/buildPhased.mjs(分段构建脚本),会按语言分阶段编译,避免单进程一次性构建 18 种语言导致内存溢出(OOM);
  • yarn start前会自动执行scripts/genCommunitySnapshot.mjs生成社区快照数据(prestart钩子),本地开发时保证数据完整。

方式三:Nginx 静态托管

若已有内网 Nginx,直接把build/目录作为站点根目录即可。文档给出的参考配置:

server { listen 3000; server_name _; root /path/to/build; index index.html; location / { try_files $uri $uri/ /index.html; } }

其中try_files $uri $uri/ /index.html是关键:它把所有未命中的路由回退到index.html,保证 Docusaurus 站点内页面的前端路由(如提示词详情页、我的收藏页)在直接刷新时也能正确加载——仓库自带 nginx.conf 也采用了完全相同的try_files回退策略。

方式四:平台部署(Vercel / Cloudflare Pages)

在 Vercel、Cloudflare Pages 等平台部署时,只需在导入仓库时选择offline分支,其余步骤与在线版完全一致。更完整的部署形态选择与流程对照可参考 项目部署指南。

数据导入导出与从在线版迁移

离线版虽然无后端,但通过 JSON 导入导出能力保证了个人数据的可迁移性。

导出

进入「我的账户 → 数据管理 → 导出数据」,即可将个人收藏和自建提示词导出为 JSON 文件。文档建议将重要数据定期导出备份,以对冲浏览器数据被清除的风险。

导入

离线版支持导入以下格式的 JSON 文件,并自动做兼容处理:

  • 离线版导出的文件:完整恢复收藏、提示词、排序和标签;
  • 在线版导出的文件:自动兼容处理,规则如下:
    • 用户提示词 → 合并到本地(按标题去重);
    • 精选收藏(card)→ 合并到本地收藏;
    • 社区收藏(community)→ 自动转为本地自建提示词;
    • MySpace 排序 → 恢复到本地;
    • 自定义标签 → 追加合并(不覆盖已有)。

从在线版迁移

如果团队此前使用在线版,迁移只需三步:

  1. 在在线版的「我的账户」页面导出数据;
  2. 在离线版的「我的账户 → 数据管理」导入该 JSON 文件;
  3. 社区收藏会自动转为本地提示词,精选收藏正常同步。

这套兼容机制背后的关键约定是:导出的 JSON 格式在两个版本间互通,虽然提示词 ID 不同(在线版用服务器 ID,离线版用时间戳 ID),但导入时按标题去重,因此不会发生冲突。

常见问题(FAQ)

部署后团队怎么用?

管理员部署到内网服务器后,把访问地址(如http://192.168.1.100:3000)告诉团队成员即可。每个人用浏览器打开,无需安装、无需注册。

每个人的数据会互相影响吗?

不会。每个人的收藏和自建提示词保存在各自浏览器的localStorage,完全独立。服务器上只有共享的提示词库(只读)。

数据会丢失吗?

以下操作会导致个人数据丢失:

  • 清除浏览器数据/缓存;
  • 使用隐私/无痕模式浏览;
  • 更换电脑或浏览器。

建议重要数据定期通过「我的账户 → 数据管理 → 导出数据」备份为 JSON 文件。

能否在团队间共享自建提示词?

可以。一人导出 JSON 文件后,其他成员在「我的账户 → 数据管理 → 导入数据」中导入即可,系统会自动去重。

如何更新提示词库?

提示词库是构建时打包的静态数据,更新方式为:

  1. 管理员拉取最新的offline分支代码;
  2. 重新构建并部署(或拉取最新 Docker 镜像);
  3. 团队成员刷新浏览器即可看到新内容,个人数据不受影响。

离线版的数据格式和在线版兼容吗?

兼容。导出的 JSON 格式相同,可在两个版本间互相导入。提示词 ID 不同(在线版用服务器 ID,离线版用时间戳 ID),但导入按标题去重,不会冲突。

小结

AI Short 离线版用"纯静态站点 + 浏览器 localStorage"的极简架构,解决了无外网环境下的提示词库共享难题:管理员通过 Docker、源码构建或 Nginx 任选一种方式部署一次,团队即可零安装、零注册地使用完整的浏览、搜索、复制与个人收藏能力;JSON 导入导出机制则打通了与在线版之间的数据迁移路径。从 docs/deploy/offline.md、Dockerfile 到 cache.js,整条链路在仓库源码中均有对应实现,可作为内网私有化部署的直接参考。

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

相关推荐

上一篇:开源项目 OpenLabeling 使用指南
下一篇:AcadHomepage 开源项目教程

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

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

CLI Agent 工具链实战:OpenRouter + MCP 协议 + 本地执行入口

1. 从 "treg" 这个标题说起&#xff1a;一个被低估的 CLI Agent 工具链入口第一次看到 "treg" 这个词&#xff0c;大概率会一脸懵——它不像codex、claude那样自带品牌辨识度&#xff0c;也不像mcp那样有明确的协议含义。但如果你最近在折腾 AI Agent 的 C…

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

ChatGPT Web 对话框消息实现:子路由切换、消息透传与对话面板设计——《ChatGPT 微服务应用体系构建》chatgpt-web 第5节实战

文档教程后端 【免费下载链接】CodeGuide :books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总&#xff0c;旨在为大家提供一个清晰详细的学习教程&#xff0c;侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助&#xff0c;请给予支持(关注、…

作者头像 李华
网站建设 2026/9/25 6:49:50

Atlas 300V 24G推理卡部署YOLO实战:从ONNX到OM的完整指南

最近后台和评论区被同一个问题刷屏了&#xff1a;“atlas 300v 24g 是运算加速卡吗&#xff1f;”“atlas 能不能跑 yolo&#xff1f;”“部署起来是不是特别折腾&#xff1f;”问的人一多&#xff0c;我发现大家对这个系列产品存在不少误解——有人以为 Atlas 是显卡&#xff…

作者头像 李华
网站建设 2026/9/25 6:48:44

open-code-review:一种开放、可验证的多语言代码审查协议

1. 这不是又一个代码审查工具&#xff0c;而是一套可落地的开源协作范式“open-code-review”这个词乍看像某个 GitHub 仓库名&#xff0c;或是某家创业公司刚注册的商标。但真正把它拆开来看——open&#xff08;开放&#xff09;、code&#xff08;代码&#xff09;、review&…

作者头像 李华