腾讯视频后台一面凉经
一、项目经历与基础了解
二、RAG 系统设计
- 你重构的检索增强架构,整体数据是如何设计的?
- 文档上传后是直接做向量化吗?流程是怎样的?
- 向量化用的是哪个模型?是怎么转化成向量的?
- 向量化调用了哪个第三方 API?
- 向量检索和关键词检索为什么要结合使用?
- 重排策略是怎么设计的?用了什么算法?
- 有没有验证过重排效果?
- 双方召回后,最终的排序是如何融合的?
- 如果 RAG 系统上线后用户反馈不准确,你会从哪些维度排查和优化?
三、MCP 工具调用与 Function Call 区别
- 你实现的 MCP 工具调用是怎么做的?
- MCP、Function Call、手写提示词拼接、Skill 这些分别在什么场景使用?有什么区别?
- Function Call 和 MCP 最大的区别是什么?
四、GeoHash 实现与邻居网格
- GeoHash 是你手动实现的吗?讲解一下算法。
- 邻居网格补偿策略是为了解决什么边界问题?
五、消息队列与可靠性
- 推荐系统中的异步批处理链路,可靠性是怎么保证的?消费者处理失败怎么办?
- 如果生产者发送失败,有没有应答机制?
六、配置热更新与可靠性
- 实时配置热更新,如果订阅者没收到更新消息怎么办?
- 你有没有想过用消息队列或 Redis Stream 来保证可靠性?
七、Go 并发与调度器
- 如果某个 goroutine 在写消息时发生阻塞,调度器会怎么处理?会不会影响其他 goroutine?
- goroutine 调度的具体策略是怎样的?
- 如果一个 goroutine 往 channel 发消息,另一个消费,如果消费者 panic,生产者会怎么样?
- 怎么避免这种阻塞或 panic 的情况?
八、网络协议与 IO 多路复用
- TCP 的 Nagle 算法了解吗?
- TCP 的 keepalive 是什么?跟连接池有什么关系?
- 连接池的作用是什么?怎么管理的?
- 如果全局 AMQP 连接断了,你的服务会怎么样?
- IO 多路复用的 select、poll、epoll 有什么区别?
- epoll 有哪几种触发方式?
九、Redis 数据结构与热 Key 处理
- Redis 常用数据结构有哪些?Sorted Set 底层实现是什么?
- Sorted Set 的时间复杂度是多少?
- 如果 Redis 某个节点的 CPU 打满了,你怎么排查和处理?有什么兜底方案?
十、AI 工具使用与代码实现
- 你在 AI 应用开发中用哪些工具?
- AI 在研发过程中对你帮助最大的是什么?哪些地方处理得不好?
- 你有没有自己搭过 AI 相关的东西?
- 了解像 Cursor 这类工具的流程吗?
十一、代码实现(手写 LRU 缓存)
- 代码实现思路是什么?
- 当前代码能支持并发吗?如果不支持,怎么改进?
- 如果要支持 TTL(过期时间),你会怎么设计?
- 有没有更优的过期清理策略?
查看3道真题和解析