LangChain 与 Supabase - 为您的网站创建 ChatGpt 聊天机器人
langchain-supabase-website-chatbot 项目旨在帮助用户利用 LangChain、Supabase、Typescript、OpenAI 和 Next.js 创建一个聊天机器人,为网站提供智能交流功能。
项目背景
LangChain 是一个框架,简化了可扩展 AI/大型语言模型应用程序的构建过程。Supabase 是一个开源的 Postgres 数据库,利用 pg 向量扩展可用于存储嵌入。使用这些工具,可以在自己的网站上搭建一个功能强大的 Chatbot。
开发步骤
克隆项目
首先,用户需要将项目克隆到本地:
git clone [github https url]
安装依赖包
使用以下命令安装所需的包:
pnpm install
配置 .env
文件
配置您的环境变量文件:
- 复制
.env.local.example
并重命名为.env
。 - 访问 OpenAI 获取 API 密钥,并插入
.env
文件。 - 在 Supabase 创建数据库,并按照官方文档获取并填入密钥。
配置网站 URL
在 config
文件夹中,替换数组中的 URL 为您的网站地址。为了让脚本正常运行,需要设置多个 URL。
设置自定义加载器
在 utils/custom_web_loader.ts
文件中,修改 load
函数内的 title
、date
和 content
的 CSS 选择器。若想了解更多关于 Cheerio 的使用,可查阅相关文档。
元数据中可以添加自定义元素,但默认格式要求 pageContent
至少为一个字符串,metadata
需包含一个 source
属性。
配置数据库
在 Supabase SQL 编辑器中,运行 schema.sql
,确保数据库中存在 documents
表和 match_documents
函数。
数据抓取与嵌入
要运行数据抓取及嵌入脚本,执行以下命令:
npm run scrape-embed
此操作会访问 config
文件夹中列出的所有 URL,并根据 custom_web_loader.ts
文件提取指定数据。随后,利用 OpenAI 周到的 text-embedding-ada-002
转换所抓取数据为向量。
运行应用
确认嵌入和内容成功添加到 Supabase 表后,运行以下命令启动应用:
npm run dev
用户即可在网站中输入问题,利用聊天机器人的智能功能。
致谢
该项目的前端灵感来自 langchain-chat-nextjs 项目,同时得益于生产力专家 Thomas Frank 的网站中深入的 Notion 指南。