> 申明:本文仅供技术交换应用,浏览本文需具备肯定的开发能力

前置筹备

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

域名配置

在你的域名服务商新建二级域名并绑定服务器主机IP

服务器配置

上传上面的python文件到你的服务器,并批改代码段中相应地位代码(token、api-key、port)

import timefrom flask import Flask,make_response,requestimport openaifrom flask import Flask, requestfrom flask_caching import Cacheimport xml.etree.cElementTree as ETimport hashlibimport requestsimport reimport oscnt = 0my_wx_token = "" # 自定义字母和数字组合即可,后续须要填入公众号后盾my_gpt_key = "" # 这里填写你在OpenAI后盾创立的API-KEYmy_switch_chatgpt = Trueapp = Flask(__name__)env_dist = os.environcache = 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 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_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 感兴趣或配置过程中遇到任何问题,欢送与我取得联系,vx:jasoni996