Swiggy推出了Hermes V3,这是一款由生成式AI驱动的文本到SQL助手。该助手使员工能够用简单的英语查询数据。Hermes在Slack中运行,结合了向量检索、会话记忆、代理编排和解释层,以从自然语言输入生成准确的SQL查询。
Swiggy,一家印度的在线食品订购和配送公司,最初推出了Hermes作为一个轻量级接口,允许员工提出简单问题并接收针对内部数据存储执行的相应SQL查询。早期版本在派生指标方面存在局限性,缺乏对话上下文,对类似提示产生不一致的结果,并且没有明确的方法来验证生成的SQL。为了解决这些问题,工程团队使用少样本学习、元数据检索和围绕大型语言模型的结构化工作流重建了系统。

之前的Hermes整体架构(来源:Swiggy技术博客)
在第三次迭代中,Hermes引入了一个基于向量的提示检索系统,基于历史SQL在Snowflake中执行。由于大多数生产查询缺乏描述性元数据,团队利用大上下文语言模型将SQL查询转换为自然语言解释,有效地重建了缺失的查询意图。这些生成的提示通过向量相似性进行索引,并作为少样本示例注入,使Hermes能够在先前的分析模式中扎根新请求,并显著提高SQL生成的准确性。
正如Meghana Negi和Rutvik Reddy,Swiggy的工程师所强调的:
Hermes现在利用一个经过策划的先前执行查询及其提示的数据库,使用向量相似性进行检索,并记住对话上下文,将SQL生成准确性从54%提高到93%,同时实现自然的多轮交互。

Hermes V3工作流(来源:Swiggy技术博客)
Hermes V3还保持对话记忆,使多轮查询能够引用先前的交流而无需重复上下文。用户交互自然流畅,因为系统跟踪会话状态,将简单指标扩展为复合请求。一个编排代理实现了ReAct风格的推理循环,将复杂问题分解为可重复工作流中的离散任务:意图解析、完整性检查、元数据查找、示例检索、中间逻辑构建、SQL生成和可选的澄清请求。

用于查询生成代理流的结构化智能(来源:Swiggy技术博客)
另一个显著的增强是增加了一个解释层,揭示生成的SQL背后的假设并分配置信度分数。这种透明性使非技术利益相关者能够理解查询是如何形成的,从而增加对机器生成洞察的信任。
Hermes V3系统与Swiggy的安全、合规和元数据基础设施紧密集成。基于角色的访问控制、单点登录、临时回复和审计日志确保敏感数据访问符合内部治理政策。混合元数据检索策略有效地获取相关的模式、表和列详细信息,保持令牌使用在LLM服务限制以下,同时保持性能。
Hermes的架构涉及多个开源和云原生技术。检索功能使用向量数据库和嵌入模型;编排逻辑使用LangChain等工具实现结构化提示工作流;通过可观察性框架分层实现来源和监控。像Snowflake用于分析,PostgreSQL或类似的事务性数据库,以及API网关是支持Hermes功能的更广泛生态系统的组成部分。
