M6 | 公众号后台接入腾讯AI,复制这段Python就可以。

简介: M6 | 公众号后台接入腾讯AI,复制这段Python就可以。

目标:任何一个公众号,都可以接入的机器人


- part 1 -


代码



1、找出之前的框架:M3.2 | Python从0到1搭建AI智能聊天接口


2、把其中的AI问答的views.py换成下面这个代码,直接复制粘贴~


from django.shortcuts import render
# Create your views here.
import hashlib
from django.http import HttpResponse
import xml.etree.ElementTree as ET
import time, requests
from django.views.decorators.csrf import csrf_exempt
# ai问答
def aianswer(content):
    ans = requests.get('你的AI链接' + str(content)).text
    return ans
@csrf_exempt
def token(request):
    try:
        # get请求用来验证
        if request.method == 'GET':
            signature = request.GET.get('signature', '')
            timestamp = request.GET.get('timestamp', '')
            nonce = request.GET.get('nonce', '')
            echostr = request.GET.get('echostr', '')
            token = "你的后台token"  # 请按照公众平台官网\基本配置中信息填写
            list = [token, timestamp, nonce]
            list.sort()
            sha1 = hashlib.sha1()
            sha1.update(''.join(list).encode('utf-8'))
            hashcode = sha1.hexdigest()
            print("handle/GET func: {}, {}: ".format(hashcode, signature))
            hashcode = signature
            if hashcode == signature:
                print(666)
                return HttpResponse(echostr)
            else:
                return HttpResponse("")
        # post请求用来回复消息
        else:
            othercontent = autoreply(request)
            return HttpResponse(othercontent)
    except Exception as e:
        return HttpResponse(e)
# 微信服务器推送消息是xml的,根据利用ElementTree来解析出的不同xml内容返回不同的回复信息,就实现了基本的自动回复功能了,也可以按照需求用其他的XML解析方法
def autoreply(request):
    try:
        webData = request.body
        xmlData = ET.fromstring(webData)
        # 被关注回复代码
        try:
            ToUserName = xmlData.find('ToUserName').text
            FromUserName = xmlData.find('FromUserName').text
            toUser = FromUserName
            fromUser = ToUserName
            event = xmlData.find('Event').text
        except:
            event = '000'
        import datetime
        now = datetime.datetime.now()
        s = now.second
        if event != '000':
            content = g_关注欢迎词+j_近期福利+m_每月公益活动
            replyMsg = TextMsg(toUser, fromUser, content)
            return replyMsg.send()
        # 被关注回复代码
        msg_type = xmlData.find('MsgType').text
        ToUserName = xmlData.find('ToUserName').text
        FromUserName = xmlData.find('FromUserName').text
        CreateTime = xmlData.find('CreateTime').text
        MsgType = xmlData.find('MsgType').text
        MsgId = xmlData.find('MsgId').text
        content = xmlData.find('Content').text
        toUser = FromUserName
        fromUser = ToUserName
        print(msg_type)
        print('消息类型 : {}'.format(msg_type))
        if msg_type == 'text':
            # ai问答
            content = aianswer(content)
            replyMsg = TextMsg(toUser, fromUser, content)
            print("成功了!!!!!!!!!!!!!!!!!!!")
            print(replyMsg)
            return replyMsg.send()
        elif msg_type == 'image':
            content = "图片已收到,谢谢"
            replyMsg = TextMsg(toUser, fromUser, content)
            return replyMsg.send()
        elif msg_type == 'voice':
            content = "语音已收到,谢谢"
            replyMsg = TextMsg(toUser, fromUser, content)
            return replyMsg.send()
        elif msg_type == 'video':
            content = "视频已收到,谢谢"
            replyMsg = TextMsg(toUser, fromUser, content)
            return replyMsg.send()
        elif msg_type == 'shortvideo':
            content = "小视频已收到,谢谢"
            replyMsg = TextMsg(toUser, fromUser, content)
            return replyMsg.send()
        elif msg_type == 'location':
            content = "位置已收到,谢谢"
            replyMsg = TextMsg(toUser, fromUser, content)
            return replyMsg.send()
        else:
            msg_type == 'link'
            content = "链接已收到,谢谢"
            replyMsg = TextMsg(toUser, fromUser, content)
            return replyMsg.send()
    except Exception as Argment:
        return Argment
class Msg(object):
    def __init__(self, xmlData):
        self.ToUserName = xmlData.find('ToUserName').text
        self.FromUserName = xmlData.find('FromUserName').text
        self.CreateTime = xmlData.find('CreateTime').text
        self.MsgType = xmlData.find('MsgType').text
        self.MsgId = xmlData.find('MsgId').text
