AI 面试教练 Agent 实战(中):记忆提取、用户画像与更新
《Agent 大模型 0 到 1 系统课》 · 程序员 Sunday
你正在阅读本节的免费试读。完整课程 ¥499,可在文末添加作者微信购买。
上一篇,咱们已经把 AI 面试教练跑了起来
这一篇,咱们就从页面中的 “提交回答” 开始,看看一次面试回答是怎样被评估、提炼,并最终变成长期训练记忆的。
从“提交回答”进入项目
先创建一场专项面试。
面对第一道题,点击“填入不完整回答”,页面会自动填入:“它们都是保存聊天记录的,只是保存位置不同。”
然后点击 “提交回答”。
这个按钮位于 web/src/App.vue,点击以后会执行 submitAnswer():
async function submitAnswer() {
if (!session.value || !canSubmit.value) return
await run(async () => {
session.value = await api.answer(
token.value,
session.value!.sessionId,
answer.value
)
answer.value = ''
await refreshSidebar()
await scrollToBottom()
})
}
这里传入了三份数据:
token:当前登录用户的演示 TokensessionId:正在回答哪一场面试answer:用户刚刚填写的答案
接着,web/src/api.ts 中的 api.answer() 会发送下面这个请求:
POST /api/sessions/{sessionId}/answers
Content-Type: application/json
x-demo-token: demo-linxia
{
"answer": "它们都是保存聊天记录的,只是保存位置不同。"
}
请求先进入 server/src/interview/interview.controller.ts 中的 answer() 方法:
Controller 只负责接收请求。
真正的业务入口,是 server/src/interview/interview.service.ts 中的 InterviewService.answer()。
到这里,咱们就看到了真实的核心业务逻辑了
服务端核心逻辑
进入 InterviewService.answer() 以后,代码不会立刻把答案交给模型。
它会先确认两件事:
// 校验当前用户是否有权限访问该 Session,并获取会话基本信息
const session = await this.requireSession(
principal,
sessionId
)本节试读已结束
继续学习,解锁完整课程
购买《Agent 大模型 0 到 1 系统课》,
继续阅读本节剩余内容与后续课程。
