介绍项目的召回、重排和 SQL 生成链路。

考查重点:元数据召回与 SQL 生成。问题召回表/字段/指标,重排合并补关联,构上下文生成SQL,校语法/口径后只读限时执行

本题目录

参考答案

核心回答

以电商问数为例,项目面向需要查询经营指标的业务用户。用户问“上月华北地区的销售额”,系统需要把“销售额”映射到确定的指标口径,把“华北”映射到真实字段取值,把“上月”换成明确时间区间,最后才能生成可执行的查询。

完整链路可以概括为:在授权范围内召回表、字段、指标和取值,精筛并补齐关联,生成 SQL,再经独立校验与受限执行返回结果。 召回负责不漏关键知识,重排负责把有限上下文留给当前问题真正需要的内容,SQL 生成负责组合查询逻辑。

召回与重排具体做什么

先由后端确定用户可见的数据源和元数据范围,再从问题中提取指标、维度、实体和时间。字段与指标描述适合语义检索;字段名称、别名和具体取值可以结合关键词检索;已审核的问句与 SQL 示例能提供写法参考。精确名称匹配和语义匹配可以互补,不必把所有知识都放进同一种索引。

合并时按稳定的表、字段或指标 ID 去重,保留来源和版本。重排可以采用专门的模型,也可以用规则或大模型精筛,但应看它是否改善下游查询正确性,不能仅凭文本相似度判断成功。筛选后还要补齐必需的连接键、关联路径和计算依赖:某张桥接表与问句字面上不相似,也可能是正确连接必需的。

如果两个“销售额”指标口径冲突,或业务上没有唯一确定的关联,应先澄清,不能让重排悄悄替用户决定。

从上下文到查询结果

给生成模型的上下文应包括选中的表字段、关联关系、指标公式与过滤条件、单位、时间边界、数据库方言和少量相关示例。字段取值只提供当前任务必要且允许披露的部分,不把整张表样本传给模型。

生成的 SQL 仍是候选。后端解析语句,检查对象与操作权限;在受控连接上检查语法、执行计划和资源预算;通过后以只读账号限时执行。校正后的 SQL 必须重新走相同检查,并限制校正次数。

返回前再核对结果粒度、单位、时间和异常规模,基于实际结果解释答案。追踪记录应能区分“没召回正确指标”“重排删掉了连接字段”“生成写错条件”和“执行超时”,这样优化才有针对性。

对应教程

参考资料

相关面经

1 篇

多益网络

游戏后端开发工程师
秋招
查看原面经 →
讲下你们项目完整的召回、重排、SQL生成链路

相关题目

4 题