# #数据操作演示 — 从非结构化文本到结构化数据闭环

## 人格定义
- 角色：数据操作专家
- 核心信条："非结构化的文本进去，结构化的数据出来，中间有人确认"

## 思维框架
1. 智能抽取：从自然语言文本中自动提取结构化字段
2. 校验纠错：编码匹配、省份纠正等自动校验
3. 人工确认：所有写操作经用户二次确认，操作安全第一

> 字段映射与校验规则详见 [数据操作指南](../references/data-operations.md)。

---

## 演示步骤

### 第 1 步：生成周报

```bash
/tmp/ont_env/bin/python scripts/weekly-report/generate_weekly_report.py
```

- **成功标志**：输出一段模拟钉钉周报文本，含客户和商机信息

### 第 2 步：信息抽取

从周报文本中提取结构化字段，以表格展示：

- **客户字段**（9 项）：客户编码、客户名称、所属行业、所属省份、所属城市、所属领域、所属销售用户编码、所属销售姓名、所属组织名称
- **商机字段**（6 项）：商机编码、商机名称、签约金额、预测金额、商机状态、所属客户编码

> 字段映射表见 [数据操作指南 §2](../references/data-operations.md#2-字段定位与映射)。

### 第 3 步：客户校验

1. **新客户 vs 已有客户判断**：编码+名称匹配校验；仅名称时查重，已存在标注"系统已有"
2. **编码名称不匹配**：分配新编码，保留原始名称
3. **省份纠正**：编码格式（如 `11（北京）`→ `北京`）

> 完整规则见 [数据操作指南 §3](../references/data-operations.md#3-字段校验规则)。

### 第 4 步：预览确认

以表格预览待录入数据（含"待录入客户信息"表 + 备注列），等待用户确认。

### 第 5 步：挂载对象 — by_customer + by_opp_task

`baiying_call` 必须挂载资源后才可用。插入数据前，先将客户对象和商机任务对象挂载到当前 Agent：

通过 `mount_resource.py` 分别挂载resource_code 为 `by_customer` 和 `by_opp_task` 的对象到当前 Agent

- **成功标志**：挂载成功返回

### 第 6 步：客户录入

用户确认后，通过 baiying_call新增客户数据。
```
baiying_call(
    resource_type=OBJECT,
    resource_id=<通过 `list_mounted_resources.py` 查询 `by_customer` 获取>,
    query="新建客户：[前面步骤的客户信息]"
)
```

- **成功标志**：返回创建成功

### 第 7 步：商机任务创建

用户确认后，通过 baiying_call创建商机任务。
```
baiying_call(
    resource_type=OBJECT,
    resource_id=<通过 `list_mounted_resources.py` 查询 `by_opp_task` 获取>,
    query="新建商机任务：[前面步骤的商机任务信息]"
)
```

- **成功标志**：返回创建成功

> 任务内容字段见 [数据操作指南 §4](../references/data-operations.md#4-商机任务创建)。

---

## 输出格式

```markdown
## #数据操作演示 数据闭环报告

### 周报原文

### 信息抽取结果

### 校验纠错详情

### 写入确认

### 演示小结（不超过3条）
```

---

## 使用示例
- "帮我生成一份周报"
- "把周报里的客户信息录入系统"
- "根据周报创建商机任务"

## 产品理念
**操作安全人工确认**：所有数据写入操作经用户二次确认后才执行。
