首页 › 源码知识库 › AIKE智能PHP在线客服系统安装教程

AIKE智能PHP在线客服系统安装教程

更新于 2026-11-06搭建教程实操教程
本文目录
  • 一、系统组成
  • 二、环境要求
  • 三、部署教程
  • 四、Web 服务器配置
  •  ========== ThinkPHP 5&nb
  • 六、自动化说明
  • 七、常见问题
  • 五、服务启动说明

本AIKE智能PHP在线客服系统安装教程从零部署本系统所需的环境要求、Web 安装向导、安装后必改配置文件、相关服务启动及验收检查。演示地址:AIKE智能PHP在线客服系统

一、系统组成

    • PHP Web 应用:public/ 为网站根目录

    • 实时推送服务:aike_pusher/(Workerman,WebSocket + HTTP API) 

    • 数据库结构:install/data.sql(安装向导自动导入) 

    • 向量检索(可选):知识库导入插件依赖 Qdrant;一键安装:bash install_qdrant.sh 

二、环境要求

2.1 服务器

    • 操作系统:Linux(推荐)

    • - PHP:推荐 7.3+

    • - MySQL:5.6+,字符集 utf8mb4

2.2 PHP 扩展(安装向导会检测)

扩展名主要用途
mbstring多字节字符串
gd图片处理
curlHTTP 请求、AI 接口
pdo_mysql数据库

建议额外启用:json、openssl、fileinfo、zip。

2.3 目录写权限

以下目录需对 Web 运行用户可写:


config/
application/extra/
public/
public/upload/
runtime/
public/assets/front/
public/assets/layer/

2.4 端口规划

端口默认值说明
HTTP/HTTPS80 / 443网站访问
WebSocket(wport)456访客端 / 客服端实时消息(aike_pusher 监听)
Pusher API(aport)2080PHP 后端与推送服务通讯(建议仅本机或内网)
Qdrant HTTP6333向量检索(可选)
Qdrant gRPC6334向量检索(可选,SDK 直连时用)

> HTTPS 站点:whost 建议填 wss://你的域名,由 Nginx 反代到本机 456;wport 填 443(对外)或 456(直连),须与 Nginx / 防火墙配置一致。

三、部署教程

3.1 上传代码

将项目上传到服务器,例如:

/www/wwwroot/your-domain.com/

网站根目录指向 public,不要将整个项目根目录直接暴露给外网。

3.2 创建数据库

宝塔创建数据库

安装向导也可自动创建数据库。

3.3 开始安装

- 若 public/index.php 已存在,安装向导会提示「已经安装成功」。

重新安装:https://你的域名/install.php

修改数据库参数和管理账号即可,其它不懂的建议默认。

3.4 安装成功:

3.5总后台

https://你的域名/platform/passport/login.html

账号:安装时创建

密码:安装时创建

3.6 客服后台

总后台创建客服账号:

登陆客服后台:

https://你的域名/admin/login/index/business_id/1.html

四、Web 服务器配置

### Nginx配置

站点配置文件后面加上:

    access_log  /dev/null;

    error_log  /www/wwwlogs/ai..error.log;

        location /app {

        proxy_pass http://127.0.0.1:456;

        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection "Upgrade";

        proxy_set_header X-Real-IP $remote_addr;

        proxy_read_timeout 3600s;

        }

若前端直连 ws://IP:456,需在安全组放行 456 端口。

### Linux伪静态

 ========== ThinkPHP 5 短期加固 + 原有静态规则 ========== # 1. 禁止访问敏感目录(在原 runtime|application 基础上扩展) location ~* ^/(runtime|application|config|thinkphp|vendor|extend)/ {     return 403; } # 2. 禁止访问示例/调试目录 location ~* ^/assets/libs/myeditor/examples/ {     return 403; } # 3. 禁止 uploads、assets 下直接执行 PHP location ~* ^/upload/.*\.php$ {     return 403; } location ~* ^/assets/.*\.php$ {     return 403; } # 4. 拦截 ThinkPHP 5 常见 exploit 查询串 # 只拦截 s= 路由参数中的 exploit,勿扫描整段 query_string(会误伤 ?code= token) if ($arg_s ~* "(invokefunction|call_user_func|call_user_func_array|pearcmd|config-create)") {     return 403; } if ($arg_s ~* "think(%2f|%5c|/)") {     return 403; } if ($arg_s ~* "(php://|phar://)") {     return 403; } if ($arg_s ~* "(\.\.|%2e%2e)") {     return 403; } # 5. 原有伪静态(保持不变) location / {     if (!-e $request_filename) {         rewrite ^(.*)$ /index.php?s=$1 last;     } }

