Skip to content

Repository files navigation

Issuance Bot

本地优先、可审计、AI 辅助的保险出单自动化系统。运行于 Windows 桌面环境,实现从微信群接收出单请求到保单交付的全流程自动化。

核心流程

  1. 车商在微信群发送客户身份证、行驶证及出单需求
  2. 机器人检测新消息,下载图片并运行 OCR 提取结构化字段
  3. LLM + 规则引擎判断消息意图,创建出单 Case
  4. 自动填写保险公司网站(宝信财险摩托车保险)完成投保
  5. 监控 Gmail 接收保单邮件,下载附件并回传至微信群
  6. 本地 Web UI 提供实时监控面板

技术栈

类别 技术
语言 Python 3.11+
桌面 RPA pywinauto, pyautogui, pywin32
浏览器自动化 Playwright (Firefox)
数据建模 Pydantic + SQLModel
数据库 SQLite
Web 框架 FastAPI + Uvicorn
模板引擎 Jinja2
OCR 腾讯云 OCR API
LLM OpenRouter API
邮件 Gmail REST API (OAuth 2.0)
图像处理 Pillow
Excel openpyxl

系统架构

adapters/       -- 外部系统集成(微信、Gmail、BPIC、OCR、LLM、Excel)
app/            -- 应用层:Workers、编排器、启动引导
domain/         -- 领域模型与枚举
infra/          -- 配置、日志、SQLite 数据库、数据访问层
presentation/   -- 本地 Web UI(FastAPI + Jinja2 + 原生 JS)
services/       -- 业务逻辑:事件入库、OCR、意图识别、候选窗口
tools/          -- 引导与诊断工具

数据流:

微信桌面 -> Channel Worker -> InboundEvent/MediaAsset -> OCR Worker -> OcrResult
  -> Candidate Window -> LLM Evaluator -> IntentRun -> IssuanceCase -> Underwriting Worker (BPIC)
  -> Mail Worker (Gmail) -> 保单交付 -> Excel 台账

环境要求

  • Windows 10/11(微信桌面 RPA 必需)
  • Python 3.11+(推荐 conda 环境 issuance-bot-dev
  • 微信桌面客户端已登录运行

快速开始

安装

# 使用推荐 conda 环境
& 'D:\Miniconda3\envs\issuance-bot-dev\python.exe' -m pip install -e .

# 或使用标准 pip
pip install -e .

配置

创建 .env 文件(参考项目配置项):

# 微信
WECHAT_SESSION_NAME=testbot

# Gmail
GMAIL_CREDENTIALS_PATH=var/gmail/credentials.json
GMAIL_TOKEN_PATH=var/gmail/token.json

# 腾讯云 OCR
TENCENT_CLOUD_SECRET_ID=...
TENCENT_CLOUD_SECRET_KEY=...

# OpenRouter LLM
OPENROUTER_API_KEY=...
OPENROUTER_MODEL=xiaomi/mimo-v2-pro

# 宝信财险
BPIC_BROWSER_PROFILE_PATH=var/bpic/firefox_profile
BPIC_STORAGE_STATE_PATH=var/bpic/storage_state.json

初始化数据库

issuance-bot init-db

启动 Web UI

issuance-bot webui --host 127.0.0.1 --port 8787

CLI 命令

同步操作

命令 说明
issuance-bot show-settings 查看当前配置
issuance-bot channel-sync-once --session <name> 单次微信会话同步
issuance-bot ocr-sync-once [--limit 10] 处理待 OCR 媒体文件
issuance-bot mail-sync-once [--max-results 25] Gmail 轮询并入库
issuance-bot intent-sync-once [--limit-sessions 10] [--window-size 20] 意图识别
issuance-bot pipeline-sync-once --session <name> 全流程串联:channel -> ocr -> intent -> mail
issuance-bot underwriting-sync-once [--limit-cases 5] 处理待出单 Case

宝信财险工具

命令 说明
issuance-bot bpic-login-bootstrap 自动生成登录二维码
issuance-bot bpic-open-manual-profile 打开 Firefox 配置文件手动探索
issuance-bot bpic-manual-login-export 手动登录并自动导出会话
issuance-bot bpic-session-keepalive 会话保活与状态刷新
issuance-bot bpic-export-field-catalog 导出 BPIC 表单字段目录
issuance-bot bpic-probe-motorcycle-prefill 测试 OCR 预填充行为
issuance-bot bpic-run-motorcycle-draft 运行摩托车保险草稿录入

Gmail OAuth

issuance-bot-gmail-oauth-bootstrap
#
python -m issuance_bot.tools.gmail_oauth_bootstrap

微信单次同步

issuance-bot channel-sync-once --session testbot
#
python -m issuance_bot.cli channel-sync-once --session testbot

当前进度

已完成

  • 项目骨架、配置、日志、SQLite 初始化
  • 微信桌面 adapter 迁移完成,真实会话验证通过
  • Gmail adapter、OAuth bootstrap、mail worker 迁移完成
  • 事件层:ChatSession / InboundEvent / MediaAsset 入库
  • OCR 层:腾讯云 OCR 主链路(分类检测 -> 定向 OCR)
  • 意图/Case 层:规则引擎 + LLM 评估器(OpenRouter)
  • Pipeline worker:单进程串联全流程
  • Worker 心跳上报
  • Web UI v2:仪表盘、Case 详情、异常中心
  • BPIC 登录引导:二维码生成、会话导出、保活
  • BPIC 摩托车草稿:表单字段填写至保费计算前
  • BPIC 字段目录导出

待完成

  • BPIC 草稿推进至保费计算与核保提交
  • BPIC 登录过期自动检测与重新引导
  • Gmail-to-Case 正式匹配规则
  • 保单附件处理、解密与交付闭环
  • Web UI 扩展:/cases、/health、/tasks、/ledger
  • Excel 台账同步
  • VLM 兜底(OCR 失败时)
  • 多产品线扩展(汽车保险)

目录结构

docs/           -- 设计文档、ADR、长期保留的说明
src/            -- 正式项目代码
tests/          -- 正式测试
var/            -- 运行期数据、媒体文件、诊断产物(不提交 Git)
.tmp/           -- 一次性探索脚本和临时输出(不提交 Git)

设计原则

  • 模块化单体架构:清晰分层,便于后续拆分
  • 事件全量落库:所有入站事件写入 SQLite,媒体文件落盘
  • OCR 优先 + VLM 兜底:证照识别主链路,视觉模型备用
  • 按候选窗口触发 LLM:不按单条消息触发,按消息窗口批量分析
  • 本地优先:高敏感数据仅保存在本机受控目录

风险提醒

  • 微信 UIA 结构可能随客户端版本变化
  • 保险网站自动化为高风险模块,必须保存截图和现场
  • 若模型置信度低,优先进入人工介入而非继续自动执行

开发

# 运行测试
pytest

# 代码检查
ruff check .
ruff format .

许可证

内部项目,未公开授权。

About

A local-first, AI-assisted insurance policy issuance automation system. Automates the end-to-end workflow from WeChat message intake, OCR extraction, and LLM intent recognition to carrier website filing and Gmail policy delivery.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages