一、项目背景与产品介绍
在企业的数字化转型过程中,智能客服系统已成为提高客户满意度和降低运营成本的重要手段。阿里云的通义千问作为一款强大的大语言模型,具有自然语言理解、对话生成、知识检索等能力,非常适合用来开发智能客服与问答系统。
通过本博客,我们将演示如何基于阿里云的通义千问模型,结合阿里云相关产品如函数计算(FC)、API网关、RDS等,搭建一个功能齐全的智能客服系统。
二、系统架构设计
系统架构包括以下几个核心组件:
通义千问 API:核心语言模型,提供问答生成能力。
阿里云函数计算(FC):用于部署客服逻辑。
API 网关:提供统一的接口入口。
数据库(RDS 或者 MongoDB):存储用户问答记录。
前端展示:通过前端页面与用户交互。
三、阿里云相关产品的使用流程
- 通义千问 API 接入
登录阿里云,进入通义千问控制台。
开通并获取 API 调用权限,记录下AppKey与AppSecret。
调用示例接口,确认接口能够正常返回结果。
示例接口调用(Python代码)
import requests
import json
配置参数
API_URL = "https://qianwen-api.aliyun.com/v1/chat/completions"
APP_KEY = "your_app_key"
APP_SECRET = "your_app_secret"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {APP_SECRET}"
}
请求数据
data = {
"model": "qianwen-chat",
"prompt": "你好,我需要帮助。",
"temperature": 0.7
}
response = requests.post(API_URL, headers=headers, data=json.dumps(data))
print(response.json())
- 函数计算(FC)部署客服逻辑
登录阿里云控制台,进入函数计算。
创建一个新的服务与函数,选择“使用模板”创建 HTTP 触发器。
上传上述客服逻辑代码作为函数内容,确保支持 POST 请求。
配置环境变量,存储AppKey与AppSecret。
import json
import requests
import os
def handler(environ, start_response):
try:
# 从请求中获取用户输入
request_body = environ['wsgi.input'].read().decode('utf-8')
user_query = json.loads(request_body)['question']
# 通义千问 API 请求
api_url = "https://qianwen-api.aliyun.com/v1/chat/completions"
app_secret = os.getenv("APP_SECRET")
headers = {"Content-Type": "application/json", "Authorization": f"Bearer {app_secret}"}
payload = {"model": "qianwen-chat", "prompt": user_query, "temperature": 0.7}
response = requests.post(api_url, headers=headers, json=payload)
answer = response.json().get("choices", [{}])[0].get("text", "抱歉,我不太明白您的问题。")
# 返回结果
start_response('200 OK', [('Content-Type', 'application/json')])
return [json.dumps({"answer": answer}).encode('utf-8')]
except Exception as e:
start_response('500 Internal Server Error', [('Content-Type', 'text/plain')])
return [str(e).encode('utf-8')]
3. 配置 API 网关
登录阿里云,进入API 网关。
创建一个新的 API 服务,设置路径为/ask,并绑定函数计算的触发器。
配置安全策略,如 API Key 验证或 IP 白名单。
4. 数据库(RDS 或 MongoDB)存储用户记录
登录阿里云,进入RDS 控制台,创建一个数据库实例。
创建用户问答记录表,例如:
CREATE TABLE chat_records (
id INT PRIMARY KEY AUTO_INCREMENT,
user_query TEXT,
ai_response TEXT,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
在函数中添加数据库存储逻辑。
数据库存储逻辑示例
import pymysql
def store_chat_record(user_query, ai_response):
conn = pymysql.connect(
host="your_rds_host",
user="your_rds_user",
password="your_rds_password",
database="your_database"
)
with conn.cursor() as cursor:
sql = "INSERT INTO chat_records (user_query, ai_response) VALUES (%s, %s)"
cursor.execute(sql, (user_query, ai_response))
conn.commit()
conn.close()
四、前端展示示例
使用简单的 HTML + JavaScript 实现用户交互界面。
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>智能客服系统</title>
</head>
<body>
<h1>智能客服系统</h1>
<textarea id="question" placeholder="请输入您的问题"></textarea><br>
<button onclick="askQuestion()">提交</button>
<p id="answer"></p>
<script>
async function askQuestion() {
const question = document.getElementById('question').value;
const response = await fetch('https://your_api_gateway_url/ask', {
method: 'POST',
headers: {
'Content-Type': 'application/json'},
body: JSON.stringify({
question })
});
const result = await response.json();
document.getElementById('answer').innerText = result.answer;
}
</script>
</body>
</html>
五、总结与优化建议
日志与监控:使用阿里云的日志服务(SLS)监控系统运行情况。
模型微调:可使用企业数据对通义千问进行微调,提高回答准确性。
缓存与限流:引入 Redis 缓存与限流机制,提高系统性能。
通过上述流程,企业可以快速构建基于阿里云通义千问的智能客服系统,实现智能化客户服务。希望本文能为您提供思路与技术指导!