平安好医生面试面经-附带回答版本

Q1:介绍下你自己。

A:面试官你好,我是xxx,计算机相关专业本科毕业,毕业后一直在做 Java 后端和AI相关的项目。最近参与过AI语音助手和设备配套的OTA平台,之前做过企业内部的AI知识助手、云图库和电商。其中AI语音助手和AI知识助手,主要是与AI相关的开发,AI语音助手是将RAG、Tool Calling、实时语音链路落实到Spring Boot、MySQL、Redis这些工程组件上,AI知识助手则偏向于RAG和Tool Calling;OTA平台、云图库和电商则主要是传统的Java后端开发。

Q2:RAG检索过程是什么样的?

A:在我们的开发应用中,会把RAG分为离线建库和在线检索两部分。

  1. 离线侧先解析文档,保留Markdown标题层级、表格和产品版本等metadata,再按照语义边界且chunk,生成向量并写入向量索引,同时建立BM25倒排索引。
  2. 在线侧先对query做分类或者改写,并且按照产品、版本、权限做过滤,然后并行做向量召回和关键词召回,用RRF合并候选,必要时用Cross-Encoder精排。最后按token预算去做驱虫和context packing,把来源一起交给模型,证据不足就拒绝回答。

Q3:打分过程是什么样的?

A:Top K并不是打分算法,它知识按照分数排序后的截断。向量召回的原始分数可能是余弦相似度、点积或者L2距离,BM25则根据词频、逆文档频率和文档长度给分。两路分数不能直接相加时,可以按排名用RRF融合,之后Cross-Encoder把query和chunk一起输入,得到更加精细的相关性分数。最终再取Top-N进入上下文。当然不同向量库的score方向和归一化方向不同,不能只看一个阈值。

Q4:ReAct的原理是什么?

A:ReAct的核心是模型根据当前观察选择下一步动作,工具返回结果后形成新的观察,再决定继续调用工具还是给出最终答案。生产环境中我们一般不会把内部推理原样展示或者记录,更多的是记录工具名、参数摘要、权限决策、结果状态和可审计的决策说明,另外为了避免循环,还需要限制最大步数、总时长和工具集合。

Q5:Plan和ReAct的区别是什么?

A:ReAct是每得到一次Observation就决定下一步的Action;Plan-and-Executor则是先形成相对完整的计划,再由执行器逐项执行,必要时重新规划。

Q6:Agent完整的工作过程是什么样的?

A:请求进来先生成traceId,并且绑定用户、租户和会话;随后组装system规则、当前问题、近期历史、RAG证据、可用工具和权限信息。模型如果选择工具,只输出工具名和结构化参数;服务端做schema、权限、范围、敏感操作二次确认和幂等校验,再通过带超时、重试、熔断的执行器调用。工具结果会被标准化为Observation回填,模型决定继续还是结束。最终回复要包含来源或执行结果,整个过程记录prompt/tool版本、耗时、错误码和审计信息。

Q7:上下文组装是什么过程?

A:上下文组装是每次调用模型前,把本轮需要的输入按优先级放进token budget。通常包含system prompt、当前问题、最近会话、RAG证据、工具描述、工具结果、用户画像和权限信息。安全规则和当前问题不能被裁掉,RAG证据要按照相关性和多样性选择;旧历史先做滑动窗口,再做摘要。需要注意ChatMemory只是这些信息的一个来源,但是不等于上下文本身。

Q8:记忆怎么持久化,如何提取?

