Metadata-Version: 2.4
Name: phone-act-x
Version: 1.7.8
Summary: 微信视频号私信自动回复 — 规则引擎 + 无头浏览器自动化
Author: phone-act
License: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.28
Provides-Extra: headless
Requires-Dist: playwright>=1.40.0; extra == "headless"
Provides-Extra: ai
Requires-Dist: requests>=2.28; extra == "ai"

# phone-act-x

微信视频号私信自动回复 — 贷款业务场景

---

## 部署指南（WorkBuddy 里操作）

### 第一步：安装

```python
pip install --upgrade phone-act-x playwright
python -m playwright install chromium
```

每行单独执行一次，等它跑完再执行下一行。这一步只做一次，以后不用重复。

### 第二步：填写你的信息

> **⚠️ 首次使用需要先向管理员要一个授权码（AUTH_TOKEN），否则无法启动。**

```python
import os
os.environ["AUTH_SECRET"] = "管理员给你的密钥"        # 必填，向管理员索要
os.environ["BOT_PHONE"] = "13912345678"             # 改成你的11位手机号
os.environ["AUTH_TOKEN"] = "管理员给你的token"        # 必填，向管理员索要
os.environ["BOT_LOCATION"] = "我在深圳，可全国放款"   # 改成你的所在地
```

如果你要用 AI 回复（更聪明），还要加三行：

```python
os.environ["AI_API_KEY"] = "你的key"
os.environ["AI_API_URL"] = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"
os.environ["AI_MODEL"] = "qwen3.7-plus"
```

### 第三步：扫码登录

```python
from phone_act.headless import save_qrcode
save_qrcode()
```

执行后会在当前目录生成 `browser_data/qrcode.png`，打开这个图片，用微信扫一扫。然后执行：

```python
from phone_act.headless import confirm_login
confirm_login()
```

看到 `[CONFIRM] login success! state saved` 就说明登录成功了。这一步只做一次，cookie 会持久保存。

### 第四步：启动机器人

```python
from phone_act import EnhancedBot
EnhancedBot().run()  # AI 回复 + 双Tab监控 + 防风控
```

看到 `[BOT] baseline done, polling...` 就说明开始跑了。**Ctrl+C 停止**。

### 第五步：导出客户号码

每天结束时执行：

```python
phone-act-leads          # 今天新增的留号客户
phone-act-leads --all    # 全部历史
```

会生成 `leads.md` 文件，打开即可看到客户名称和手机号。

---

## 日常操作总结

| 做什么 | 执行什么 | 多久一次 |
|--------|----------|----------|
| 早上来启动 | `EnhancedBot().run()` | 每天 |
| 晚上下班 | Ctrl+C 停掉 | 每天 |
| 看新客户号码 | `phone-act-leads` | 每天下班前 |
| 登录过期了 | 重新走第三步 | 偶尔（几天到几周） |
| 换手机号了 | 改第二步的 `BOT_PHONE` | 需要时 |

---

## 机器人回复逻辑

1. 新客户打招呼 → 问年龄 → 问征信 → 征信不好问爱人 → 要号码 → 拿到号码停止
2. 客户问"怎么联系你" → **不说你的号码**，先要对方的
3. 客户坚持要你的联系方式 → 用中文分段给号码，如 "记下号码 壹叁捌，零零壹叁，捌零零零，加微信聊"
4. 检测到客户发来11位手机号 → 自动记下来，停止追问

## 常见问题

**Q: 收到提醒 "BOT_PHONE 未设置"？**
A: 第二步没执行或手机号不对，重新执行第二步。

**Q: 提示 "state.json not found"？**
A: 还没登录或登录过期了，重新走第三步。

**Q: 机器人怎么不回复了？**
A: 可能登录过期了，重新扫码；或者达到每日上限了（默认100条/天）。

**Q: 提示 "授权失败"？**
A: 你的手号换了，AUTH_TOKEN 是绑定手机号的，找管理员重新要一个。

---

## 管理员：为新销售生成授权码

先设置你的管理员密钥（第一次用）：
```bash
export AUTH_SECRET="你的管理员密钥"
```

然后生成 token：
```bash
phone-act --gen-token 13912345678
```

输出示例：
```
手机号: 13912345678
Token:  c50a618f9711c986

销售配置：
  os.environ["AUTH_TOKEN"] = "c50a618f9711c986"
```

把 Token 发给对应销售即可。Token 绑定手机号，换了号码需要重新生成。

---

## 环境变量参考

| 变量 | 必填 | 说明 | 默认值 |
|------|------|------|--------|
| `AUTH_SECRET` | **是** | 管理员给的密钥 | 无 |
| `BOT_PHONE` | **是** | 你的11位手机号 | 无 |
| `AUTH_TOKEN` | **是** | 管理员给的授权码 | 无 |
| `BOT_LOCATION` | 否 | 所在地 | "我在北京，可全国放款" |
| `AI_API_KEY` | 否 | AI key | 无 |
| `AI_API_URL` | 否 | AI 接口 | dashscope 兼容模式 |
| `AI_MODEL` | 否 | AI 模型 | qwen3.7-plus |
| `BOT_DAILY_LIMIT` | 否 | 每天最多回多少条 | 100 |
| `BOT_POLL_MIN` | 否 | 最短轮询间隔（秒） | 25 |
| `BOT_POLL_MAX` | 否 | 最长轮询间隔（秒） | 45 |
