From 8b650f4e5f7d34368ddc14d7abc2693f0e1c296d Mon Sep 17 00:00:00 2001 From: li552233 Date: Tue, 28 Apr 2026 09:45:06 +0000 Subject: [PATCH] Modify ov search trigger --- skills/smart-data-developer/SKILL.md | 421 +++++++++++++++++---------- 1 file changed, 260 insertions(+), 161 deletions(-) diff --git a/skills/smart-data-developer/SKILL.md b/skills/smart-data-developer/SKILL.md index ee83cf5..1600d3a 100644 --- a/skills/smart-data-developer/SKILL.md +++ b/skills/smart-data-developer/SKILL.md @@ -1,218 +1,300 @@ --- name: smart-data-developer -description: 智能数据开发员工。本项目为数据开发专用项目,唯一任务是将业务需求转化为可执行SQL。【任何用户消息都必须立即触发此技能】。无论是需求描述、问题咨询、闲聊问候、或其他任何形式的用户输入,都应触发此技能启动知识检索→需求分析→模型设计→SQL编写的工作流程。此技能是本项目的核心入口,无例外、无条件触发。 +description: 智能数据开发员工。本项目为数据开发专用项目,唯一任务是将业务需求转化为可执行SQL。【任何用户消息都必须立即触发此技能】。无论是需求描述、问题咨询、闲聊问候、或其他任何形式的用户输入,都应触发此技能启动需求分析→模型设计→SQL编写的工作流程。此技能是本项目的核心入口,无例外、无条件触发。 --- # 智能数据开发员工 ## 技能定位 -按序调用三个子技能完成端到端数据开发。**不体现角色身份**,确认发言自然融入工作流程。 +按序调用子技能完成端到端数据开发。 | 步骤 | 子技能 | 产出物 | |-----|--------|--------| -| 0 | 知识检索 | OpenViking 资源库相关知识 | | 1 | requirement-analyzer | 《数据需求技术规范文档》 | | 2 | model-design-generator | 《模型设计技术规范文档》 | | 3 | write-sql | 可执行SQL脚本 | --- -## 步骤0:知识检索(前置步骤 - 必须执行) +## Conda 环境配置 -**⚠️ 在接收用户消息后,进入任何工作步骤之前,必须先检索 OpenViking 资源库获取相关知识。** +不同子技能和 OV 检索需要在不同 conda 环境中运行: -### 资源库结构 +| 功能 | 环境 | 激活方式 | +|-----|------|---------| +| data-structure-fetcher(数据源匹配) | `my_opencode` | `conda run -n my_opencode python script.py` | +| ov 检索(OpenViking 知识库) | `py13` | `conda run -n py13 ov ...` | -``` -viking://resources/sql-snippets/ -├── AWT_PRD_PD_INST_MBL/ # 宽带流量分类与宽表构建 -├── ADS_RPT_7542_DTL_WHWX_CDMA_D/ # ADS层报表7542明细 -├── DWM_NET_SAT_EVT_FIXDDR_SUM_D/ # DWM层网络事件汇总 -├── SBJ_LAB_AWT_CUST_INFO_ALL_D/ # 客户宽带移动流量统计 -├── PRJ025_GSJY_DTL_*/ # CDMA移动用户月度流量 -├── DWA_*/ # DWA层各类数据处理模块 -├── PAIMON_LABEL_*/ # Paimon标签处理模块 -└── ... # 更多SQL示例目录 -``` - -### 检索策略矩阵 - -| 检索类型 | 适用场景 | 命令示例 | 结果特点 | -|---------|---------|---------|---------| -| **语义搜索 (find)** | 需求内容、业务概念、功能描述、模糊需求 | `ov find "流量统计按月聚合" --uri "viking://resources/sql-snippets" --node-limit 10 --threshold 0.2` | 按语义相关性排序 | -| **精确搜索 (grep)** | 表名、字段名、变量名、特定关键词 | `ov grep "dwd_user_info" --uri "viking://resources/sql-snippets" --node-limit 5` | 精确匹配,高效 | -| **混合搜索** | 同时包含语义概念和具体名称 | `ov find "CDMA用户月度流量" --uri "viking://resources/sql-snippets" --threshold 0.2` + `ov grep` 补充 | 覆盖面更广 | -| **目录浏览 (ls/tree)** | 不确定具体内容,需要探索结构 | `ov tree viking://resources/sql-snippets --level-limit 2` | 结构概览 | -| **概述读取 (overview)** | 快速了解某个目录的功能 | `ov overview viking://resources/sql-snippets/{目录名}` | L1层摘要 | - -### 执行流程 - -``` -用户消息 → [分析消息] → [选择检索策略] → [执行检索] → [读取相关内容] → [整合知识] → 开始步骤1 -``` - -#### 1. 分析用户消息 - -识别两类信息: -- **语义概念**:如"流量统计"、"客户聚合"、"月度报表"、"宽带移动" -- **具体标识符**:如表名 `dwd_user_info`、字段名 `cust_id`、项目代号 `PRJ025` - -#### 2. 选择检索策略 +### conda run 示例 +**数据源匹配(my_opencode 环境)**: ```bash -# 情况A:纯语义内容(用户说"统计用户流量") -ov find "用户流量统计聚合" --uri "viking://resources/sql-snippets" --node-limit 10 --threshold 0.2 +# 直接使用 conda run 执行 Python 脚本 +conda run -n my_opencode python /path/to/data_fetcher_script.py -# 情况B:包含具体名称(用户说"查询dwd_cust_info表") -ov grep "dwd_cust_info" --uri "viking://resources/sql-snippets" --node-limit 5 - -# 情况C:混合情况(用户说"用dwm_net_sat_evt表做流量汇总") -# 先语义搜索找相关目录 -ov find "流量汇总网络事件" --uri "viking://resources/sql-snippets" --threshold 0.2 -# 再精确搜索确认表名 -ov grep "dwm_net_sat_evt" --uri "viking://resources/sql-snippets" - -# 情况D:完全不确定(首次接触某业务) -ov tree viking://resources/sql-snippets --level-limit 2 --abs-limit 100 -# 根据目录名/摘要判断相关性 -ov overview viking://resources/sql-snippets/{相关目录} +# 或先激活环境再执行 +conda activate my_opencode +python /path/to/data_fetcher_script.py ``` -#### 3. 读取相关内容 - +**OV 检索(py13 环境)**: ```bash -# 获取目录概述(快速了解功能,推荐先看) -ov overview viking://resources/sql-snippets/AWT_PRD_PD_INST_MBL -ov read viking://resources/sql-snippets/AWT_PRD_PD_INST_MBL/.overview.md +# 精确 grep 搜索表结构 +conda run -n py13 ov grep "dim_intnl_org" --uri "viking://resources/table-metadata" --node-limit 5 -# 读取完整SQL文件(深入参考) -ov read viking://resources/sql-snippets/{目录}/{具体文件}.sql +# 语义 find 搜索成功案例 +conda run -n py13 ov find "窗口函数" --uri "viking://resources/sql_snippets" --threshold 0.2 -# 读取摘要(最快速了解) -ov abstract viking://resources/sql-snippets/{目录} -ov read viking://resources/sql-snippets/{目录}/.abstract.md +# 读取资源内容 +conda run -n py13 ov read viking://resources/sql_snippets/{目录}/{文件}.sql ``` -#### 4. 整合知识 +--- -将检索到的以下信息纳入上下文: -- SQL 代码模式(JOIN、聚合、窗口函数等用法) -- 表结构规范(字段命名、分区策略) -- 业务逻辑(计算口径、过滤条件) -- 项目规范(命名约定、分层架构) +## OpenViking 资源库 -### 检索结果控制 +加载`ov-search-context`技能来查找数据开发相关的资源 + +### 核心资源 + +| 资源路径 | 用途 | 搜索策略 | +|---------|------|---------| +| `viking://resources/sql_snippets` | 成功SQL代码片段 | 语义find + 精确grep | +| `viking://resources/table-metadata` | 表元信息(表结构、字段定义) | 精确grep + 语义find | +| `viking://resources/field-process-memory` | 字段处理经验笔记 | 语义find + 精确grep | + +### 搜索参数推荐 | 参数 | 推荐值 | 说明 | |-----|-------|------| | `--node-limit` | 5-15 | 避免上下文膨胀 | | `--threshold` | 0.2 | 过滤低相关性结果(语义搜索) | -| `--level-limit` | 2 | tree浏览深度限制 | --- -## 困惑时主动检索(贯穿所有步骤) +## OV搜索强制执行时机 -**核心原则:遇到任何不确定的知识点,立即检索 OpenViking 资源库,不要猜测。** +**为什么必须 OV 搜索**:OV 知识库包含历史成功案例、表结构信息、字段处理经验。**不检索会导致**: +- 猜测表结构 → 字段选错 → SQL 失败 +- 缺乏成功案例参考 → 重复踩坑 → 代码质量差 +- 猜测字段含义 → 口径偏差 → 业务错误 +- 猜测处理方式 → 维护困难 → 返工成本高 -### 常见困惑场景与检索建议 +--- -| 步骤 | 困惑场景 | 检索方式 | -|-----|---------|---------| -| **步骤1** | 不清楚某业务概念含义 | `ov find "{概念名称}" --uri "viking://resources/sql-snippets"` | -| **步骤1** | 不确定某指标计算口径 | `ov find "{指标名称} 计算口径" --threshold 0.3` | -| **步骤2** | 不确定表结构/字段 | `ov grep "{表名}" --uri "viking://resources/sql-snippets" --node-limit 5` | -| **步骤2** | 不清楚分层架构规范 | `ov find "DWA层 DWM层 ADS层 规范" --threshold 0.2` | -| **步骤3** | 不确定SQL语法用法 | `ov find "{语法关键词} 用法示例" --threshold 0.2` | -| **步骤3** | 不确定窗口函数写法 | `ov find "窗口函数 row_number rank" --threshold 0.2` | -| **任意** | 不确定命名规范 | `ov find "命名规范 表名 字段名" --threshold 0.3` | +**强制触发时机(不可跳过)** -### 主动检索触发条件 +| 时机 | 触发点 | 搜索内容 | 强制性 | 检索数量 | +|-----|--------|---------|--------|---------| +| 步骤1 - 数据源匹配后 | data-structure-fetcher 返回源表列表后 | **每个推荐表执行 4 类检索**:表结构、成功SQL、字段处理经验、业务语义 | ✅ MUST | 每表 4 次 | +| 步骤1 - 核心字段确认后 | 用户确认核心字段时 | 对核心字段进行专项检索 | ✅ MUST | 每字段 3 次 | +| 步骤2 - 模型设计前 | 用户确认需求后,开始模型设计 | OV 检索分层规范、参考案例 | ✅ MUST | 2-3 次 | +| 步骤3 - SQL 编写前 | 用户确认模型设计后,开始编写 SQL | OV 检索语法、成功案例 | ✅ MUST | 3-5 次 | -遇到以下情况**必须**主动检索: -1. **概念模糊**:用户提到不熟悉的业务术语 -2. **表名陌生**:遇到从未见过的表名 -3. **字段歧义**:字段含义可能有多种解释 -4. **语法不确定**:不确定Spark SQL/Flink SQL的具体语法 -5. **规范疑问**:不确定是否符合项目规范 +--- -### 检索后的决策 +**数据源匹配后的具体检索内容** -- **找到明确参考** → 按参考模式继续工作 -- **找到多个版本** → 选择最相关/最新的,必要时询问用户 -- **未找到参考** → 使用通用最佳实践,并在产出物中注明"无历史参考" +| 检索类型 | 目的 | 命令(py13 环境) | +|---------|------|-----------------| +| ① 表结构检索 | 确认字段定义 | `conda run -n py13 ov grep "{表名}" --uri "viking://resources/table-metadata" --node-limit 10` | +| ② 成功SQL检索 | 找历史代码案例 | `conda run -n py13 ov grep "{表名}" --uri "viking://resources/sql_snippets" --node-limit 15` | +| ③ 字段处理经验 | 了解处理方式 | `conda run -n py13 ov grep "{表名}" --uri "viking://resources/field-process-memory" --node-limit 10` | +| ④ 业务语义检索 | 业务使用经验 | `conda run -n py13 ov find "{表名} {业务}" --uri "viking://resources/field-process-memory" --threshold 0.2` | + +--- + +**困惑场景(立即检索)**: +- 表名陌生 → 立刻 `conda run -n py13 ov grep "{表名}" --uri "viking://resources/table-metadata"` +- 字段歧义 → 立刻 `conda run -n py13 ov grep "{表名}.*{字段}" --uri "viking://resources/table-metadata"` +- 语法不确定 → 立刻 `conda run -n py13 ov find "{语法}" --uri "viking://resources/sql_snippets" --threshold 0.2` +- 找不到成功案例 → 立刻 `conda run -n py13 ov find "{业务场景}" --uri "viking://resources/sql_snippets" --threshold 0.2` + +--- + +## OV命令速查 + +**注意:OV 检索需要在 `py13` conda 环境中运行,使用 `conda run -n py13 ov ...`** + +```bash +# === 精确grep:定位具体表/字段 === +用表名搜索: +conda run -n py13 ov grep "{表名}" --uri "viking://resources/table-metadata" --node-limit 5 + +表名加字段名组合搜索: +conda run -n py13 ov grep "dim_intnl_org.*org_id" --uri viking://resources/table-metadata -n 5 + +多表名 OR 搜索: +conda run -n py13 ov grep "table1|table2|table3" --uri viking://resources/table-metadata -n 5 + +# === 语义find:召回相关内容 === +conda run -n py13 ov find "{业务概念}" --uri "viking://resources/sql_snippets" --threshold 0.2 +conda run -n py13 ov find "{问题描述}" --uri "viking://resources/field-process-memory" --threshold 0.2 + +# === 使用源表信息搜索成功案例 === +conda run -n py13 ov grep "{源表表名}" --uri "viking://resources/sql_snippets" --node-limit 10 +conda run -n py13 ov grep "{源表表名}.*{字段}" --uri "viking://resources/field-process-memory" --node-limit 10 +conda run -n py13 ov find "{字段名} 问题描述" --uri "viking://resources/field-process-memory" --node-limit 5 + +# === 读取内容 === +conda run -n py13 ov overview viking://resources/table-metadata/{表名} +conda run -n py13 ov read viking://resources/sql_snippets/{目录}/{文件}.sql +conda run -n py13 ov read viking://resources/field-process-memory/{文件}.md +``` --- ## 工作流程 ``` -用户消息 → [步骤0:知识检索] → [步骤1:需求分析] → [确认] → [步骤2:模型设计] → [确认] → [步骤3:SQL编写] → 交付 - ↑ ↑ ↑ - │ │ │ - 困惑时主动检索 困惑时主动检索 困惑时主动检索 +步骤1:需求分析 → 调用 requirement-analyzer + 数据源匹配的同时进行OV检索 + 困惑时OV检索 + ↓ +步骤2:模型设计 → 调用 model-design-generator + 困惑时OV检索 + ↓ +步骤3:SQL编写 → 调用 write-sql + 困惑时OV检索 + ↓ +交付完成 ``` --- ## 执行流程详细步骤 -### 步骤0:知识检索(前置)- 必须执行 +### 步骤1:需求分析 -**收到用户消息后立即执行,无例外。** +**执行前检查**:无(直接开始)。 -1. 分析用户消息中的语义概念和具体标识符 -2. 按检索策略矩阵选择合适的搜索方式 -3. 执行检索命令 -4. 读取相关概述和完整内容 -5. 整合知识到上下文 +调用 `skill(name="requirement-analyzer")` -**检索完成后自然衔接**: -``` -已从知识库检索到相关内容:{简要描述检索到的关键信息,如"找到CDMA月度流量统计模式、dwm层表结构规范"} +**困惑时检索(py13 环境)**: +- 不熟悉业务概念 → `conda run -n py13 ov find "{概念}" --uri "viking://resources/field-process-memory" --threshold 0.2` +- 不确定指标口径 → `conda run -n py13 ov find "{指标名称} 口径" --uri "viking://resources/field-process-memory" --threshold 0.3` -开始需求分析... +**完成后衔接**:`📄 已保存:{路径}。需求分析完成,开始模型设计...` + +#### ✅ MUST:数据源匹配后 OV 深度检索 + +**强制性说明**:data-structure-fetcher 返回推荐数据源后,**必须对每个推荐表进行全方位 OV 检索**。不检索会导致: +- 猜测表结构 → 字段选错 → SQL 失败 +- 缺乏成功案例参考 → 重复踩坑 → 代码质量差 +- 不了解字段处理经验 → 口径偏差 → 业务错误 + +--- + +**触发时机**:requirement-analyzer 模块3,data-structure-fetcher 返回推荐表列表后,立即执行 + +**执行环境**:py13 conda 环境,使用 `conda run -n py13 ov ...` + +--- + +**检索策略:每个推荐表必须执行以下 4 类检索** + +| 检索类型 | 目的 | 命令模板 | node-limit | +|---------|------|---------|------------| +| ① 表结构检索 | 确认表字段定义、数据类型 | `conda run -n py13 ov grep "{表名}" --uri "viking://resources/table-metadata"` | 5-10 | +| ② 成功SQL案例检索 | 查找该表的历史成功 SQL 代码 | `conda run -n py13 ov grep "{表名}" --uri "viking://resources/sql_snippets"` | 10-15 | +| ③ 字段处理经验检索 | 了解该表字段的常见处理方式、注意事项 | `conda run -n py13 ov grep "{表名}" --uri "viking://resources/field-process-memory"` | 5-10 | +| ④ 业务语义检索 | 了解该表在业务场景中的使用经验 | `conda run -n py13 ov find "{表名} {业务场景}" --uri "viking://resources/field-process-memory" --threshold 0.2` | 5-10 | + +--- + +**具体执行流程(py13 环境)** + +```bash +# 对每个推荐表(如:dwd_crm_srv_complaint_rt),依次执行: + +# ① 表结构检索(确认字段) +conda run -n py13 ov grep "dwd_crm_srv_complaint_rt" --uri "viking://resources/table-metadata" --node-limit 10 + +# ② 成功SQL案例检索(找历史代码) +conda run -n py13 ov grep "dwd_crm_srv_complaint_rt" --uri "viking://resources/sql_snippets" --node-limit 15 + +# ③ 字段处理经验检索(找处理笔记) +conda run -n py13 ov grep "dwd_crm_srv_complaint_rt" --uri "viking://resources/field-process-memory" --node-limit 10 + +# ④ 业务语义检索(结合业务场景) +conda run -n py13 ov find "dwd_crm_srv_complaint_rt 投诉统计" --uri "viking://resources/field-process-memory" --threshold 0.2 --node-limit 10 ``` --- -### 步骤1:需求分析 +**检索结果利用** -**执行前检查**:是否已完成步骤0的知识检索?如果未完成,先执行步骤0。 +检索完成后,必须: -调用 `skill(name="requirement-analyzer")` +1. **汇总展示**:将检索结果整理成摘要,展示给用户 + ``` + 📊 OV 检索结果摘要: + + 【dwd_crm_srv_complaint_rt】 + - 表结构:包含 complaint_id、create_org_id、assist_dept_org_id 等字段 + - 成功案例:找到 3 个历史 SQL(投诉量统计、投诉处理时效分析) + - 处理经验:create_org_id 字段需关联组织架构表获取部门名称 + + 【dim_intnl_org_new】 + - 表结构:包含 org_id、org_name、accnt_bureau 等字段 + - 成功案例:找到 5 个历史 SQL(部门维度统计) + - 处理经验:org_name 有多级命名规范,需按业务口径标准化 + ``` -**困惑时检索**: -- 遇到不熟悉的业务概念 → `ov find "{概念}" --uri "viking://resources/sql-snippets"` -- 需要了解现有指标口径 → `ov find "{指标名称} 口径" --threshold 0.3` +2. **辅助源表选择**:基于成功案例数量和质量,建议用户优先选择哪些表 + ``` + 建议:dwd_crm_srv_complaint_rt 有 3 个成功案例,历史使用稳定,推荐优先选择 + ``` -**子技能完成后,自然衔接**: +3. **预加载到上下文**:检索到的成功案例和字段处理经验,需在后续模型设计和 SQL 编写时引用 + +--- + +**检索时机强制触发表** + +| 时间点 | 触发条件 | 检索内容 | 强制性 | +|-------|---------|---------|--------| +| data-structure-fetcher 返回后 | 推荐表列表返回 | 每个表的 4 类检索 | ✅ MUST | +| 用户补充新表名时 | 用户提及陌生表名 | 立刻 OV 检索该表 | ✅ MUST | +| 用户询问字段含义时 | 用户对字段有疑问 | OV grep 该表.字段 | ✅ MUST | +| 发现字段歧义时 | 同一字段有多来源 | OV find 语义检索 | ✅ MUST | + +--- + +**并行检索策略** + +为提高效率,对多个推荐表的检索可并行执行: + +```bash +# 并行检索多个表(使用 task agent 或 bash 后台) +conda run -n py13 ov grep "table1" --uri "viking://resources/table-metadata" --node-limit 10 & +conda run -n py13 ov grep "table2" --uri "viking://resources/table-metadata" --node-limit 10 & +conda run -n py13 ov grep "table3" --uri "viking://resources/table-metadata" --node-limit 10 & ``` -📄 已保存:{路径} -下一步将生成模型设计。请确认以上需求是否正确,或指出需要修改的内容。 +--- + +**关键字段专项检索** + +当推荐表中包含**核心业务字段**时,必须额外进行字段级检索: + +```bash +# 对核心字段(如:complaint_id、org_id)进行专项检索 +conda run -n py13 ov grep "dwd_crm_srv_complaint_rt.complaint_id" --uri "viking://resources/table-metadata" --node-limit 5 +conda run -n py13 ov grep "complaint_id" --uri "viking://resources/field-process-memory" --node-limit 10 +conda run -n py13 ov find "complaint_id 去重计数" --uri "viking://resources/sql_snippets" --threshold 0.2 --node-limit 10 ``` --- ### 步骤2:模型设计 -**执行前检查**:用户已确认需求。 +**执行前检查**:需求分析已完成,用户已确认需求。 -调用 `skill(name="model-design-generator")`,传入需求文档路径 +调用 `skill(name="model-design-generator")` -**困惑时检索**: -- 需要确认表结构 → `ov grep "{表名}" --uri "viking://resources/sql-snippets"` -- 需要了解分层规范 → `ov find "分层架构 DWA DWM ADS" --threshold 0.2` -- 需要参考命名规范 → `ov find "命名规范 表名前缀" --threshold 0.3` +**困惑时检索(py13 环境)**: +- 确认表结构 → `conda run -n py13 ov grep "{表名}" --uri "viking://resources/table-metadata"` +- 了解分层规范 → `conda run -n py13 ov find "分层架构 DWA DWM ADS" --uri "viking://resources/sql_snippets" --threshold 0.2` -**子技能完成后,自然衔接**: -``` -📄 已保存:{路径} - -下一步将编写SQL脚本。请确认以上设计是否正确,或指出需要修改的内容。 -``` +**完成后衔接**:`📄 已保存:{路径}。下一步将编写SQL脚本。请确认以上设计是否正确。` --- @@ -220,14 +302,13 @@ ov read viking://resources/sql-snippets/{目录}/.abstract.md **执行前检查**:用户已确认模型设计。 -调用 `skill(name="write-sql")`,传入需求文档和模型设计文档 +调用 `skill(name="write-sql")` -**困惑时检索**: -- 不确定SQL语法 → `ov find "{语法关键词} 用法" --threshold 0.2` -- 需要窗口函数示例 → `ov find "窗口函数 over partition" --threshold 0.2` -- 需要 JOIN 模式参考 → `ov find "JOIN left join full join" --threshold 0.2` +**困惑时检索(py13 环境)**: +- SQL语法 → `conda run -n py13 ov find "{语法} 用法" --uri "viking://resources/sql_snippets" --threshold 0.2` +- 窗口函数示例 → `conda run -n py13 ov find "窗口函数 over partition" --uri "viking://resources/sql_snippets" --threshold 0.2` -**完成后自然衔接**: +**完成后衔接**: ``` 📄 已保存:{路径} @@ -241,14 +322,12 @@ ov read viking://resources/sql-snippets/{目录}/.abstract.md ## 状态跟踪 -工作流状态: -- step 0: 知识检索完成,准备进入需求分析 -- step 1: 需求分析完成,等待用户确认 -- step 2: 模型设计完成,等待用户确认 +- step 1: 需求分析完成 → 准备模型设计 +- step 2: 模型设计完成 → 等待用户确认 - step 3: SQL编写完成 - step 4: 全流程完成 -记录四个阶段产出物路径:检索知识摘要、需求文档、模型设计文档、SQL脚本。 +记录产出物路径:需求文档、模型设计文档、SQL脚本。 --- @@ -259,31 +338,51 @@ ov read viking://resources/sql-snippets/{目录}/.abstract.md | 用户确认 | 进入下一步 | | 用户修改意见 | 调整后重新等待确认 | | 中途修改 | 回到对应步骤重新执行 | -| 用户提及陌生概念 | 先检索再回复 | +| 用户提及陌生概念 | 先OV检索再回复,提供选项 | --- -## 检索命令速查表 +## 交互工具 -```bash -# 语义搜索 -ov find "流量统计聚合" --uri "viking://resources/sql-snippets" --node-limit 10 --threshold 0.2 +在需要补充和确认信息,检查和修改的时候,使用`question`工具提供选项供用户选择,例如下面的情况: -# 精确搜索(表名/字段名) -ov grep "dwd_user_info" --uri "viking://resources/sql-snippets" --node-limit 5 - -# 目录结构浏览 -ov tree viking://resources/sql-snippets --level-limit 2 - -# 目录概述(快速了解) -ov overview viking://resources/sql-snippets/AWT_PRD_PD_INST_MBL - -# 读取完整文件 -ov read viking://resources/sql-snippets/{目录}/{文件}.sql ``` +例如下面的情况,请使用`question`工具: +请补充/确认以下信息: +1. 输出表中文名称:建议为"设备流量通话短信月均使用情况表",是否需要修改? +2. 输出表英文名称:请提供库名.表名(如:db_eda_xxx_prd.ads_device_usage_avg_6m) +3. 数据目录:请提供数据目录路径(如:上海电信/大数据中心-xxx团队/xxx应用层) +4. 业务口径细节确认: + - "近6个月"的具体时间范围是指:从当月向前推6个月(即统计月及之前5个月,共6个月)? + - "平均值"计算方式:是计算每个设备在这6个月的平均值,还是其他口径? + - 设备标识字段是什么?(如:设备号、用户ID、手机号等) +请确认或补充以上信息,确认后进入模块3(数据源匹配)。 +``` + +``` +请检查并修改: +- 字段是否完整?需要补充或删除哪些字段? +- 字段名称是否需要调整? +- 字段加工逻辑是否准确?来源表.字段是否正确? +- 负责人信息是否正确? +``` + +--- + +## 困惑场景检索策略 + +**注意:所有 OV 检索命令需在 py13 conda 环境中运行** + +| 困惑类型 | 检索资源 | 命令 | +|---------|---------|------| +| 不清楚表结构 | table-metadata | `conda run -n py13 ov grep "{表名}" --uri "viking://resources/table-metadata"` | +| 不确定字段含义 | table-metadata | `conda run -n py13 ov grep "{表名}.*{字段名}" --uri "viking://resources/table-metadata"` 或者 `conda run -n py13 ov grep "{字段名}" --uri "viking://resources/table-metadata"` | +| 不熟悉业务概念 | sql_snippets + field-process-memory | `conda run -n py13 ov find "{概念}" --uri "viking://resources/resources/field-process-memory" --threshold 0.2` | +| 需要代码参考 | sql_snippets + field-process-memory | `conda run -n py13 ov find "{功能}" --uri "viking://resources/sql_snippets" --threshold 0.2` | +| 找表成功案例 | sql_snippets + field-process-memory | 分别使用 `conda run -n py13 ov grep` 和 `conda run -n py13 ov find` 搜索两个资源 | --- ## 完成标志 -四步骤完成(知识检索 → 需求分析 → 模型设计 → SQL编写),用户已知交付物位置。 +三步骤完成(需求分析 → 模型设计 → SQL编写),用户已知交付物位置。