公众号接入 OpenAI 智能机器人
前置准备
- 一个域名
- 一台服务器
- 一个公众号
域名配置
在你的域名服务商新建二级域名并绑定服务器主机IP
服务器配置
上传下面的python文件到你的服务器,并修改代码段中相应位置代码(token、api-key、port)
import time
from flask import Flask,make_response,request
import openai
from flask import Flask, request
from flask_caching import Cache
import xml.etree.cElementTree as ET
import hashlib
import requests
import re
import oscnt = 0
my_wx_token = "" # 自定义字母和数字组合即可,后续需要填入公众号后台
my_gpt_key = "" # 这里填写你在OpenAI后台创建的API-KEY
my_switch_chatgpt = Trueapp = Flask(__name__)
env_dist = os.environ
cache = Cache(app, config={'CACHE_TYPE': 'simple', "CACHE_DEFAULT_TIMEOUT": 30})@app.route('/',methods=['GET','POST'])
def wechat():if request.method == 'GET':signature = request.args.get("signature", "")timestamp= request.args.get("timestamp", "")nonce= request.args.get("nonce", "")echostr= request.args.get("echostr", "")print(signature, timestamp, nonce, echostr)token=my_wx_tokendata =[token, timestamp, nonce]data.sort()temp = ''.join(data)sha1 = hashlib.sha1(temp.encode('utf-8'))hashcode=sha1.hexdigest()print(hashcode)if hashcode == signature:print("wechat commit check OK")return echostrelse:print("GET error input msg")return "error-return\r\n"else:xmlData = ET.fromstring(request.stream.read())msg_type = xmlData.find('MsgType').textif msg_type == 'text':ToUserName = xmlData.find('ToUserName').textFromUserName = xmlData.find('FromUserName').textCreateTime = xmlData.find('CreateTime').textprint(ToUserName)print(FromUserName)print(CreateTime)global cntcnt += 1print('-------> ' + str(cnt))return generate_response_xml(FromUserName, ToUserName, xmlData.find('Content').text)def text_reply(FromUserName, ToUserName, output_content):reply = '''<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content></xml>'''response = make_response(reply % (FromUserName, ToUserName, str(int(time.time())), output_content))response.content_type = 'application/xml'return responsedef generate_response_xml(FromUserName, ToUserName, input_content):output_content = generate_response(input_content)return text_reply(FromUserName, ToUserName, output_content)outofsevice_txt = "抱歉,<a href=\"https://mp.weixin.qq.com/s/0LN37YiERJgMyvIDpzRcAQ\">攻城狮杰森的ChatGPT服务助手</a>正在维护中,暂时无法预估维护持续时间,请明天再来尝试吧。"@cache.memoize(timeout=60)
def generate_response(prompt):if not my_switch_chatgpt:return outofsevice_txtopenai.api_key = my_gpt_keyresponse = openai.Completion.create(model="text-davinci-003",prompt=prompt,temperature=0,max_tokens=1024,top_p=1,frequency_penalty=0.0,presence_penalty=0.0,)message = response.choices[0].textprint(message)ans = message.strip()return ansif __name__ == '__main__':app.run(host='0.0.0.0', port=xxxx, debug=True)#开放xxxx端口
使用宝塔是比较快捷的配置方式,安装宝塔面板后,进入软件商店,安装下面两个插件
打开 python 项目管理器 ,简单配置下我们要启动的项目
启动后映射项目域名,顶级域和二级域都可以,比如我这里填入的是 chatgpt.coder-jason.cn
公众号配置
进入公众号后台,找到设置与开发,进入基本配置,由于我这里已经配置好了,这里仅演示下怎么添加启用
点击添加配置
token 值就是在上述代码段中填入的值,自定义字母和数字组合即可
点击提交后,如果服务器中的项目启动无误,则会提示 token校验成功
接下来就可以回到公众号和智能机器人愉快的交流啦~,欢迎到昵称同名公粽号进行体验
如果你对本文感兴趣或配置过程中遇到任何问题,欢迎与我取得联系,v:jasoni996
公众号接入 OpenAI 智能机器人相关推荐
- 手把手教你怎么免费为微信公众号接入智能客服
本文转自:http://blog.csdn.net/jjccwwbb/article/details/39079819 不少做微信的小伙伴在研究其他人的微信公众号时一定发现了,无论是什么时候,只要发送 ...
- 微信公众号接入图灵机器人实现自动回复消息
2019独角兽企业重金招聘Python工程师标准>>> 1.创建图灵机器人 进入图灵机器人网址:http://www.tuling123.com/ 登录/注册,进入机器人管理,然后点 ...
- 未认证公众号接入公众号支付
记录一次未认证公众号接入公众号支付 话虽这样说,实际必须有一个已经认证且已经可以使用微笑公众号支付的公众号A 公众号B没有认证,调用支付全部使用公众号A的参数(AppID,AppSecrect,pay ...
- 骏飞H5幸运刮刮乐源码多级分佣+upupw直接架设+H5微信登陆公众号接入 管理员
简介: 骏飞H5幸运刮刮乐源码多级分佣+upupw直接架设+H5微信登陆公众号接入 管理员 网盘下载地址: http://kekewl.net/pWg5xjUEhkm0 图片:
- 2014-07-23 .NET实现微信公众号接入
今天是在吾索实习的第11天.今天我跟我的实习小组的组员们,解决了关于使用ASP.NET进行微信公众号接入的问题.因为我们小组成员也是刚接触微信公众号的二次开发,所以在解决该问题的工程中也走了不少弯路. ...
- 微信公众号接入微软小冰
前言 文章首发于微信公众号:前端指南.本文是一篇有点偏向于运营层面的技术类文章,文章略长,请耐心阅读. 也就是最近这几年,人工智能行业已经变得十分的火热了.不可否认,人工智能是整个互联网行业的一种趋势 ...
- 从 0 开始最详细的微信公众号接入 AI
从 0 开始最详细的微信公众号接入 AI 文章目录 从 0 开始最详细的微信公众号接入 AI 写在前面 注册公众号 克隆到服务器 使用过微信机器人项目 未使用过微信机器人项目 更改配置文件 启动项目 ...
- 微信公众号接入图灵机器人
微信公众号接入图灵机器人 1. 申请一个微信公众号 这个步骤和申请一个小程序了类似,首先进入微信公众平台进行注册,关键是注册的时候是选择订阅号,还是服务号,我觉的如果你是自己做着玩的,就搞个订阅号,订 ...
- php给微信公众号接入聊天机器人程序+采坑记录
php给微信公众号接入聊天机器人程序 今天逛了下我的公众号,突然心血来潮,想添加个自动聊天功能,于是-动手-!! 主要用到的api: 图灵机器人api 青云客智能聊天机器人API 茉莉机器人API 至 ...
最新文章
- 巧用Excel记录单快速输入数据
- ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单编程
- oracle insert 数组,oracle 数组 批量insert
- 北邮计算机系统结构课件,TEC-8 运算器组成实验(北邮).ppt
- SpringBoot基础篇日志管理之logback配置文件
- Socket通讯成功案例
- linux中文快捷键,Linux系统快捷键最全合集
- python : 自定义可迭代类,__iter__ ,__next__的作用
- C++ 4 C++变量及作用域
- 【Android音视频开发】【007】SurfaceView实现H264播放器
- Symbian手记【一】 —— Symbian命名法
- Drools规则引擎-如果Fact对象参数为null如何处理
- element 绘制饼状图(复制代码直接用),付效果图
- button按钮的tittle 折行且居中显示
- 请教一下如何使用mdx文件
- 汉字目标点选识别-ddddocr
- 烫烫烫屯屯屯 那些事
- PMOS管用作电源开关注意事项
- slam第六讲_g2o
- Anaconda创建新环境失败解决方案