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
  1. 在 Supabase 仪表板中运行 database/setup.sql – 整个模式是幂等的(可重复执行)。
  2. 创建名为 userfiles 的私有存储桶(RLS 策略已预先定义)。
  3. 在 .env.local 中填入所需密钥(Supabase、Anthropic、Mistral、Voyage、Exa,以及可选的图像服务器 URL)。
  4. 访问 http://localhost:3000/signup 注册并确认邮箱。
  5. (可选)通过 SQL 授予管理员权限:UPDATE public.users SET is_admin = true WHERE email = 'you@example.com';

典型使用场景

  • 法律或知识库助手 – 上传 PDF,让 AI 检索并引用段落(该项目支持一个丹麦法律 AI 平台)。
  • 报告生成 – 要求助手分析数据、生成图表并导出精美的 PDF。
  • 创意图像生成 – 无需第三方成本,在本地生成 logo 或插图。
  • 多工具工作流 – 单个用户提示可触发网络搜索、文档查找、图表生成和 PDF 创建,一次完成,完整推理轨迹被持久化。
  • 成本监控 – 按 token 计费,让产品团队追踪支出并优化缓存策略。

许可证

MIT – 可用于商业或个人用途,免费。


以上所有细节均直接来自仓库的 README;未推断任何额外功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目