Repository navigation
feat: preserve complete metadata embeddings for tables and datasources - #1451
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
宽表及大型数据源的元数据超过 embedding 模型输入上限时,尾部字段会被截断,无法参与召回。本次按实际 tokenizer 上限保存完整块集合,使所有已选表、字段参与表筛选和数据源预筛选。
新增独立内部存储及 schema-only 迁移;旧 embedding 字段保留,管理 DTO 不暴露新向量。后台使用单工作线程、分页扫描和有界合并队列,支持连续编辑、失败及重启恢复;模型、权重、候选数和权限边界保持原有配置。
Evidence
以下为本分支已有验证,本次提交补充测试时未重复执行产品测试;补充测试代码与已执行版本一致。
补充组合条件诊断:25 个候选中仅一个同时具备 A+B,11 个仅 A、11 个仅 B、2 个均无;固定取前 10、融合向量权重 0.4。4 组主题各含直接及同义表达,真实模型编码 5584 块,逐块确认没有截断,最大 128 tokens。
共 51 passed、21 failed,失败为正确候选未进入前 10,保留为明确的召回限制。同块改跨块新增 5 项漏选;精确字段关键词融合三种布局均为 4/4,同义关键词更易失败。这是人工关键词、合成干扰项的压力对照,不代表生产失败率,也不能将全部失败视为相对旧版本的回归。
可复现用例:
backend/tests/test_metadata_conjunction_evaluation.py。从 backend 目录,在已授权的独立 PostgreSQL 与本地模型环境,显式设置SQLBOT_RUN_METADATA_CONJUNCTION=1、SQLBOT_TEST_DATABASE_URL、SQLBOT_DB_URL后执行python -m pytest -q tests/test_metadata_conjunction_evaluation.py;可设置SQLBOT_METADATA_CONJUNCTION_REPORT输出逐项 JSON。默认跳过该文件的 72 项诊断,不访问外部服务;它目前不是全绿的质量门槛。Merge Danger
Door: two-way
新增存储不删除业务数据,但版本切换需协调后台写者与向量重建。升级先停止旧服务及后台写者,再启动新版本迁移和补齐;未承诺新旧版本滚动混跑。
Blast Radius: retrieval
影响表筛选、数据源预筛选与后台向量生成。补齐期间保留全部合法候选会增加上下文和耗时;最大块相似度仍可能漏选跨块组合条件,尤其同义表达及短干扰项场景,数据源纯向量同样受影响。该限制应作为后续召回优化的明确输入,本 PR 不宣称解决所有召回质量问题。