# AI 数字销售助手 — AI 开发者快速指南 > **本文档面向 AI 编程助手**,帮助你在最短时间内理解项目全貌并继续开发。 --- ## 项目目标(务必理解) **构建一个能完全模仿真人销售在微信上与客户对话的 AI 系统。** 核心差异: 1. **数字销售分身**:上传销售真实聊天记录,AI 提取其个人风格(方言/句式/语气/性格),构建"数字分身" 2. **四维画像驱动**:基于 **销售风格 / 项目资料 / 聊天技巧 / 客户画像** 综合理解场景后生成回复 3. **自主运营**:自动回复(按客户等级分策略)、主动触达(生日/活动)、画像自迭代、等级动态评估 4. **最终愿景**:销售只处理 AI 搞不定的关键对话,日常维护/跟进/促单全部由 AI 代劳 **你写的每一行代码都应服务于:让 AI 更像那个销售、更懂那个客户、更专业地推进销售进程。** --- ## 技术栈 ``` Go 1.26 + Fiber v2 + GORM(MySQL) + MongoDB + Redis + Wire DI + 原生前端(零构建) ``` 调用链: ``` HTTP → Fiber中间件(JWT) → Router → Service → Biz → Impl/Mongo → LLM ↓ registerCommon 统一包装 {code:0, message, data} ``` --- ## 目录结构(★ 标注当前活跃开发区域) ``` ai_scheduler/ ├── cmd/server/ │ ├── main.go # 启动入口 │ ├── wire.go # Wire DI 声明(//go:build wireinject) │ └── wire_gen.go # Wire 自动生成(禁止手动编辑) ├── config/config.yaml # MySQL/Mongo/Redis/JWT/微信协议地址 ├── internal/ │ ├── biz/ # ★ 业务逻辑层 │ │ ├── advice_wx.go # 微信回调处理 + 消息流水 + 会话聚合 + ★ 托管自动注册 │ │ ├── advice_wx_send.go # 微信消息发送(含模拟真人打字延迟) │ │ ├── advice_strategy.go # 智能策略(四级回复/主动对话) │ │ ├── advice_client.go # 客户管理 + 等级评估 │ │ ├── advice_customer_new.go # ★ 微信好友 CRUD + 差集同步(ai_advice_customer) │ │ ├── advice_label.go # ★ 标签同步(与 DB 比对增删改) │ │ ├── advice_chat.go # AI 对话(LLM 调用 + ChatWithSession 复用优化) │ │ ├── advice_evaluate.go # 客户等级评估 │ │ ├── advice_proactive.go # 主动触达 │ │ ├── advice_iterate.go # 画像自迭代 │ │ ├── handle/、llm_service/ # ⚠️ 历史死代码,忽略 │ │ └── provider_set.go │ ├── services/advice/ # ★ HTTP Handler 层 │ │ ├── wxhook.go # 回调 + 会话 Handler │ │ ├── wx_proxy.go # 微信 API 代理(分发到 wxDispatchMap) │ │ ├── wx_ws_hub.go # WebSocket Hub(实时推送) │ │ ├── customer_new.go # ★ 好友 CRUD Handler(Diff 同时返回标签) │ │ ├── label.go # ★ 标签 Handler(List/Sync) │ │ └── provider_set.go │ ├── server/ │ │ ├── router/router.go # 路由总装 + registerCommon 中间件 │ │ ├── router/advicer.go # 全部业务路由(~80 个接口) │ │ └── http.go # NewHTTPServer 参数列表需同步 │ ├── entitys/advicer_data.go # ★ 核心 DTO(最频繁修改) │ ├── data/ │ │ ├── model/ # MySQL GORM 模型(*.gen.go 禁止手动编辑) │ │ │ ├── ai_advice_customer.gen.go # ★ 微信好友表 │ │ │ └── ai_advice_label.gen.go # ★ 标签表 │ │ ├── impl/ # MySQL 数据访问(继承 DataTempBase[T]) │ │ │ ├── advice_customer_impl.go │ │ │ └── advice_label_impl.go │ │ ├── mongo_model/ # MongoDB 集合模型 │ │ └── constants/ # Prompt 模板、模型映射 │ ├── middleware/ # JWT 认证 │ ├── jobs/advice_task.go # 定时任务(cron) │ └── pkg/wx/ # 微信协议封装(100+ API 端点) ├── web/ # ★ 前端(零构建,静态托管) │ ├── project.html # ★ 版本号管理(修改 JS 后必须更新 ?v=N) │ └── assets/ │ ├── css/theme.css # 深色科技风设计系统 │ └── js/ │ ├── core.js # 核心库(Core.api / Core.wxApi / Toast / Modal) │ ├── wx.js # ★ 微信工作台核心(state/通讯录/标签/WS/好友同步) │ ├── wx_login.js # ★ 登录模块(二维码/在线检测/登出) │ └── wx_chat.js # ★ 聊天模块(会话/消息/联系人详情气泡) └── sql/ # 数据库 DDL ├── 04_ai_advice_customer.sql └── 05_ai_advice_label.sql ``` --- ## 数据模型 ### MySQL 核心表 | 表名 | 说明 | 关键字段 | |---|---|---| | `ai_advice_customer` | ★ 微信好友(`self_wxid` + `user_name` 唯一键) | label_list, session_id(当前活跃会话) | | `ai_advice_label` | ★ 微信标签(`self_wxid` + `label_id` 唯一键) | label_id, label_name | | `ai_advice_advicer` | 销售基本信息 | wx_device_id(即 appId) | | `ai_advice_project` | 项目信息 | wx_token | | `ai_advice_admin` | 管理员账号 | | | `ai_advice_session` | AI 对话会话 | advicer_id(托管场景动态取最新版本) | ### MongoDB 核心集合 | 集合名 | 说明 | 关键字段 | |---|---|---| | `advicer_wx_msg` | ★ 微信消息流水 | appId, selfWxid, wxid, direction, msgType, content, read | | `advicer_version` | 销售画像 | dialectFeatures, sentencePatterns, toneTags, personalityTags | | `advicer_client` | 客户画像 | clientLevel, personalInfo, purchasePurpose, coreDemands | | `advicer_project` | 项目资料维度(结构化) | regionValue, competitionComparison, coreSellingPoints, supportingFacilities, developerBacking | | `advicer_project_data` | ★ 项目资料(扁平栏目) | projectId + 动态栏目(key=栏目名, value=内容),与 advicer_project 是**两个独立的集合** | | `advicer_talk_skill` | 聊天技巧维度 | needsMining, painPointResponse, closingTechniques, communicationRhythm, valueBuilding | | `advicer_activity` | 产品活动 | name, content, startAt, endAt | ### 命名差异 - MySQL:蛇形(`user_name`) - MongoDB:驼峰 bson(`userName`) - 前端 JS:驼峰(`userName`) - API 响应:snake_case(`user_name`),前端手动映射 --- ## 前端架构 ### 核心机制 - **零构建**:`