Interview: 支持流式输出+多轮对话+函数调用的LLM API Gateway设计


题目解析

LLM API Gateway是连接前端应用和后端推理服务的关键中间层,需要同时支持SSE流式输出、多轮对话的上下文管理和Function Calling的编排执行。这三个功能的组合显著增加了系统的状态管理复杂度,考察候选人综合的分布式系统架构设计能力。

解答思路

整体架构分为四个核心模块:1)协议层:对外提供OpenAI兼容API,支持SSE(Server-Sent Events)流式响应,通过HTTP chunked transfer编码实现逐token推送;2)会话管理:基于conversation_id维护多轮对话的消息历史,支持上下文窗口自动截断和历史摘要压缩;3)函数调用编排:解析模型输出中的function_call指令,路由调用外部工具服务,将结果拼接回prompt继续生成,支持并行多函数调用;4)路由与负载均衡:根据模型类型、请求优先级和后端负载智能路由到最优推理实例。

关键要点

流式场景下的错误处理是重要难点:生成到一半出错需要优雅降级而非直接断开。函数调用时需要暂停流式输出、执行外部调用、再恢复流式生成,整个流程需要精心设计的状态机,要考虑超时、重试和降级策略。多轮对话的上下文管理需要平衡历史完整性和token消耗成本。

加分回答

讨论请求级别的token用量计量和多维度计费机制,基于语义缓存的重复请求加速优化,以及Gateway层面实现的模型降级策略(主模型不可用时自动切换备用模型保证可用性)。提到OpenTelemetry分布式追踪对调试多步函数调用链路的重要性。

常见踩坑

流式输出时未正确处理背压(backpressure),客户端消费慢导致服务端内存持续堆积;对话历史存储未设置TTL导致存储空间无限膨胀;函数调用嵌套过深未设置递归深度限制导致无限循环。