ElectricCodeGuy/SupabaseAuthWithSSR
Supabase Auth + AI Stack for Next.js 16 with SSR and React Server Components (RSC), Welcome to a production-ready template combining Supabase SSR authentication with AI capabilities: document chat (RAG), web search, and multiple LLM support. Features include secure file storage, vector search (pgvector), and persistent chat history.
SupabaseAuthWithSSR – 面向 Next.js 的生产级 AI 聊天启动项目
是什么 – 一个开箱即用的 Web 应用,结合了 Next.js 16、Supabase SSR 认证 和 Claude(Anthropic)LLM,提供完整的 AI 聊天体验。它包含一个单一的 SQL 文件,用于创建完整的数据库模式(表、RLS 策略、触发器、存储策略、搜索函数和模型目录)。克隆后,安装依赖,运行 setup.sql 脚本,并添加几个 API 密钥,即可获得一个包含以下功能的实时聊天产品:
| 功能 | 工作方式 |
|---|---|
| 安全认证 | Supabase SSR 注册/登录/魔法链接流程,支持服务器端会话处理,并在每个表上启用行级安全(RLS)。 |
| 八种 AI 工具 | 文档 RAG(PDF OCR → 嵌入 → 混合向量/关键词搜索)、网络搜索(Exa)、工件工作区(版本化 Markdown)、长期记忆、对话搜索、交互式图表生成、PDF 创建,以及本地文本到图像生成(Qwen-Image-2.1)。 |
| 成本感知使用 | 每个生成步骤将 token 数量和缓存元数据以 JSON 形式存储在 message_parts 行中;仪表板聚合用户级和管理员级 KPI、缓存命中率和估算支出。 |
| 提示缓存 | 两级 Anthropic 缓存(静态系统提示 + 移动断点)将多步工具调用的输入 token 成本降低至约 10%。 |
| 版本化工件 | “工件”侧边栏实时流式传输 AI 生成的 Markdown;每次创建/更新均以版本形式持久化,无需额外表。 |
| PDF 与图表渲染 | 使用 @react-pdf/renderer 生成样式化 PDF,使用客户端图表库(Chart.js、ECharts、D3 等)实现交互式可视化。 |
| 自托管图像生成 | 可选的本地服务器(Qwen-Image-2.1)暴露一个 OpenAI 兼容的 /v1/images/generations 端点,避免按图像计费的 API 费用。 |
| 管理员控制台 | 标记为 is_admin 的用户可查看组织级使用情况、高支出用户,并管理用户角色。 |
技术栈
- 框架:Next.js 16(app 路由器,服务器动作)
- 认证与数据库:Supabase(PostgreSQL,pgvector,RLS,存储桶)
- LLM:通过 Vercel AI SDK(v7)调用 Anthropic Claude 模型
- 嵌入:Voyage AI(
voyage-4-large) - OCR:Mistral OCR 模型(
mistral-ocr-latest) - 网络搜索:Exa API
- 图像生成:本地运行的 Qwen-Image-2.1(FastAPI 或 vLLM-Omni)
- PDF:
@react-pdf/renderer - 图表:从 CDN 加载的客户端库(chart.js、echarts、d3、mermaid、three)
- 样式:Tailwind CSS(由 Next.js 启动模板隐式提供)
快速开始(来自 README)
git clone https://github.com/ElectricCodeGuy/SupabaseAuthWithSSR.git
cd SupabaseAuthWithSSR
npm install
cp .env.local.example .env.local # 填写密钥
npm run dev
- 在 Supabase 仪表板中运行
database/setup.sql– 整个模式是幂等的(可重复执行)。 - 创建名为
userfiles的私有存储桶(RLS 策略已预先定义)。 - 在
.env.local中填入所需密钥(Supabase、Anthropic、Mistral、Voyage、Exa,以及可选的图像服务器 URL)。 - 访问
http://localhost:3000/signup注册并确认邮箱。 - (可选)通过 SQL 授予管理员权限:
UPDATE public.users SET is_admin = true WHERE email = 'you@example.com';
典型使用场景
- 法律或知识库助手 – 上传 PDF,让 AI 检索并引用段落(该项目支持一个丹麦法律 AI 平台)。
- 报告生成 – 要求助手分析数据、生成图表并导出精美的 PDF。
- 创意图像生成 – 无需第三方成本,在本地生成 logo 或插图。
- 多工具工作流 – 单个用户提示可触发网络搜索、文档查找、图表生成和 PDF 创建,一次完成,完整推理轨迹被持久化。
- 成本监控 – 按 token 计费,让产品团队追踪支出并优化缓存策略。
许可证
MIT – 可用于商业或个人用途,免费。
以上所有细节均直接来自仓库的 README;未推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目