class TextMsg(Msg):
    def __init__(self, toUserName, fromUserName, content):
        self.__dict = dict()
        self.__dict['ToUserName'] = toUserName
        self.__dict['FromUserName'] = fromUserName
        self.__dict['CreateTime'] = int(time.time())
        self.__dict['Content'] = content
    def send(self):
        XmlForm = """
        <xml>
        <ToUserName><![CDATA[{ToUserName}]]></ToUserName>
        <FromUserName><![CDATA[{FromUserName}]]></FromUserName>
        <CreateTime>{CreateTime}</CreateTime>
        <MsgType><![CDATA[text]]></MsgType>
        <Content><![CDATA[{Content}]]></Content>
        </xml>
        """
        return XmlForm.format(**self.__dict)


3、上传到阿里云,输入:python manage.py runserver,返回公号后台进行对话。


微信图片_20220429125032.jpg



相关文章
|
7天前
|
人工智能 自然语言处理 决策智能
DRT-o1:腾讯推出专注于文学翻译的 AI 模型,擅长理解比喻和隐喻等修辞手法,在翻译时保留原文的情感色彩
DRT-o1 是腾讯研究院推出的文学翻译系列 AI 模型,通过长链思考推理技术显著提升翻译质量,特别擅长处理比喻和隐喻等修辞手法。
34 2
DRT-o1:腾讯推出专注于文学翻译的 AI 模型,擅长理解比喻和隐喻等修辞手法,在翻译时保留原文的情感色彩
|
1月前
|
人工智能
AnchorCrafter:中科院联合腾讯推出的AI虚拟主播带货视频制作技术
AnchorCrafter是由中科院和腾讯联合推出的一项AI虚拟主播带货视频制作技术。该技术基于扩散模型,能够自动生成高保真度的主播风格产品推广视频,通过整合人-物交互(HOI)技术,实现对物体外观和运动控制的高度还原。AnchorCrafter在物体外观保持、交互感知以及视频质量方面优于现有方法,为在线广告和消费者参与提供了新的可能性。
158 30
AnchorCrafter:中科院联合腾讯推出的AI虚拟主播带货视频制作技术
|
5月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
191 1
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
|
2月前
|
人工智能 编解码 BI
LEOPARD:腾讯AI Lab西雅图实验室推出的视觉语言模型
LEOPARD是由腾讯AI Lab西雅图实验室推出的视觉语言模型,专为处理含有大量文本的多图像任务设计。该模型通过自适应高分辨率多图像编码模块和大规模多模态指令调优数据集,在多个基准测试中表现卓越,适用于自动化文档理解、教育和学术研究、商业智能和数据分析等多个应用场景。
42 2
LEOPARD:腾讯AI Lab西雅图实验室推出的视觉语言模型
|
5月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
257 4
|
2月前
|
机器学习/深度学习 人工智能 Python
MuCodec:清华、腾讯AI、港中文共同推出的超低比特率音乐编解码器
MuCodec是由清华大学深圳国际研究生院、腾讯AI实验室和香港中文大学联合开发的超低比特率音乐编解码器。它能够在0.35kbps至1.35kbps的比特率下实现高效的音乐压缩和高保真重建,适用于在线音乐流媒体服务、音乐下载、语言模型建设等多个应用场景。
41 1
MuCodec:清华、腾讯AI、港中文共同推出的超低比特率音乐编解码器
|
5月前
|
自然语言处理 数据挖掘 开发者
Python腾讯视频16978条弹幕,发现弹幕比剧还精彩
Python腾讯视频16978条弹幕,发现弹幕比剧还精彩
60 4
Python腾讯视频16978条弹幕,发现弹幕比剧还精彩
|
5月前
|
机器学习/深度学习 前端开发 数据挖掘
基于Python Django的房价数据分析平台,包括大屏和后台数据管理,有线性、向量机、梯度提升树、bp神经网络等模型
本文介绍了一个基于Python Django框架开发的房价数据分析平台,该平台集成了多种机器学习模型,包括线性回归、SVM、GBDT和BP神经网络,用于房价预测和市场分析,同时提供了前端大屏展示和后台数据管理功能。
129 9
|
5月前
|
前端开发 关系型数据库 MySQL
Python基于Django框架图书管理系统,Bootstrap框架UI,后台EasyUI框架UI,有登录,实现增删改查的富文本效果
本文介绍了一个使用Python Django框架开发的图书管理系统,该系统采用Bootstrap框架进行前端UI设计,EasyUI框架用于后台UI界面,集成了富文本编辑器,并实现了登录及增删改查功能。
103 1
|
6月前
|
Python
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题