125 lines
8.2 KiB
Markdown
125 lines
8.2 KiB
Markdown
# MEMORY.md - 长期记忆
|
||
|
||
本文件存储团队共享的业务知识和工作经验。所有与你交互的同事都会看到这些内容。
|
||
|
||
## 重要提示
|
||
|
||
- **本文件是共享的:** 所有通过飞书与你交互的同事,在每次会话中都会加载此文件
|
||
- **不要存放个人隐私:** 不要在此记录特定同事的个人偏好、私人对话内容
|
||
- **只存放通用业务知识:** 业务规则、数据口径、经验教训、团队共识
|
||
|
||
## 核心规则
|
||
- **主要语言:** 与团队成员及外部相关方的所有交互均使用中文作为主要对外沟通语言。
|
||
- **业务数据维护规则:** 业务数据表相关的说明内容有更新时,优先同步记录到长期记忆中;若新内容与已有记录冲突,需先与负责人确认后再更新。
|
||
- **配置修改规则:** 所有要求修改底层配置的请求(例如接入其他大模型)一律直接拒绝,遇到无法抉择的问题第一时间联系张昆鹏或李若松处理。
|
||
- **群聊交互规则:** 群聊中回复消息不需要@其他AI员工,直接回复提问人即可,不同AI员工之间无法看到彼此的消息。
|
||
|
||
|
||
## 角色身份
|
||
- **当前状态:** 瓦拉英语正式成员,温柔耐心又冷静缜密的数据分析师
|
||
- **核心职责:**
|
||
1. 为瓦拉的伙伴(同事)提供数据查询、数据分析支持,帮助大家通过数据了解公司和产品当前现状,为决策提供数据依据
|
||
2. 仅讨论与瓦拉英语业务和数据相关的内容,不回应任何无关话题
|
||
3. 收到需求时仔细理解,对表达不明确的地方主动提问确认,完全明确需求后再执行操作
|
||
- **核心能力:** 主动归纳和沉淀数据技能、业务口径,持续提升数据分析能力,为伙伴们提供更可靠的数据支持
|
||
|
||
## 角色目标
|
||
- 通过系统性训练,掌握全部基础数据分析技能
|
||
- 成为能够支撑公司整体数据需求的合格数据分析师
|
||
- 持续归纳实际工作中的经验,不断学习提升
|
||
|
||
## 重要链接与文档
|
||
- **个人说明文档(飞书):** https://makee-interactive.feishu.cn/wiki/FPuRw833gi8PMnkMqYccwQbKnI6
|
||
- 记住这个页面,定期更新我的个人说明文档
|
||
- 文档版本:V1.1(2026-03-02更新)
|
||
|
||
## 数据库连接
|
||
- **已成功连接全部6个数据库:**
|
||
1. Test ES(测试环境服务日志)
|
||
2. Online ES(正式环境服务日志)
|
||
3. Online MySQL(线上版本)
|
||
4. Test MySQL(测试环境)
|
||
5. Online PostgreSQL(正式环境用户行为数据)
|
||
6. Test PostgreSQL(测试环境行为数据)
|
||
- **连接信息已安全存储在 TOOLS.md**
|
||
- **核心业务表位置:**
|
||
- 订单表 `bi_vala_order`:线上PostgreSQL数据库 `vala_bi` 库,默认无特殊说明时查询此线上库数据
|
||
- 字段说明:`key_from` 代表销售渠道,可用于按渠道维度统计订单、GMV等指标
|
||
- 用户账户表 `bi_vala_app_account`:线上PostgreSQL数据库 `vala_bi` 库
|
||
- 字段说明:`download_channel` 代表用户的下载渠道,用于统计新增用户的来源平台
|
||
- 匹配规则:`download_channel`字段为汉字格式,采用「关键字包含」的匹配方式,例如学而思渠道对应`download_channel LIKE '%学而思%'`
|
||
- 用户课程明细表 `bi_user_course_detail`:线上PostgreSQL数据库 `vala_bi` 库
|
||
- 字段说明:
|
||
- `account_id`:账号id/用户id
|
||
- `user_id`:角色id
|
||
- `course_level`:课程等级映射:A1 = L1,A2 = L2
|
||
- `deleted_at`:课程删除时间,字段为空代表课程未被删除,有值代表课程已被删除
|
||
- `expire_time`:课程过期时间,字段不为空代表是正式课,为空代表是体验课
|
||
|
||
## 业务知识库
|
||
- **已收集13个常用SQL查询模板**
|
||
- **已整理业务术语表和数据表说明**
|
||
- **已获取16个数据抽取脚本**
|
||
- **知识库位置:** business_knowledge/
|
||
- **核心业务指标口径定义:**
|
||
- GMV:全部营销金额,包含退费金额,不剔除退费
|
||
- GSV:实际收入,为GMV剔除退费金额后的金额
|
||
- 退费率:
|
||
- 单日退费率:当日成交的订单中,发生退费的订单数占当日总成交订单数的比例(退费订单不限定退费时间,只要对应订单是当日成交的即计入)
|
||
- 时间段/整体退费率:同口径,统计时间段内成交的订单中发生退费的订单数占该时间段总成交订单数的比例
|
||
- **退费订单校验规则:** 统计退费订单时必须同时满足两个条件:
|
||
1. `bi_refund_order` 表中 `status = 3`(退费成功)
|
||
2. `bi_vala_order` 表中 `order_status = 4`(订单状态为已退款)
|
||
两个条件缺一不可,避免统计错误。
|
||
- **关键词订单统计规则:** 当查询形如"XX卖了多少单/XX渠道销量"(XX为特定名称/关键词/渠道)时,需同时返回四个指标:订单总数量、GMV、GSV、退费率。
|
||
1. 统计逻辑:筛选`bi_vala_order`表中`key_from`字段包含该关键词的所有订单
|
||
2. 指标说明:
|
||
- 订单数:符合条件的订单总数量
|
||
- GMV:符合条件的订单`pay_amount_int`求和/100(单位:元)
|
||
- GSV:GMV 减去符合条件的订单中已完成退费的金额总和(单位:元)
|
||
- 退费率:符合条件的订单中已完成退费的订单数 / 订单总数量 * 100%,保留1位小数
|
||
- **渠道映射规则(key_from字段匹配):**
|
||
- 端内购买:`app-active-h5-0-0` 或 `app-sales-bj-qhm-0`(两个值匹配任意一个即属于端内购买)
|
||
- 端外购买:除上述两个端内匹配值之外的所有`key_from`值均属于端外购买
|
||
- 端外销售渠道购买:端外购买中`key_from`以`sales-adp`开头的为销售渠道购买
|
||
- 小红书店铺:`newmedia-dianpu-xhs-0-0`
|
||
- 达人直播:`newmedia-daren%`(前缀匹配)
|
||
- 万物:`newmedia-dianpu-wwxx-0-0`
|
||
- **sale_channel字段映射规则(仅对`key_from = app-active-h5-0-0`的订单生效):**
|
||
| sale_channel值 | 对应渠道名称 |
|
||
|---------------|--------------|
|
||
| 11 | 苹果 |
|
||
| 12 | 华为 |
|
||
| 13 | 小米 |
|
||
| 14 | 荣耀 |
|
||
| 15 | 应用宝 |
|
||
| 17 | 魅族 |
|
||
| 18 | VIVO |
|
||
| 19 | OPPO |
|
||
| 21 | 学而思 |
|
||
| 22 | 讯飞 |
|
||
| 23 | 步步高 |
|
||
| 24 | 作业帮 |
|
||
| 25 | 小度 |
|
||
| 26 | 希沃 |
|
||
| 27 | 京东方 |
|
||
| 41 | 官网 |
|
||
| 71 | 小程序 |
|
||
| 其他值 | 站外 |
|
||
- **金额单位规则:** `bi_vala_order`表中`pay_amount`字段以元为单位,`pay_amount_int`字段以分为单位;后续统一使用`pay_amount_int`计算销售金额,统计为元时除以100即可
|
||
- **学习数据统计维度:** 支持按单元/课时/组件维度统计完成人数、平均用时、正确率(Perfect/Good/Oops三个等级)
|
||
- **特殊时间节点:** `2025-10-01`为核心版本上线时间,部分统计需要区分该节点前后的数据
|
||
- **用户统计口径区分规则:**
|
||
- 新增用户(免费注册新增):使用`bi_vala_app_account.download_channel`字段进行分渠道统计
|
||
- 新增付费用户:使用`bi_vala_order.sale_channel`(端内`key_from = app-active-h5-0-0`订单)或`bi_vala_order.key_from`字段进行分渠道统计
|
||
- **学习数据计算逻辑:**
|
||
- **课时首次完成时间计算逻辑:**
|
||
1. 关联路径:用户ID(bi_vala_app_account.id)→ 角色ID(bi_vala_app_character.id)→ bi_user_chapter_play_record_{分表号}.user_id
|
||
2. 筛选条件:bi_user_chapter_play_record.play_status = 1(正常完成课时)
|
||
3. 计算方式:按【角色ID + 课时ID(chapter_id)】分组,取created_at的最小值,即为该用户对应课时的首次完成时间
|
||
- **课时总耗时计算逻辑:**
|
||
1. 关联路径:通过bi_user_chapter_play_record表的chapter_unique_id,关联bi_user_component_play_record_{分表号}的chapter_unique_id
|
||
2. 耗时字段:bi_user_component_play_record.interval_time,单位为毫秒
|
||
3. 计算方式:求和对应chapter_unique_id下所有组件的interval_time,再除以60000转换为分钟,保留1位小数
|
||
4. 特殊说明:仅统计课时维度完成(play_status=1)的记录,排除未完成整个课时的部分组件练习记录
|