nextjs-openai-doc-search

用自然语言提问,秒级获取带引用的文档答案

这是一个基于 Next.js、OpenAI 和 Supabase 构建的文档搜索模板,旨在帮助开发者快速打造类似 ChatGPT 的定制化文档问答助手。它解决了传统文档搜索只能匹配关键词、无法理解语义和上下文的问题,通过向量搜索和生成式 AI,让用户可以用自然语言提问,并获得精准、有来源依据的答案。核心能力包括:将文档内容分块并生成向量嵌入存入 Supabase(支持 pgvector),提供流式响应和引用来源,以及开箱即用的 Next.js 前端界面。项目代码结构清晰,易于定制和部署,适合作为企业内部知识库、产品文档或技术支持的问答入口。

开源 free 对话助手
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1730
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类对话助手
开发团队supabase-community
所属国家
定价模式free
价格说明开源模板,基于Next.js、OpenAI和Supabase构建,可自行部署,无内置付费功能。
访问状态
是否开源是
开源协议Apache-2.0
主要语言TypeScript
技术栈/模型ai,chatgpt,nextjs,openai,postgres,supabase,template,vector-search
GitHub 星标★ 1730
30天Star增速
HF 下载量
上线时间2023-04-01 00:00:00
最近更新2026-09-18 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数2

使用教程

难度:入门 约 10 分钟 部署方式:云服务 7 步

环境要求

  • Node.js 环境(Next.js 应用运行所需)
  • 一个 Supabase 项目或本地 Supabase CLI 环境(提供 pgvector 与数据库)
  • OpenAI API Key(用于生成嵌入和文本补全)
  • Vercel 账号(README 推荐的一键部署平台)

安装与启动步骤

  1. 1获取项目代码

    把模板仓库克隆到本地,后续所有配置都在项目根目录下进行。

    git clone https://github.com/supabase-community/nextjs-openai-doc-search.git
    cd nextjs-openai-doc-search
  2. 2安装项目依赖

    在项目根目录安装 Next.js 应用的依赖包,确保后续可以构建和本地预览。

    npm install
  3. 3复制环境变量文件

    README 明确要求先把示例环境变量文件复制成实际使用的 .env 文件。

    cp .env.example .env
  4. 4填写 OpenAI 密钥

    编辑 .env,把 OPENAI_KEY 换成你自己的 OpenAI API Key,这是唯一必须手动设置的变量。

  5. 5启动 Supabase 获取密钥

    README 提示必须先运行 Supabase 才能拿到密钥,迁移会在此步骤自动建表和启用 pgvector。

    supabase start
  6. 6填入 Supabase 密钥

    把上一步得到的 NEXT_PUBLIC_SUPABASE_ANON_KEY 与 SUPABASE_SERVICE_ROLE_KEY 写进 .env。

  7. 7部署到 Vercel

    README 推荐直接部署到 Vercel,Supabase 集成会自动注入环境变量并配置数据库 Schema,只需设置 OPENAI_KEY。

关键配置

配置项必填说明示例
OPENAI_KEY是OpenAI API 密钥,用于生成嵌入与文本补全sk-xxxxxxxxxxxxxxxx
NEXT_PUBLIC_SUPABASE_ANON_KEY是Supabase 匿名密钥,前端访问数据库使用eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxxxxxx
SUPABASE_SERVICE_ROLE_KEY是Supabase 服务角色密钥,构建时写入嵌入数据使用eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.yyyyyyyy

如何确认成功

打开部署或本地站点,在搜索框输入自然语言问题,能返回流式生成且带引用来源的答案即成功。

常见问题

Q:如何获取 Supabase 的两个密钥?

A:README 说明必须先运行 supabase start,启动本地实例后在输出中获取 anon key 和 service role key,再填入 .env。

Q:数据库表和 pgvector 扩展需要手动创建吗?

A:不需要。初始化 SQL 位于 supabase/migrations 目录,运行 supabase start 时会自动应用到本地 Postgres;部署到 Vercel 时 Supabase 集成会自动配置 Schema。

Q:知识库内容从哪来?

A:构建时会读取 pages 目录下的所有 .mdx 文件,分块后生成向量嵌入并存入 Postgres 的 pgvector,替换这些文件即可换成自己的内容。

Q:运行时是怎么工作的?

A:用户提问后由 Edge Function(pages/api/vector-search.ts)先做向量相似度检索,再把相关内容注入 GPT-3 补全提示,以流式返回给前端 SearchDialog 组件。

注意事项

  • README 强调只需手动设置 OPENAI_KEY,其余环境变量由 Supabase 集成自动注入。
  • 嵌入向量维度为 1536,对应 OpenAI 的 embedding 输出。
  • 向量检索与流式回答的核心文件是 components/SearchDialog.tsx 和 pages/api/vector-search.ts。
  • 本教程依据 README 节选整理,具体端口与详细部署按钮请以官方仓库和 Supabase 博客为准。

核心亮点

  • 内置向量搜索与 OpenAI 生成式回答,语义理解准确
  • 支持流式输出和引用来源,答案可信可追溯
  • 基于 Next.js 和 Supabase,全栈 TypeScript,部署简单

不足之处

  • 依赖 OpenAI 和 Supabase 外部服务,成本与网络需自担
  • 文档/社区待观察,模板功能相对基础,高级定制需自行扩展

适用场景

  • 企业产品文档的智能客服问答
  • 开发者快速搭建内部知识库检索工具
  • 为静态文档站点添加 AI 对话式搜索

替代项目

ChatGPT Retrieval Plugin、quivr、docsgpt

项目介绍

nextjs-openai-doc-search 是搜索知识领域的开源项目,由 supabase-community 开发,2023 年首次发布。

在全站 13,109 个收录项目中,它的 GitHub 星标数(1,730)位列前 30%,在搜索知识分类中处于中上游。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-18。开源模板,基于Next.js、OpenAI和Supabase构建,可自行部署,无内置付费功能。

它主要面向的使用场景是:企业产品文档的智能客服问答。同类可对比的替代方案包括 ChatGPT Retrieval Plugin、quivr、docsgpt。

上一篇:chatWeb

下一篇:oneglanse

同类项目推荐

firecrawl 开源

网页抓取像喝水一样简单,开发者省下整周加班

The web data API to search, scrape, and interact at scale.

★ 183325 2026-08-09
contoso-chat 开源

一键跑通 Azure RAG 应用,从代码到评估部署全流程

This sample has the full End2End process of creating RAG application with Prompty an···

★ 766 2026-08-09
graphify 开源

整个代码库画成一张图,找问题一眼定位

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable k···

★ 120493 2026-08-09
WeKnora 开源

文档往里一扔,自动变成啥都能答的知识库

Open-source LLM knowledge platform: turn raw documents into a queryable RAG, an auto···

★ 28895 2026-08-09