SuperAPI AI 工具集

di-agent-query-substrait

智能体与模型

查看项目

更新于 10-16 05:56

技能介绍

用途:将自然语言数据请求翻译为可执行的 Substrait JSON 查询计划,通过 Substrait DSL 实现。

主要能力:生成 Substrait DSL 与 JSON;从项目资产校验表结构;编译 DSL;执行查询;转换为 Elyra 流水线 JSON。

使用方式:先调用 get_substrait_dsl_examples 获取示例,user_request 必须原样传入用户完整消息,collection="draft_generation",n=5。再用 list_project_assets 与 inspect_project_asset(asset_type="data_asset")获取权威列名、类型与可空性,并按映射表转换为 DSL 类型(如 varchar→string、bigint→i64、date→date),可空列加 ?。随后调用 get_substrait_dsl_spec 学习规范,编写 DSL(每行 variable = Construct(...),以 return <vtable> 结尾,表达式内联,Join 条件用 left./right. 前缀,聚合与分组用 alias)。用 compile_substrait_dsl 编译,失败可自纠最多 3 次。用户明确要求时才执行:run_substrait_dsl 或 run_substrait_dsl_static,二者可互为回退;需要时用 convert_substrait_dsl_to_elyra 转换。

适用场景:需要把自然语言分析需求转为 Substrait 计划、执行查询或生成 Elyra 流水线的数据集成任务。

限制:表结构必须来自项目资产,不得用示例或先验知识猜测;Select 只保留列出列,Project 保留全部列并新增;聚合度量不得包 cast();最终列名不得含点号;可空列必须用可空类型后缀,否则 DataStage 运行时会崩溃;文本过滤建议用 lower() 做大小写不敏感比较;多表连接前建议先重命名重叠列。若 3 次自纠仍失败,需报告最终错误与最后一次 DSL。其他收费、平台与效果信息暂未提供。