Appearance
本节课代码:https://github.com/AI-FE/private-component-codegen/tree/第23课
上节,基于 OpenAI SDK 实现了 Embedding 的逻辑。
本节,基于 OpenAI SDK 实现 RAG API 的逻辑。
新建一个
第 23 课
的分支。
bash
git checkout -b 第23课
1. 添加数据库向量相似度查询 selectors
新建
lib/db/openai/selectors.ts
文件, 让 cursor agent composer 基于以下 prompt 生成代码:
md
创建一个基于向量嵌入的语义相似度搜索函数。该函数需要:
- 接收一个查询向量(embedding)作为输入
- 计算输入向量与数据库中存储的向量之间的余弦相似度
- 筛选出相似度高于指定阈值的结果
- 返回相似度最高的 N 个结果,包含原始内容和相似度分数
- 使用 SQL ORM 实现数据库查询
2. 添加针对单条 message 的 Embedding 函数以及召回
修改
app/api/openai/embedding.ts
文件
3. 新建 OpenAI API 的 RAG API 路由
新建
types.ts
文件,定义 RAG API 的请求体
新建
app/api/openai/route.ts
文件,让 cursor agent composer 基于以下 prompt 生成代码:
md
创建一个基于 Next.js 的流式 AI 对话 API 路由处理器,使用 OpenAI API 实现。该接口需要实现以下功能:
1. 通过 POST 请求接收对话消息
2. 基于最后一条消息使用向量嵌入(embeddings)查找相关内容
3. 创建 OpenAI 的流式对话补全,要求:
- 将相关内容整合到系统提示词中
- 使用服务器发送事件(SSE)进行流式响应
- 在流中同时返回 AI 响应片段和相关内容