基于大模型 API 与 RAG 知识库构建智能客服机器人实战
介绍如何利用大模型 API 结合 RAG 知识库,通过 Python 和 Flask 框架在本地 Windows 环境快速搭建智能客服机器人。内容包括 API 申请、密钥管理、代码实现及部署步骤,旨在降低 AI 应用门槛,实现低成本自动化客服。文章提供了完整的 Python 代码示例、HTML 前端界面及环境配置指南,涵盖从单模型调用到融合知识库的多轮对话场景,适用于中小商家快速部署及开发者技术验证。

介绍如何利用大模型 API 结合 RAG 知识库,通过 Python 和 Flask 框架在本地 Windows 环境快速搭建智能客服机器人。内容包括 API 申请、密钥管理、代码实现及部署步骤,旨在降低 AI 应用门槛,实现低成本自动化客服。文章提供了完整的 Python 代码示例、HTML 前端界面及环境配置指南,涵盖从单模型调用到融合知识库的多轮对话场景,适用于中小商家快速部署及开发者技术验证。

AI 技术加速渗透各行各业的今天,开发者常面临调用顶尖模型接口复杂、跨平台适配困难、成本不可控等挑战。本文从实战角度出发,带你了解如何通过标准化 API 接口快速集成 AI 能力,从注册到密钥创建,从单模型调用到融合 RAG 知识库的智能体开发,手把手教你在 Windows 环境部署一个低成本电商客服机器人。
大模型 MaaS(模型即服务)平台的核心定位是降低模型应用门槛,加速场景智能化进程。通过'一键调用、敏捷开发'的核心设计,将全球前沿模型整合为标准化 API 接口与模块化组件,让开发者无需关注底层技术细节,即可快速集成 AI 能力。
其核心优势可概括为四点:
注意:新用户登录后通常会自动发放体验金,可直接抵扣模型调用费用。
以'调用大模型实现文本对话'为例,完整流程如下:
创建 .env 配置文件(避免硬编码 Key):
AIONLY_API_KEY=your_api_key_here # 替换为你的 API Key
AIONLY_CHAT_URL=https://api.example.com/v1/chat/completions
安装依赖库(使用 requests 发送 HTTP 请求):
pip install requests python-dotenv
import os
import requests
from dotenv import load_dotenv
# 1. 加载配置
load_dotenv()
API_KEY = os.getenv("AIONLY_API_KEY")
API_URL = os.getenv("AIONLY_CHAT_URL")
HEADERS = {
"Authorization": f"Bearer {API_KEY}", # 固定格式:Bearer + 空格 + API Key
"Content-Type": "application/json"
}
# 2. 构造请求参数(Prompt 设计)
def build_chat_payload(user_message, system_prompt="你是专业的 AI 助手,回答简洁准确"):
return {
"model": "gpt-5", # 必须与开通的模型名称一致
"messages": [
{"role": "system", "content": system_prompt}, # 系统指令(定义角色)
{"role": "user", "content": user_message} # 用户输入
],
"temperature": 0.7, # 随机性:0(严谨)~1(创意)
"max_tokens": 512 # 最大输出 Token 数(避免超长回复)
}
# 3. 发送请求并解析结果
def call_aionly_chat(user_message):
payload = build_chat_payload(user_message)
try:
# 发送 POST 请求
response = requests.post(API_URL, headers=HEADERS, json=payload)
response.raise_for_status() # 捕获 HTTP 错误(如 401 密钥无效、403 权限不足)
# 解析响应
result = response.json()
reply = result[][][][]
token_usage = result[]
{
: ,
: reply,
: token_usage[],
: token_usage[],
: token_usage[]
}
requests.exceptions.RequestException e:
error_msg = (e)
():
error_msg +=
{: , : error_msg}
__name__ == :
user_input =
result = call_aionly_chat(user_input)
result[]:
(, result[])
()
:
(, result[])
可以看到和我们在平台 - 调用统计看到的结果是一致的。
| 错误码 | 可能原因 | 解决方案 |
|---|---|---|
| 401 | API Key 错误 / 已停用 | 检查 Key 是否正确,进入「API Key」确认状态 |
| 403 | 模型未开通 / Key 权限不匹配(如标准 Key 调用融合功能) | 「开通管理」确认模型状态,重新创建对应类型 Key |
| 429 | QPS 超限(超过模型设定的并发限制) | 降低调用频率,或联系客服提升 QPS |
电商平台轻量化智能客服工具,聚焦订单查询、售后咨询、产品推荐等核心需求,适合中小商家快速部署,无需专业服务器维护,本地 Windows 环境即可运行,单日成本可控制在较低水平。
| 模块 | 选型理由 |
|---|---|
| 核心接口 | 大模型 API(GPT-5+RAG 知识库) |
| 后端框架 | Flask(轻量 Web 框架) |
| 会话缓存 | 内存字典(Python 内置) |
| 前端 | HTML+CSS+JavaScript |
| 运行环境 | Windows 10/11 + Python 3.13.5 |
上传 FAQ 数据:支持上传文档(.md/.docx)、表格(.xlsx),示例数据如下('退款政策.md'):
# 电商客服 FAQ
1. 退款申请后多久到账?
答:退款将在 1-3 个工作日内原路返回,具体到账时间以银行为准。
2. 订单发货时间?
答:普通商品 48 小时内发货,预售商品以详情页标注时间为准。
3. 如何修改收货地址?
答:订单发货前可在'我的订单'→'修改地址'中操作;已发货需联系快递拦截。
进入知识库管理:控制台左侧点击「知识库管理」→「新建知识库」,命名'电商客服 FAQ'。
.env 中替换 AIONLY_API_KEY。融合模式 Key 会自动在调用时进行知识库检索与上下文融合,无需手动检索接口。
ecommerce-ai-chatbot/
├── app.py # Flask 主程序(含会话管理)
├── api_client.py # API 客户端
├── .env # 配置文件
├── requirements.txt # 依赖库
└── templates/
└── index.html # 前端界面
flask==2.3.3
requests==2.31.0
python-dotenv==1.0.0
AIONLY_API_KEY=your_fusion_mode_api_key_here
AIONLY_CHAT_URL=https://api.example.com/v1/chat/completions
import os
import requests
from dotenv import load_dotenv
# 全局内存存储用户对话历史(替代 Redis)
user_history = {}
# 格式:{user_id: [{"role": "...", "content": "..."}, ...]}
load_dotenv()
class ApiClient:
def __init__(self):
self.api_key = os.getenv("AIONLY_API_KEY")
self.chat_url = os.getenv("AIONLY_CHAT_URL")
self.headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
}
def retrieve_knowledge(self, user_message):
pass
def get_chat_reply(self, user_id, user_message):
"""获取 AI 回复(含内存对话管理)"""
# 1. 初始化/获取用户历史
if user_id not in user_history:
user_history[user_id] = []
messages = [{"role": "system", "content": "你是电商 AI 客服,请根据知识库内容和用户问题,友好地回答。"}] + user_history[user_id] + [{"role": "user", "content": user_message}]
payload = {
"model": "gpt-5",
"messages": messages,
"temperature": 0.6,
"max_tokens":
}
:
response = requests.post(.chat_url, headers=.headers, json=payload)
response.raise_for_status()
result = response.json()
reply = result[][][][]
token_used = result[][]
user_history[user_id].append({: , : user_message})
user_history[user_id].append({: , : reply})
user_history[user_id] = user_history[user_id][-:]
{
: ,
: reply,
: token_used
}
Exception e:
error_msg = (e)
():
error_msg +=
{: , : error_msg}
():
user_id user_history:
user_history[user_id]
from flask import Flask, request, jsonify, render_template
import uuid
from api_client import ApiClient
app = Flask(__name__)
ai_client = ApiClient()
# 1. 前端界面
@app.route("/")
def index():
return render_template("index.html")
# 2. 对话 API
@app.route("/api/chat", methods=["POST"])
def chat():
data = request.json
user_id = data.get("user_id")
user_message = data.get("message", "").strip()
# 生成用户 ID(首次访问)
if not user_id:
user_id = str(uuid.uuid4())
if not user_message:
return jsonify({"success": False, "error": "请输入有效消息"})
# 获取回复
result = ai_client.get_chat_reply(user_id, user_message)
result["user_id"] = user_id
return jsonify(result)
# 3. 清除历史 API
@app.route("/api/clear-history", methods=["POST"])
def clear_history():
data = request.json
user_id = data.get("user_id")
if user_id:
ai_client.clear_user_history(user_id)
return jsonify({"success": })
jsonify({: , : }),
__name__ == :
app.run(host=, port=, debug=)
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>电商 AI 客服</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; }
.chat-container { border: 1px solid #eee; border-radius: 8px; overflow: hidden; }
.chat-header { background: #2272f9; color: white; padding: 16px; font-size: 18px; }
.chat-history { height: 500px; : auto; : ; : ; }
{ : ; : ; : ; : ; : ; }
{ : ; : white; : auto; }
{ : ; : solid ; : auto; }
{ : ; : ; : center; : ; }
{ : flex; : solid ; }
{ : ; : ; : none; : none; : ; }
{ : ; : ; : white; : none; : pointer; : ; }
{ : ; : ; : white; : none; : pointer; : ; }
API 平台电商 AI 客服(7×24 小时在线)
欢迎咨询,我可以帮您查询订单、处理售后问题~
清除历史
发送
python --version 显示 3.13.5 即为成功.env 文件,内容如下:
AIONLY_API_KEY=你的 API 密钥
AIONLY_CHAT_URL=https://api.example.com/v1/chat/completions
创建项目文件夹:
mkdir C:\ecommerce-ai-chatbot
cd C:\ecommerce-ai-chatbot
pip install -r requirements.txt
(若提示 pip 版本问题,先运行 python -m pip install --upgrade pip)python app.py
看到类似以下输出即为成功:
* Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
PS:警告忽略即可http://127.0.0.1:5000| 测试场景 | 实际效果 | 耗时 | 准确率 |
|---|---|---|---|
| FAQ 匹配('退款到账时间') | 直接返回知识库答案 | <200ms | 100% |
| 多轮对话('查订单→改地址') | 基于内存历史保持上下文理解 | 300-400ms | 90% |
| 复杂问题('推荐性价比高的商品') | 调用 GPT-5 生成个性化推荐 | 400-600ms | 85% |
| 人群 / 角色 | 推荐场景 | 核心价值 |
|---|---|---|
| AI 开发者 | 智能客服、代码助手、多模态交互系统 | 快速集成多模型,降低开发成本 |
| 内容创作者 | 短视频脚本生成、图片素材制作、文案撰写 | 提升创作效率,降低素材成本 |
| 企业运营 / 客服团队 | 7×24 小时智能客服、客户问题自动分类 | 替代 30% 人工工作,降低运营成本 |
| 高校科研人员 | 前沿模型实验、学术数据分析、论文辅助撰写 | 低成本调用顶尖模型,支持科研创新 |

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online