semantic-search-nextjs-pinecone-langchain-chatgpt
用 LangChain + Pinecone + GPT-3 构建的语义搜索 Next.js 应用,
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用 LangChain + Pinecone + GPT-3 构建的语义搜索 Next.js 应用,
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你有一堆技术文档、产品手册、内部知识库,想要用自然语言向 AI 提问并得到精准答案——不是简单的关键词匹配,而是真正理解你问的是什么。传统的搜索引擎做不到,但 语义搜索 可以。这个来自 AWS 开发者倡导者 Nader Dabit 的开源项目,正是这样一座从零构建 RAG(检索增强生成)应用的桥梁。
LangChain 在 2023 年迅速成为 LLM 应用开发的事实标准,但官方文档和示例往往各自为战,缺少一个完整可运行的参考项目。Nader Dabit 曾在 AWS 负责开发者关系,后加入 LangChain 团队,他将自己踩坑的经验浓缩进了这个入门级 starter 模板,让后来者可以站在他的肩膀上快速启动。
项目的技术选型极具代表性:LangChain 做文档加载与链式调用,Pinecone 做向量数据库存储语义索引,GPT-3 做最终答案生成,Next.js 做用户界面——这是一套在 AI 应用圈子里被广泛验证过的经典组合。
项目的工作流程分为四个阶段,逻辑清晰、代码简洁,非常适合作为 RAG 开发的入门教材。
第一步:文档加载与切分。 DirectoryLoader 会扫描 /documents 目录,支持 .txt、.md 和 .pdf 三种格式。RecursiveCharacterTextSplitter 将长文档按重叠方式切分成小块(chunks),每块保持 500 token 左右,保证语义完整性的同时让向量检索粒度更细。
第二步:向量化存储。 通过 OpenAIEmbeddings 将每个文本 chunk 转换为 1536 维的稠密向量,然后存入 Pinecone 向量数据库。Pinecone 是一个专为向量相似性搜索设计的云托管数据库,支持毫秒级检索。
第三步:语义查询。 用户输入自然语言问题,系统用同一个 OpenAIEmbeddings 将问题转换为向量,在 Pinecone 中做 top-K 最近邻检索,取回最相关的若干个文档片段。
第四步:答案生成。 将检索到的文档片段拼接后,作为上下文传给 GPT-3,通过 LangChain 的 loadQAStuffChain 链式调用,生成最终的自然语言回答。
项目采用 Next.js 13 的 App Router 架构,前端页面在 app/page.tsx,后端逻辑封装在两个 API Route 中。
/api/setup 负责初始化流程:加载文档、切分、向量化、Pinecone 建索引。这是个一次性操作,首次部署或更换文档时触发。注意:Pinecone 索引创建需要 2-4 分钟的初始化时间,项目代码中硬编码了 180 秒的超时等待,如果超时失败需手动去 Pinecone 控制台确认索引状态后再重试。
/api/read 负责查询流程:接收用户问题、查 Pinecone、调 GPT-3、返回答案。这是一个典型的 Next.js API Route,逻辑完全独立于前端,可以在任何支持 fetch 的环境中复用。
前端 UI 极简:一个输入框、一个"Ask AI"按钮、一个结果显示区。样式基于 Radix UI 组件库 + Tailwind CSS,提供基础的加载态(旋转图标)和错误处理。
部署这个项目需要三把钥匙:
us-west4-gcp-free,Pinecone 控制台会给出克隆项目后,复制 .example.env.local 为 .env.local,填入上述三个值,然后:
npm install
npm run dev
访问 http://localhost:3000,点击"Create index and embeddings"等待索引建立(2-4 分钟),之后就可以用自然语言提问了。预置文档是 Lens Protocol 的开发者文档,所以默认只回答相关问题——换成自己的文档即可。
这个 starter 项目在教育场景下非常出色,但直接用于生产需要谨慎:
vectorDimensions = 1536 写死在代码中,如果换 embedding 模型(如 text-embedding-3-small 的 1536 维),需要注意兼容性这个项目本质上是一个 RAG(Retrieval-Augmented Generation) 架构的最小可行实现。RAG 在 2023-2024 年成为企业落地 LLM 应用的主流范式——通过检索外部知识库弥补 LLM 本身的知识截止和幻觉问题。Pinecone 作为向量数据库赛道融资最多的公司之一,与 LangChain 的深度集成让这套模板成为了的事实标准。
从增长曲线看,LangChain 社区在 2023 年经历了爆发式增长,而这个项目作为其官方推荐的入门示例之一,被大量教程和视频引用。对于想入门 AI 应用开发的工程师来说,吃透这个项目是理解 RAG 全链路最省力的路径。
一句话总结:这是一个用 LangChain + Pinecone + GPT-3 构建的语义搜索 Next.js 应用,以最小代码量展示了 RAG 的完整闭环,是 AI 应用开发的优秀入门教材,但生产部署需要自行补充容器化、错误处理和成本控制。