AI智能客服搭建:从零部署到对接网页的实操流程
AI智能客服搭建的核心是把开源客服系统跑在服务器上,再接入一个大模型API来生成回复。
零基础用户按本文步骤操作,大约1-2小时可以完成一个能对话的网页客服原型。
下面以Linux云服务器+Docker+开源客服系统为例,给出完整流程和验证方法。
先确认你的场景和环境条件
这套方案适合个人站长、小团队或运维人员,想在自己的网站上挂一个能自动回答常见问题的客服窗口。
不适合需要电话客服、工单流转或复杂CRM对接的企业场景。
准备条件:
- 一台Linux云服务器(Ubuntu 22.04或Debian 12均可),建议2核4G起步,因为大模型API调用本身不占本地算力,但客服系统和数据库需要内存。
- 一个已备案的域名(国内服务器必须),并解析到服务器IP。
- 一个大模型API Key,例如DeepSeek、通义千问或OpenAI兼容接口,具体以你选的服务商控制台为准。
- 服务器安全组放行80、443端口,SSH端口按需放行。
先登录服务器更新系统:
ssh root@你的服务器IP
apt update && apt upgrade -y
安装Docker和Docker Compose
用官方脚本安装Docker,避免手动添加源出错:
curl -fsSL https://get.docker.com | bash
systemctl enable docker
systemctl start docker
docker --version
安装Compose插件:
apt install docker-compose-plugin -y
docker compose version
看到版本号输出即表示安装成功。
如果docker compose version报错,检查是否装成了旧版docker-compose,两者命令不同。
部署开源客服系统并配置模型接口
这里以开源项目Chatwoot为例,它提供网页聊天窗口和API对接能力。
创建目录并编写docker-compose.yml:
mkdir -p /opt/ai-kefu && cd /opt/ai-kefu
nano docker-compose.yml
写入以下配置(密码和密钥改成你自己的):
services:
postgres:
image: postgres:15
environment:
POSTGRES_DB: chatwoot
POSTGRES_USER: chatwoot
POSTGRES_PASSWORD: 换成强密码
volumes:
- pgdata:/var/lib/postgresql/data
redis:
image: redis:7
volumes:
- redisdata:/data
chatwoot:
image: chatwoot/chatwoot:latest
ports:
- "3000:3000"
environment:
RAILS_ENV: production
SECRET_KEY_BASE: 用openssl rand -hex 64生成
FRONTEND_URL: https://你的域名
POSTGRES_HOST: postgres
POSTGRES_PASSWORD: 换成强密码
REDIS_URL: redis://redis:6379
depends_on:
- postgres
- redis
volumes:
pgdata:
redisdata:
启动容器并初始化数据库:
docker compose up -d
docker compose exec chatwoot rails db:chatwoot_prepare
初始化完成后访问http://服务器IP:3000,按页面提示创建管理员账号。
随后配置AI回复。
Chatwoot本身不内置大模型,需要通过Webhook或API把用户消息转发给你的模型服务。
简单做法是在客服后台创建“自动化规则”,把新消息POST到你的中转接口。
这里给出一个最小可用的Python中转示例,部署在同一台服务器上:
apt install python3-pip -y
pip3 install flask requests
nano /opt/ai-kefu/ai_bridge.py
写入:
from flask import Flask, request, jsonify
import requests
app = Flask(__name__)
API_KEY = "你的模型API Key"
API_URL = "https://api.deepseek.com/chat/completions"
@app.route('/webhook', methods=['POST'])
def webhook():
data = request.json
user_msg = data.get('content', '')
resp = requests.post(API_URL, headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
}, json={
'model': 'deepseek-chat',
'messages': [{'role': 'user', 'content': user_msg}]
})
reply = resp.json()['choices'][0]['message']['content']
return jsonify({'reply': reply})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
启动中转服务:
nohup python3 /opt/ai-kefu/ai_bridge.py > /tmp/ai_bridge.log 2>&1 &
然后在Chatwoot后台的“集成”或“Webhook”设置中填入http:,
//服务器内网IP:
5000/webhook
保存后发一条测试消息,
观察/tmp/ai_bridge.log是否有请求记录。
对接网页渠道和配置域名访问
Chatwoot支持生成一段JS代码嵌入网站。
在后台进入“收件箱”创建网站渠道,复制生成的脚本放到你网站页面的