五、服务启动说明

 禁用函数

在宝塔:软件商店 → PHP 7.3 → 禁用函数,删掉与进程控制相关的项,至少包括:

pcntl_fork、pcntl_waitpid、pcntl_wait、pcntl_signal、pcntl_signal_dispatch、pcntl_alarm、pcntl_exec 以及列表里其它 pcntl_*

  修改app_secrets.php

看图修改WSS、http、端口

实时推送 aike_pusher(必须)

cd /www/wwwroot/你的目录/aike_pusher



php start.php restart -d

常用指令:

php start.php start        # 前台调试
php start.php start -d     # 后台守护
php start.php stop         # 停止
php start.php reload       # 平滑重启
php start.php status       # 状态

进程守护

run.sh 每分钟检测 Workerman,未运行则启动:

cd /www/wwwroot/你的目录/

sudo bash run.sh

添加计划任务

cd /www/wwwroot/你的目录/

sudo bash init.sh

前端验证

安装 Qdrant 向量数据库

启用知识库语义检索 / 向量化时需要。项目已提供一键安装脚本,请在项目根目录执行(与 public/ 同级):

cd /www/wwwroot/你的目录

sudo bash install_qdrant.sh

> 若系统尚未安装 Docker,脚本会先自动安装 Docker,再部署 Qdrant;Docker 已就绪则直接进入 Qdrant 安装。

前置条件

    • Linux 服务器(脚本不支持 Windows 直接运行)
      2. 未安装 Docker 时,脚本会自动安装并启动 Docker(需 root:sudo bash install_qdrant.sh)
      3. 已安装且 Docker 服务正常时,跳过 Docker 步骤,直接安装 Qdrant
      4. 本机可访问 curl(健康检查用;安装 Docker 时脚本会尝试自动安装 curl)

安装后验证

bash scripts/qdrant/status.sh

或手动检查:

curl http://127.0.0.1:6333/

curl http://127.0.0.1:6333/readyz

docker ps | grep wolive-qdrant

输出 Qdrant installed successfully 且 REST API 为 http://127.0.0.1:6333 即表示就绪:

安装失败:Docker iptables 问题

部分云服务器 / CentOS 会出现端口映射失败,脚本会自动尝试 host 网络模式。若仍失败,以 root 执行修复后重试:

bash
bash scripts/qdrant/fix_docker_iptables.sh
bash install_qdrant.sh

在系统中启用向量检索

确认 bash scripts/qdrant/status.sh 显示 Health : OK
1. 登录商户后台 → 知识库导入 / 向量设置:
   - 开启 向量检索
   - qdrant_url:http://127.0.0.1:6333
   - 填写 Embedding API(URL、Key、模型)
2. 导入 FAQ 或页面后执行向量化
3. 在 AI 智能回复设置 中确认已启用知识库召回

Qdrant 常见问题

现象处理
Docker not found使用 sudo bash install_qdrant.sh 以自动安装 Docker
Docker auto-install requires root加 sudo 后重试
Docker daemon not running脚本会尝试 systemctl start docker;失败则手动检查 Docker 服务
健康检查超时docker logs wolive-qdrant,或执行 fix_docker_iptables.sh 后重装
向量化失败检查后台 Embedding API Key,与 Qdrant 无关时先排除 API 问题

手动执行(调试)

bash
cd /www/wwwroot/your-domain.com
# 指定商户 business_id=1;-f 忽略后台「蒸馏开关=关」
php think ai:distill-human -b 1
php think ai:distill-human -b 1 -f
# 增量同步(页面 QA + 向量)
php think ai:auto-sync -b 1
php think ai:auto-sync -b 1 -f

成功时终端会输出
scanned / pairs / inserted 等统计。

后台开关(必配)

Cron 只负责按时触发;各商户是否在任务内真正执行,由后台 AI 智能回复设置 → 知识进化与定时任务 控制:

