快手后端一二面面筋

一面

  1. 请介绍一下你自己。

  2. 讲一下 Agent 的完整执行链路。

  3. Agent 最大执行 20 步和 RAG 最多补查 3 轮有什么区别?

  4. Agent 异步执行后,如何接收执行结果并通过 SSE 推送到前端?

  5. 请求线程直接返回后,为什么还能继续推送模型的输出?

  6. 不同用户之间如何实现隔离?不同用户的会话如何区分?

  7. topK 是如何设置的?有什么依据?

  8. 检索结果能不能回答用户的问题,由谁来判断?

  9. RAG 的完整执行流程是什么?

  10. 你的向量数据库目前有多大规模?

  11. 检索相关性是如何判断的?使用的是欧式距离吗?

  12. Agent 的思考与执行模式基于什么思想?

  13. 这个项目是自己做的,还是基于网上的项目改造的?

  14. 介绍一下第二个项目,你自己改造了哪些部分?

  15. 将用户信息从 ThreadLocal 改为 RequestScope,有什么区别?

  16. 如果有几亿用户使用这个系统,每次提问和回答都存数据库吗?你会如何优化?

  17. 如果只把会话上下文放在缓存中,用户过一段时间回来继续聊天,缓存已经过期了怎么办?

  18. MySQL 的事务隔离级别有哪些?分别解决了什么问题?

  19. MVCC 的原理是什么?

  20. 缓存穿透、缓存击穿和缓存雪崩有什么区别?分别如何解决?

  21. HashMap 的底层原理是什么?

  22. 线程池的核心参数有哪些?

  23. 线上出现慢 SQL,你会如何排查和解决?

  24. 什么情况下索引会失效?

25.力扣128 最长连续序列

二面

前面忘了后面忘了

  1. Agent 知识库项目如何防止恶意会话请求、避免用户绕过权限?

  2. 稠密向量和稀疏向量有什么区别?

  3. Java 中的强引用、软引用、弱引用和虚引用有什么区别?

  4. 谈谈你对 ThreadLocal 的理解。

  5. 什么是索引下推?

  6. Lock 和 synchronized 有什么区别?synchronized 除了修饰方法,还可以怎么用?

  7. 公平锁和非公平锁有什么区别?ReentrantLock 如何实现公平锁和非公平锁?非公平锁具体如何抢锁?

参考来源:https://www.nowcoder.com/feed/main/detail/7e0d8a703b554673bf3dcbc1830834a9