sharegpt是分层演进的开源系统,核心定位为将chatgpt网页对话结构化为可归档、可传播的公开链接;其典型路径为chrome扩展本地提取dom→生成json→提交至serverless api→社区网站展示与数据集工程化。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

一、ShareGPT开源项目的核心定位与典型使用路径
如果您在GitHub上搜索ShareGPT,会发现它并非一个单一可执行应用,而是一套围绕ChatGPT对话分享能力构建的、分层演进的开源系统。其核心价值在于将用户在ChatGPT网页版中的完整交互过程,以结构化、可归档、可传播的方式固化为公开链接。项目早期以Chrome扩展形态存在,后期延伸出社区网站与数据集工程能力,技术实现严格遵循“前端本地化→服务端轻量化→存储异构化”的演进逻辑。以下是对其GitHub仓库结构与技术栈的逐层说明:
二、GitHub仓库结构解析
ShareGPT官方主仓库(如sharegpt/sharegpt)采用清晰的模块化布局,各目录职责边界明确,不依赖隐式约定,所有关键入口均有文档支撑。根目录下主要包含以下结构:
1、chrome/ 目录:存放完整的Chrome浏览器扩展源码,含manifest.json、content-script.ts、popup.ts及图标资源;该目录可独立构建为.crx包,无需任何后端依赖即可运行。
2、app/ 目录:Next.js全栈应用根目录,对应sharegpt.com生产站点;内含pages/(路由)、api/(Serverless函数)、lib/(工具函数)、styles/(Tailwind配置)等标准子结构。
3、scripts/ 目录:存放GitHub Actions工作流脚本,包括每日抓取公开分享对话、清洗JSONL格式、去重校验并自动提交至Hugging Face数据集的自动化流水线。
4、prisma/ 与 upstash/ 目录:分别定义PlanetScale MySQL数据库模型(schema.prisma)与Upstash Redis缓存策略(redis.config.ts),二者通过环境变量解耦,支持多环境部署。
5、.github/workflows/ 目录:包含CI/CD配置,覆盖扩展打包验证、Next.js构建检查、TypeScript类型强制、以及PR合并前的端到端测试(基于Playwright)。
三、核心技术栈选型依据
ShareGPT的技术栈不是堆砌流行词,而是针对每一层能力瓶颈所作的精准匹配。每个组件均服务于一个具体约束条件,例如零配置安装、毫秒级首屏、或每分钟百万级短链生成。其技术清单如下:
1、Next.js 13+(App Router):承担SSR渲染与ISR增量静态再生双重任务;/explore页使用getServerSideProps预取元数据,/share/[id]页使用generateStaticParams + revalidate: 60实现缓存刷新,避免冷启动延迟。
2、TypeScript + ESLint + Prettier:全项目强类型覆盖,类型定义文件(types/conversation.d.ts)与DOM提取逻辑(chrome/content-script.ts)完全对齐,杜绝JSON序列化字段错位。
3、Tailwind CSS + shadcn/ui:无CSS-in-JS运行时开销,所有样式编译为原子类;UI组件库经定制适配暗色模式与高对比度访问需求,满足WCAG 2.1 AA标准。
4、PlanetScale(MySQL兼容):用于持久化用户账户、收藏关系、评论内容;利用其分支(Branch)机制实现零停机迁移,Schema变更通过Prisma Migrate生成不可变版本。
5、Upstash Redis(Serverless-first):承担短链UUID生成计数器、会话Token黑名单、热门对话缓存三重角色;通过REST API调用,规避Node.js进程内存泄漏风险。
四、关键依赖与权限设计
项目对外部服务的调用均通过抽象层封装,确保可替换性与安全隔离。所有敏感凭证均不进入Git历史,由Vercel环境变量或Chrome扩展权限声明显式管控:
1、Chrome扩展权限仅声明"activeTab"与"scripting":拒绝请求"storage"或"cookies",所有对话数据在内存中完成JSON序列化后即刻销毁,符合GDPR“最小必要”原则。
2、NextAuth.js认证流程不存储明文密码:仅保存经过NextAuth签名的JWT Token于HttpOnly Cookie,有效期设为7天,刷新令牌轮换机制启用。
3、Vercel Serverless Functions限制最大执行时间为10秒:所有API端点(如/api/conversations)内置超时熔断,防止恶意长连接耗尽资源。
4、Cloudflare R2作为只读附件存储:对话中上传的图片、代码块截图等二进制内容,经SHA-256哈希去重后写入R2,URL通过S3兼容签名临时授权,有效期24小时。
五、构建与本地验证流程
开发者可在无生产环境依赖下完整复现全部功能链路,所有步骤均经CI流水线验证,确保跨平台一致性:
1、克隆仓库后执行 pnpm install,自动识别workspace协议并链接chrome/与app/包依赖。
2、进入 chrome/ 目录,运行 pnpm build 生成dist/文件夹,拖入Chrome开发者模式完成加载。
3、进入 app/ 目录,设置 NEXT_PUBLIC_API_BASE=https://localhost:3000/api 环境变量,启动本地Next.js开发服务器。
4、在Chrome中打开任意ChatGPT对话页,点击Share按钮,观察控制台是否成功捕获
5、确认本地app服务收到POST请求后返回UUID,且浏览器剪贴板已写入 http://localhost:3000/share/abc123 格式链接。









