Sunday 的面试指南

AI 面试教练 Agent 实战(中):记忆提取、用户画像与更新

《Agent 大模型 0 到 1 系统课》 · 程序员 Sunday

你正在阅读本节的免费试读。完整课程 ¥499,可在文末添加作者微信购买。

上一篇,咱们已经把 AI 面试教练跑了起来

这一篇,咱们就从页面中的 “提交回答” 开始,看看一次面试回答是怎样被评估、提炼,并最终变成长期训练记忆的。

从“提交回答”进入项目

先创建一场专项面试。

面对第一道题,点击“填入不完整回答”,页面会自动填入:“它们都是保存聊天记录的,只是保存位置不同。”

AI 面试教练 Agent 实战(中):记忆提取、用户画像与更新 配图 1

然后点击 “提交回答”。

这个按钮位于 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:当前登录用户的演示 Token
  • sessionId:正在回答哪一场面试
  • 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() 方法:

AI 面试教练 Agent 实战(中):记忆提取、用户画像与更新 配图 2

Controller 只负责接收请求。

真正的业务入口,是 server/src/interview/interview.service.ts 中的 InterviewService.answer()。

AI 面试教练 Agent 实战(中):记忆提取、用户画像与更新 配图 3

到这里,咱们就看到了真实的核心业务逻辑了

服务端核心逻辑

进入 InterviewService.answer() 以后,代码不会立刻把答案交给模型。

它会先确认两件事:

// 校验当前用户是否有权限访问该 Session,并获取会话基本信息
const session = await this.requireSession(
	principal,
	sessionId
)

本节试读已结束

继续学习,解锁完整课程

购买《Agent 大模型 0 到 1 系统课》,
继续阅读本节剩余内容与后续课程。

扫码添加作者微信,备注「Agent 课程」

添加作者微信 · 购买完整课程

解锁完整课程 ¥499

《Agent 大模型 0 到 1 系统课》
扫码添加微信,备注「Agent 课程」,购买后由 Sunday 提供完整内容的学习方式。

扫码添加作者微信 LGD_Sunday,购买 499 元 Agent 课程

微信昵称:LGD_Sunday
手机上可长按保存二维码,再用微信扫一扫识别。

保存微信二维码