公众号接入chatGPT的详细教程 附Python源码

目录
  • 前置准备
  • 域名配置
  • 服务器配置
  • 公众号配置
  • 点击添加配置

前置准备

  1. 一个域名
  2. 一台服务器
  3. 一个公众号

域名配置

在你的域名服务商新建二级域名并绑定服务器主机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 os

cnt = 0
my_wx_token = "" # 自定义字母和数字组合即可,后续需要填入公众号后台
my_gpt_key = "" # 这里填写你在OpenAI后台创建的API-KEY
my_switch_chatgpt = True

app = 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_token

        data =[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 echostr
        else:
            print("GET error input msg")
            return "error-return\r\n"
    else:
        xmlData = ET.fromstring(request.stream.read())
        msg_type = xmlData.find('MsgType').text
        if msg_type == 'text':
            ToUserName = xmlData.find('ToUserName').text
            FromUserName = xmlData.find('FromUserName').text
            CreateTime = xmlData.find('CreateTime').text

            print(ToUserName)
            print(FromUserName)
            print(CreateTime)

            global cnt
            cnt += 1
            print('-------> ' + 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 response

def 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_txt

    openai.api_key = my_gpt_key

    response = 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].text
    print(message)

    ans = message.strip()
    return ans

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=xxxx, debug=True)#开放xxxx端口

使用宝塔是比较快捷的配置方式,安装宝塔面板后,进入软件商店,安装下面两个插件

打开 python 项目管理器 ,简单配置下我们要启动的项目

启动后映射项目域名,顶级域和二级域都可以,比如我这里填入的是 chatgpt.coder-jason.cn

公众号配置

进入公众号后台,找到设置与开发,进入基本配置,由于我这里已经配置好了,这里仅演示下怎么添加启用

点击添加配置

token 值就是在上述代码段中填入的值,自定义字母和数字组合即可

点击提交后,如果服务器中的项目启动无误,则会提示 token校验成功

接下来就可以回到公众号和 chatGPT 愉快的交流啦~