开关建议作用
人工聊天蒸馏开写入「AI进化池 → 人工聊天学习候选」
仅人工回复开排除 AI 自动回复与常见问题预设
定时增量同步按需从已同步页面抽 QA、维护向量
同步向量库开(若已装 Qdrant)FAQ 增量写入 Qdrant
同步含蒸馏关auto-sync 内再跑蒸馏(与 hourly 重复,一般关)

阈值(质量分、出现次数、更新 FAQ 次数等)也在同一区块配置,保存后写入 wolive_ai_config.distill_config_json / auto_sync_json。

> 注意: 仅注册 cron、未在后台开启对应开关时,任务会跳过该商户。向量 FAQ 直答依赖 7.2 Qdrant 与后台 Embedding 配置。

六、自动化说明

“自动 vs 人工”环节:

环节是否自动
cron 扫描聊天、写候选✅
cron 页面 QA、向量同步✅(需开开关)
高质量新问题自动入 FAQ✅(进化池开关 + 阈值)
同问不同答更新已有 FAQ❌ 需人工点「更新 FAQ」
意图关键词应用❌ 需人工勾选并选意图
未命中 → 加 FAQ❌ 需人工确认

七、常见问题

Q1:SQL 导入失败?

检查 MySQL 版本、账号权限、install/data.sql 是否完整,查看安装页报错详情。

Q2:消息不实时?

  1. php start.php status 确认 pusher 运行  
    2. app_secrets.php 中 app_key / app_secret / aport / websocket_port 正确(改完需重启 pusher)  
    3. whost、wport(对外)与 websocket_port(监听,默认 456)与 Nginx / 防火墙一致  
    4. 浏览器控制台查看 WebSocket 连接

Q3:Missing application/extra/app_secrets.php?

重新安装,或从 app_secrets.example.php 复制并填写(含 websocket_port、aport)。

Q4:HTTPS 下 WebSocket 失败?

whost 用 wss://域名,Nginx /app 反代到 127.0.0.1:456,或配置 6.4 SSL 直连

Q5:向量检索无结果?

确认已执行 bash install_qdrant.sh 且 status.sh 正常,后台 qdrant_url 为 http://127.0.0.1:6333,Embedding API 可用并已执行向量化。

Q6:AI 进化 cron 不跑?

  1. crontab -l 是否含 ai:distill-human、ai:auto-sync(无则 sudo bash init.sh)  
    2. 后台 知识进化与定时任务 对应开关是否开启  
    3. 查看 runtime/log/ai_distill_cron.log、ai_auto_sync.log 是否有 PHP 报错  
    4. 手动 php think ai:distill-human -b 商户ID -f 验证 CLI 是否正常

Q7:蒸馏有候选但不会自动进 FAQ?

自动入库仅针对 FAQ 中尚不存在的新问题,且需同时满足:进化池开启 高质量自动入 FAQ、质量分 ≥ 阈值、出现次数 ≥ 阈值。同问不同答只会标「可更新 FAQ」,须人工确认。

END!!!

文章目录
  • 一、系统组成

  • 二、环境要求

    • 2.1 服务器

    • 2.2 PHP 扩展(安装向导会检测)

    • 2.3 目录写权限

    • 2.4 端口规划

  • 三、部署教程

    • 3.1 上传代码

    • 3.2 创建数据库

    • 3.3 开始安装

    • 3.4 安装成功:

    • 3.5总后台

    • 3.6 客服后台

  • 四、Web 服务器配置

    • Nginx配置

    • Linux伪静态

  • 五、服务启动说明

    • 禁用函数

    • 修改app_secrets.php

    • 实时推送 aike_pusher(必须)
    • 进程守护

    • 添加计划任务

    • 前端验证

    • 安装 Qdrant 向量数据库

    • 前置条件

    • 安装后验证

    • 安装失败:Docker iptables 问题

    • 在系统中启用向量检索

    • Qdrant 常见问题

    • 手动执行(调试)

    • 后台开关(必配)

  • 六、自动化说明

  • 七、常见问题

    • Q1:SQL 导入失败?

    • Q2:消息不实时?

    • Q3:Missing application/extra/app_secrets.php?
    • Q4:HTTPS 下 WebSocket 失败?

    • Q5:向量检索无结果?

    • Q6:AI 进化 cron 不跑?

    • Q7:蒸馏有候选但不会自动进 FAQ?