A:这个功能的本质是把对话历史持久化到MySQL中,然后每次请求大模型之前会根据会话ID查询最近的历史消息,再重新放入模型上下文中。最初使用的Spring AI的内存对话记忆,但是这会导致服务重启后数据丢失,所以我们自定义一个ChatMemory实现Spring AI的ChatMemory接口。从数据层来说,是设计了一张chat_messagede表,通过conservationId区分会话,同时保存消息类型、文本内容和metadata。matadata类型是Map,使用MyBatis-Plus的JacksonTypeHandler将其转换为JSON存入MySQL中。再服务层的具体实现上,add方法负责把Spring AI的Message转换为数据库实体写入;get方法会根据会话ID查询最近N条消息,再转换为对应的UserMessage、AssistantMessage等对象;clear方法负责清空指定会话。最后,把这个自定义的chatMemory配置到MessageChatMemoryAdvisor中,每次请求都携带同一个chatId,Advisor就会自动读取并补充上下文,从而实现跨请求、甚至服务重启后的对话记忆。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
RampageRain
作者分享
深圳融聚汇面经-附带入职求助 一、面试经历 1.0 岗位JD介绍 1. 面试岗位:java开发工程师 2. 面试方式:线下面试 3. 面试时常:2h30min 4. 公司简介:金融证券 大数据 1.1 AI编程相关 1. 做一下自我介绍。 2. 你在项目中做过印象最深刻的内容是什么介绍一下。 3. Agent编排是什么样的?如果要求你对你写的每个Agent做一个监控,检查是否完成或者检查异常要怎么做?你们项目中有涉及到这一部分吗? 4. harness了解吗?介绍一下。 5. plan模式是什么?ReAct模式是什么?他们的区别是什么? 6. 你平时如何使用AI进行Coding?有没有遇到过LLM幻觉问题?如何处理? 7. 你在开发过程中觉得AI编程的优缺点是什么? 1.2 Java相关 1. MySQL的默认存储引擎是什么?其他存储引擎有哪些了解吗?介绍一下。 2. MySQL默认的事务隔离级别是什么?介绍下事务隔离级别。 3. 旁路缓存了解吗?介绍一下。 4. 介绍下你们项目中运用到的缓存技术。 1.3 其他 1. 认为Java语言社区氛围如何? 2. 如果让你转Rust语言你可以接受吗? 二、入职求助 1. 个人情况介绍:楼主最近也算是比较活跃在编程导航了,因为被KO了(那很倒霉了)。说回正题,楼主22年毕业于某211大学网络工程专业,之后入职本地一家小公司,主要做crud(懂得都懂),干了两年,觉得没什么前途,在24年7月跳槽到了华为od干了一年左右,结果被调岗到了前端,因为前端使用asp这种祖传项目,外加坚持古法编程,楼主实在太菜不会写,于25年10月裸辞,之后求职了好几个月,26年3月入职了追觅,6月裁员大屠杀,直接6.31日离职了。也算是命途多舛。7月投递简历,大概面了7-8家没什么下文,今天,哦,现在过了12点,已经是昨天线下面试了深圳融聚汇这家公司,当天下了offer,要求我下周三入职,已经接了,但是还在犹豫要不要去。 2. 犹豫的原因: ①. 下offer和入职都非常着急,我非常担心又是一个很坑爹的工作,说实话被坑怕了 ②. 薪资问题,第一家公司是12k,od给了15k,追觅给了16k,这家公司只能薪资平移16k,但是最主要的是绩效占了50%,试用期3个月,试用期打九折,签约为3年,也就是基本工资只有8000,绩效试用期7000,正式为8000,这让我觉得非常离谱,从来没见过这么离谱的绩效占比,另外五险一金也是按8000来算的。这个占比我其他朋友提出要是绩效考核给一个根本无法完成的任务就很悬,另外一个朋友则表示金融证券加班非常严重。 ③. 工作时间是朝九晚六,离家通勤时间大约一小时。(说实话觉得还挺累的) 3. 现状: 面试安排: ①. 下周一有字节跳动-懂车帝的harness工程师面试邀约 ②. 下周二有泰康人寿-java研发工程师面试邀请 ③. 下周三有金仕达-智能体平台研发工程师面试邀请 其他: ①. 手头offer只有这一个 ②. 面试了成都拓达聚思力-高级java开发工程师有致电,但是因为面试原因没有接听(个人感觉是凉面,面的特别基础特别细,面经后续公布) 4. 问题 ①. 有必要先去这家公司干吗?还是继续待业求职?目前的存款够在深圳支撑3-4个月。 ②. 如果试用期离职,会不会被要求赔偿?如果真的试用期离职了,不在简历上写这段经历可以吗? ③. 个人感觉全职求职有时候真的很没动力学习,感觉非常疲惫,加上这几段工作经历都很糟心,有时候真的觉得太想摆烂了。总结来说就是待在家全职求职觉得没有钱,很焦虑,这也导致有时候学不进去,入职骑驴找马又担心工作期间不能及时面试和复习,也担心简历中再次出现这种短期经历。 总结: 最后写在这里,看看大家的意见,再评估一下,也希望各位大佬们给点建议QAQ孩子真是被坑怕了。(ps:之前欠下很多面经,咕了yes哥,明天就写,下次一定(捂脸)
5
深圳鸿航达科技有限公司面经
5
Day 1 ✅ 今天做了: 1. 面试鸭三道题 2. 正式离职流程启动 3. 学习MySQL的执行流程 ⏰ 明天计划: 1. 继续学习面试鸭题目 2. 学习MySQL底层存储 📚 今日感悟: 1. 复习了JAVA基础集合 2. 学习MySQL的底层知识
3
Day 1 ✅ 今天做了:面试鸭每日三题完成学习,复习面向对象三大特征。 ⏰ 明天计划: 1. 书写记录三大特征的笔记 2. 复习反射的相关内容 📚 今日感悟: 1. 复习了反射的面试题,但是对于细节还要更多的查看相关资料; 2. 复习了抽象类和接口的区别; 3. 复习到了不熟悉的知识-动态代理,还需要进一步学习,知识薄弱点。
2
求助:用户中心项目拉取鱼总的前端项目但是无法运行,因为之前是自己写前端,但主方向是后端,现在前端不知道删改了哪些地方,导致无法运行,想问问有没有前端可运行的开源代码,或者怎么运行鱼总的前端框架[流泪]
3
下载 APP