到此这篇关于公众号接入 chatGPT教程 附Python源码的文章就介绍到这了,更多相关公众号接入 chatGPT内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • ChatGPT在IDEA中使用的详细过程

    目录 安装 1.Settings 2. Plugins>MarketPlace 3.搜索chatgpt并安装(本人已安装) 配置 URL 设置 默认 官方源 自定义 Cloudflare 网络连接设置 读取超时 链接超时 使用 安装 下载最新版 并且手动安装: Settings/Preferences > Plugins > Marketplace > Install plugin from disk... 1.Settings 2. Plugins>MarketPlace

  • Pycharm 安装 idea VIM插件的图文教程详解

    直接在线安装 1.File->Settings->Plugins->Install JetBrains Plugins 2.点击install安装ideavim 3.也许需要的切换vim模式和pychar模式 快捷键:Ctrl+Alt+V 也许需要的方法二:手动导入 插件地址:http://plugins.jetbrains.com/plugin/?ruby&id=164File->Settings->Plugins->Install plugin from d

  • Java调用ChatGPT的实现代码

    目录 Java调用ChatGPT的小插件 1. ChatGPT账号准备 2. 配置阶段 2.1 依赖引入 2.2 配置application.yml文件 2.3 @EnableChatGPT注解 3. 使用 4. 测试 Java调用ChatGPT的小插件 1. ChatGPT账号准备 很多博文有介绍怎么获取账号,具体的可自行搜索.准备好ChatGPT帐号之后打开openai的官网去创建API KEYS,链接:https://platform.openai.com/account/api-keys

  • chatgpt国内镜像 pycharm idea插件使用详解

    ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序,于2022年11月30日发布   .ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件.视频脚本.文案.翻译.代码,写论文等任务. 本文重点介绍chatgpt国内镜像 pycharm idea插件,一起看看吧! 这里是引用python可以

  • Pycharm和Idea支持的vim插件的方法

    Ideavim对同时喜欢Vim和Intellij全家桶(Idea, Pycharm等)的人来说是再熟悉不过了,既可以享受Intellij的强大功能,又可以用Vim操作文本,真是双份的快乐.可是你知道Ideavim也有插件的吗,虽然是官方模拟的,但操作方式与Vim原生的并没有什么不同?从IdeaVim的主页上可以查到支持的插件列表. easymotion 模拟的是Vim-easymotion插件 需要事先安装IdeaVim-EasyMotion和AceJump这两个Idea的插件. 使用方法:<l

  • 解析jetbrains IDE的插件加载不出来的问题(IDEA、pycharm等)

    jetbrains IDE的插件加载不出来 场景 Win10.IDEA 2020.2.电脑配置了HTTP/HTTPS/socks梯子代理.想要给IDEA从plugins marketplace下载新的theme. 问题 plugins marketplace的插件加载不出. 原因分析 网络不顺畅或不通.plugins marketplace的repository在国外,国内访问的速度慢,一般会无法加载. 但是我已经使用了梯子代理.当IDEA访问repository时,应该走的是代理,所以不存在国

  • 公众号接入chatGPT的详细教程 附Python源码

    目录 前置准备 域名配置 服务器配置 公众号配置 点击添加配置 前置准备 一个域名 一台服务器 一个公众号 域名配置 在你的域名服务商新建二级域名并绑定服务器主机IP 服务器配置 上传下面的python文件到你的服务器,并修改代码段中相应位置代码(token.api-key.port) import time from flask import Flask,make_response,request import openai from flask import Flask, request f

  • 微信公众号接入ChatGPT机器人的方法

    目录 在云服务器上部署自定义消息处理服务 微信公众号配置自己的消息处理服务器 不难,代码总共也就25行,大致逻辑如下. 总共分为是下面两步 在云服务器上部署自定义消息处理服务 这里需要我们自定义来处理用户发送过来的消息 首先导入werobot,这是微信公众号官方让我们自定义消息处理的模块 pip install werobot 然后是一个样例,具体内容已经注释 注意,只能用80端口启动,如果有https可以用443端口来启动,至于为什么?后面会知道. import werobot # token

  • jQuery的Ajax用户认证和注册技术实例教程(附demo源码)

    前面介绍了<jquery+ajax注册实时验证>及<jQuery使用$.ajax进行即时验证的方法>.这里进一步总结了jQuery的Ajax用户认证和注册技术.分享给大家供大家参考,具体如下: Ajax 表单提交是一个功能强大的技术,提供一种发送 web 表单的方法,无需重载浏览器窗口.jQuery 库让您使用 Ajax 表单提交功能进一步提供一个方便快捷的方法,以少量代码生成可用 Ajax 的 Web 表单.在本文中,学习如何使用 jQuery 创建基础 Ajax 表单提交,以及

  • java微信公众号开发第一步 公众号接入和access_token管理

    本文就来说一说微信开发第一步,公众号接入以及access_token的管理. 一.微信公众号接入 在微信公众号开发手册上,关于公众号接入这一节内容还是写的比较详细的,文档中说接入公众号需要3个步骤,分别是: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 其实,第3步已经不能算做公众号接入的步骤,而是接入之后,开发人员可以根据微信公众号提供的接口所能做的一些开发. 第1步中服务器配置包含服务器地址(URL).Token和EncodingAESKey. 服务器地址即公

  • Postman安装与使用详细教程 附postman离线安装包

    Postman一款非常流行的API调试工具.其实,开发人员用的更多.因为测试人员做接口测试会有更多选择,例如Jmeter.soapUI等.不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大. 需要postman安装包的童鞋可以通过下面链接自行下载哈! postman离线安装包亲测可用 官方网站:https://www.getpostman.com/ ###安装 1.Postman最早是作用chrome浏览器插件存在的,所以,你可以到chrome商店搜索下载安装,因为重

  • R语言3.6.3安装超详细教程附安装包

    软件下载 R语言3.6.3 软件安装包下载: 链接: https://pan.baidu.com/s/1sufVf2lmoj9GYG_j5_fJKQ 提取码: tnqg R语言R-4.0.4 安装包下载地址: 链接: https://pan.baidu.com/s/1uzH49cJ0lnob54k19WWjOQ 提取码: kusa 软件介绍 R语言是一款非常专业的统计建模软件,R语言拥有数据存储和处理系统;数组运算工具(其向量.矩阵运算方面功能尤其强大),完整连贯的统计分析工具;优秀的统计制图等

  • MySQL下载安装配置详细教程 附下载资源

    目录 一.下载 二.安装 三.配置 四.检测是否安装成功 五.注意事项 一.下载 1.官网下载 2.某度网盘下载 链接: https://pan.baidu.com/s/1BgbZH-aFaJ1nwm2PpDeOSQ?pwd=nutf 提取码: nutf 二.安装 1.双击下载的文件 2.点击Next 3.选中单选框后点exit 4.选择Custom用户自定义安装 5.修改安装目录后点击Next,尽量不要安装到C盘 6.点击Install进行安装 7.安装中,安装后会弹出配置窗口 8.安装完成后

  • 超详细OpenMV与STM32单片机通信 附完整源码

    目录 1.前言(闲话) 2.硬件连接 3.软件代码---OpenMV端 4.软件代码---STM32端 5.利用PC端测试数据数据是否发送接收正常 6.学习补充 (代码看不懂的时候可以来看一下) 8.博客更新 9.参考链接 10.完整版代码链接 1.前言(闲话) 最近在做电磁炮,发现题目需要用到颜色跟踪,于是花了一点时间学了一下OpenMV,只学习OpenMV是远远不够的,还需要实现与单片机的通信,本以为很简单,在CSDN上找了一些代码,直接拿来修改粘贴,把代码看明白了,这些只花了几个小时,本以

  • 微信小程序之侧边栏滑动实现过程解析(附完整源码)

    一.效果图 讲什么都不如直接上效果图好,所以我们先来看下实现效果如何. 通过滑动屏幕,或者点击左上角的图标按钮,都能实现侧边栏的划出效果. 二.原理解析 1.先实现侧边栏的内容,让侧边栏的内容居左,然后将侧边栏的内容置于屏幕的最底部. 2.接着实现主页的内容,并且让主页的内容默认是覆盖在侧边栏的内容上面. 3.然后,实现手指滑动屏幕的时候,主页的内容,向左滑动一定的宽度,让侧边栏的内容显示出来,而滑动的效果是通过 css 的 transition 来实现的. 三.源码 由于实现过程的时,我对代码

  • C#实现语音视频录制-附demo源码

    在很多语音视频软件系统中,经常有将实时的音频或视频录制为文件保存到磁盘的需求,比如,视频监控系统中录制监控到的视频.视频会议系统中录制整个会议的过程.语音通话系统中录制完整的对话内容.等等. MFile组件(Oraycn.MFile.dll)是傲瑞实用组件之一,它可以将原始的语音数据和视频数据按照指定的格式进行编码,并将它们写入到视频文件(如.mp4)中. 一.缘起 最近正在做的一个网络招聘平台的项目,其中有一个模块是这样的,应聘者可以通过该系统的客户端录制自己的视频(自我介绍)上传到服务器,而

随机推荐