# Product AI Assistant（产品 AI 问答助手）

一个 WordPress 插件，在前台右下角悬浮「产品咨询」按钮，点击弹出聊天窗口。访客提问后，系统先在**本地产品知识库**匹配答案；未命中时，再调用 DeepSeek 基于你提供的「公司/产品简介 + 知识库」资料回答，**严格禁止回答与产品无关的问题**。

## 功能特性

- 右下角悬浮按钮，移动端全屏适配
- 聊天窗口，欢迎语/兜底回复可自定义
- 本地知识库（FAQ）后台管理：问题、标准答案、关键词、权重
- DeepSeek 兜底：把产品简介 + 全部 FAQ 作为上下文喂给大模型，强约束只回答产品相关
- 安全措施：
  - WordPress nonce 防 CSRF
  - 输入 HTML 转义、控制字符过滤
  - 输出 `text()` 渲染，防 XSS
  - SQL 预处理，防注入
  - 基于 IP 的每分钟限流（默认 10 次）
  - API Key 只保存在后台，前端不暴露
  - 错误信息不向用户泄露 API 细节

## 安装步骤

1. 把 `product-ai-assistant.zip` 传到 WordPress 后台 → 插件 → 安装新插件 → 上传插件。
2. 启用插件。
3. 后台左侧菜单出现「产品AI问答」：
   - **问答设置**：填入 DeepSeek API Key（https://platform.deepseek.com 申请），填写公司/产品简介，自定义按钮文字、欢迎语、兜底回复、限流次数。
   - **产品知识库**：录入产品相关的问答对（价格、参数、发货、售后等），关键词用于提高本地命中率。

## 工作流程

```
访客提问
  ↓
AJAX 到后台（nonce + IP 限流）
  ↓
本地知识库匹配（关键词 + 问题相似度）
  ├─ 命中 → 直接返回数据库答案
  └─ 未命中 → 调用 DeepSeek（带产品简介+全部FAQ作为上下文）
        ├─ 资料内可答 → 返回 AI 回答
        └─ 无关问题/资料不足 → 返回兜底提示
```

## 安全与合规说明

- 插件不会收集访客姓名、邮箱、电话等个人信息；问题原文仅在当次请求中使用，不写入数据库。
- 如要记录访客提问做后续优化，建议自行接入合规的隐私统计，并在网站隐私政策中告知。
- DeepSeek API 调用会把「产品简介 + 知识库 + 访客问题」发送到 DeepSeek 服务器，请确保你的产品资料不包含涉密或敏感数据。
- 生产环境建议：
  - 用 HTTPS
  - 后台管理员账号开启两步验证
  - 在设置里把「每分钟限流」调低到合理值（如 5）
  - 定期在「产品知识库」中补充高频问题，减少对 DeepSeek 的依赖

## 自定义

- 想在某些页面隐藏按钮：在主题 `functions.php` 加：
  ```php
  add_filter( 'paa_enable', function( $enable ) {
      if ( is_page( 'about' ) ) return false;
      return $enable;
  });
  ```
- 想改配色：编辑 `assets/css/frontend.css` 里的 `#1a73e8` 主色即可。

## 目录结构

```
product-ai-assistant/
├── product-ai-assistant.php      # 主插件文件（激活建表）
├── readme.txt
├── includes/
│   ├── class-plugin.php          # 前端资源加载、悬浮按钮输出
│   ├── class-admin.php            # 后台设置页 + FAQ 管理
│   ├── class-ajax.php            # AJAX 入口、限流、本地匹配
│   └── class-deepseek.php        # DeepSeek API 客户端 + 系统提示词
├── views/
│   └── floating-button.php      # 悬浮按钮 + 弹窗 HTML
└── assets/
    ├── css/frontend.css
    └── js/frontend.js
```
