目标:实现机器人24小时在线,随时回复任何人
- part 1 -
部署
1、找出之前的框架:M3.2 | Python从0到1搭建AI智能聊天接口
2、把其中的views.py换成下面这个代码,直接复制粘贴~
from django.http import HttpResponse from django.shortcuts import render # Create your views here. def data_demo(request): # return HttpResponse("hello") return render(request, 'g_推文/shijie.html') def ai_reply(request): content = request.GET.get('user', '') reply = get_content(content) return HttpResponse(reply) import hashlib import time,requests import random import string from urllib.parse import quote def curlmd5(src): m = hashlib.md5(src.encode('UTF-8')) # 将得到的MD5值所有字符转换成大写 return m.hexdigest().upper() def get_params(plus_item): # 请求时间戳(秒级),用于防止请求重放(保证签名5分钟有效) t = time.time() time_stamp = str(int(t)) # 请求随机字符串,用于保证签名不可预测 nonce_str = ''.join(random.sample(string.ascii_letters + string.digits, 10)) # 应用标志,这里修改成自己的id和key app_id = '你的id' app_key = '你的key' params = {'app_id': app_id, 'question': plus_item, 'time_stamp': time_stamp, 'nonce_str': nonce_str, 'session': '10000' } sign_before = '' # 要对key排序再拼接 for key in sorted(params): # 键值拼接过程value部分需要URL编码,URL编码算法用大写字母,例如%E8。quote默认大写。 sign_before += '{}={}&'.format(key, quote(params[key], safe='')) # 将应用密钥以app_key为键名,拼接到字符串sign_before末尾 sign_before += 'app_key={}'.format(app_key) # 对字符串sign_before进行MD5运算,得到接口请求签名 sign = curlmd5(sign_before) params['sign'] = sign return params def get_content(plus_item): # 聊天的API地址 url = "https://api.ai.qq.com/fcgi-bin/nlp/nlp_textchat" # 获取请求参数 plus_item = plus_item.encode('utf-8') payload = get_params(plus_item) # r = requests.get(url,params=payload) r = requests.post(url, data=payload) return r.json()["data"]["answer"]
3、打开Pycharm的Terminal,输入:python manage.py runserver
4、打开浏览器,输入网址:http://127.0.0.1:8000/ai_reply?user=%E4%BD%A0%E5%A5%BD,看到机器人回复,本地运行成功!
5、部署到云服务器,请扫文末二维码私聊~
这篇推文我考虑了和寻找其它同类文案接近一周:
如何用简单易懂的文字说明,让小白能部署到服务器上?
请恕我能力有限,我实在是没找出一个可以从0开始的方案。
但是如果是远程沟通的话,会方便很多,