Skip to content

前面的课程,我们基于 OpenAI SDK 完成了整个 RAG 的实现。

本节开始,我们开始基于 Vercel AI SDK 来实现 RAG 的逻辑。

  • 使用 Vercel AI SDK 构建 Embedding 的知识库

新建一个第 25 课的分支。

bash
git checkout -b 第25课

1.vercelai embedding 表初始化

复制一份lib/db/openai文件夹,重命名为lib/db/vercelai

  • 修改lib/db/vercelai/schema.ts文件,将openai替换为vercelai

  • 同时修改lib/db/vercelai/actions.tslib/db/vercelai/selectors.ts中对应的引用。

执行数据库同步命令:

bash
pnpm db:generate
pnpm db:migrate

注意:如果遇到以下错误:

bash
PostgresError:type "vector" does not exist

请在 supabase 的 sql 编辑器中执行以下命令:

sql
CREATE EXTENSION IF NOT EXISTS vector;

2.将基于 openai 的 embedding 逻辑重构为基于 vercelai 的逻辑

让 cursor agent 基于以下 prompt 生成代码:

md
请使用 vercel ai sdk 重构@embedding.ts 中的代码保存到@embedding.ts 下

llms.txthttps://llmstxt.org/

vercelai 的 llms.txthttps://sdk.vercel.ai/llms.txt

将 vercelai 的 llms.txt 链接添加到 cursor 的 docs 中。

md
@Vercel 请参考文档中的用法

3.编写脚本,将私有组件知识库中的内容转换为 embeddings,并保存到数据库中

复制一份app/api/openai/embedDocs.ts文件到app/api/vercelai/embedDocs.ts

添加脚本:

bash
pnpm run embedDocs:vercelai