当前位置: 首页 > 后端技术 > Python

公众号访问chatGPT教程(附源码)

时间:2023-03-25 19:48:16 Python

>免责声明:本文仅作技术交流,阅读本文需要一定的开发能力准备好域名,服务器,以及一个公众号域名配置在你的domainname服务商新建一个二级域名并绑定服务器hostIPServerconfiguration将以下python文件上传到你的服务器,在代码段import中修改对应的locationcode(token,api-key,port)timefromflaskimportFlask,make_response,requestimportopenaifromflaskimportFlask,requestfromflask_cachingimportCacheimportxml.etree.cElementTreeasETimporthashlibimportrequestsimportreimportoscnt=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'])defwechat():ifrequest.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)ifhashcode==signature:print("wechatcommitcheckOK")returnechostrelse:print("GETerrorinputmsg")return"error-return\r\n"else:xmlData=ET.fromstring(request.stream.read())msg??_type=xmlData.find('MsgType').text如果msg_type=='text':ToUserName=xmlData.find('ToUserName').textFromUserName=xmlData.find('FromUserName').textCreateTime=xmlData.find('CreateTime').textprint(ToUserName)print(FromUserName)print(CreateTime)globalcntcnt+=1print('-------->'+str(cnt))returngenerate_response_xml(FromUserName,ToUserName,xmlData.find('Content').text)deftext_reply(FromUserName信息),ToUserName,output_content):reply='''%s'''响应=make_response(reply%(FromUserName,ToUserName,str(int(time.time())),output_content))response.content_type='application/xml'返回respondefgenerate_response_xml(FromUserName,ToUserName,input_content):output_content=generate_response(input)returntext_reply(FromUserName,ToUserName,output_content)outofsevice_txt="抱歉,攻城狮Jason的ChatGPT服务助手是维护中,暂时无法预估维护时长,请明天再试。"@cache.memoize(timeout=60)defgenerate_response(prompt):ifnotmy_switch_chatgpt:returnoutofsevice_txtopenai.api_key=my_gpt_keyresponse=openai.Completion.create(model="text-davinci-003",提示=提示,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()返回ans如果__name__=='__main__':app.run(host='0.0.0.0',port=xxxx,debug=True)#开放xxxx端口使用宝塔是比较快速的配置方式。安装好宝塔面板后,进入软件商店,安装下面两个插件,打开Python项目管理器,简单配置下,我们要启动的项目映射到项目启动后的域名,顶层domain和二级域名都可以,比如我这里填写的是chatgpt.coder-jason.cn配置进入公众号后台找到Setupanddevelopment,进入基础配置,因为我已经配置好了到这里,这里只是演示如何添加和启用点击添加配置token值就是上面代码段填写的值,可以自定义字母和数字的组合点击提交,如果项目在服务器正确启动,会提示token验证成功,然后就可以回到公众号和chatGPT愉快交流啦~,欢迎大家对c有兴趣的总豪攻城狮Jason体验hatGPT或者在配置过程中遇到什么问题,欢迎联系我,vx:jasoni996