最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

公眾號接入chatGPT的詳細(xì)教程 附Python源碼

 更新時(shí)間:2023年02月18日 14:53:43   作者:攻城獅杰森  
這篇文章主要介紹了公眾號接入chatGPT教程附Python源碼,這里需要大家準(zhǔn)備一個域名,一臺服務(wù)器和一個公眾號,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

前置準(zhǔn)備

  1. 一個域名
  2. 一臺服務(wù)器
  3. 一個公眾號

域名配置

在你的域名服務(wù)商新建二級域名并綁定服務(wù)器主機(jī)IP

服務(wù)器配置

上傳下面的python文件到你的服務(wù)器,并修改代碼段中相應(yīng)位置代碼(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 = "" # 自定義字母和數(shù)字組合即可,后續(xù)需要填入公眾號后臺
my_gpt_key = "" # 這里填寫你在OpenAI后臺創(chuàng)建的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服務(wù)助手</a>正在維護(hù)中,暫時(shí)無法預(yù)估維護(hù)持續(xù)時(shí)間,請明天再來嘗試吧。"

@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端口

使用寶塔是比較快捷的配置方式,安裝寶塔面板后,進(jìn)入軟件商店,安裝下面兩個插件

打開 python 項(xiàng)目管理器 ,簡單配置下我們要啟動的項(xiàng)目

啟動后映射項(xiàng)目域名,頂級域和二級域都可以,比如我這里填入的是 chatgpt.coder-jason.cn 

公眾號配置

進(jìn)入公眾號后臺,找到設(shè)置與開發(fā),進(jìn)入基本配置,由于我這里已經(jīng)配置好了,這里僅演示下怎么添加啟用

點(diǎn)擊添加配置

token 值就是在上述代碼段中填入的值,自定義字母和數(shù)字組合即可

點(diǎn)擊提交后,如果服務(wù)器中的項(xiàng)目啟動無誤,則會提示 token校驗(yàn)成功

接下來就可以回到公眾號和 chatGPT 愉快的交流啦~

到此這篇關(guān)于公眾號接入 chatGPT教程 附Python源碼的文章就介紹到這了,更多相關(guān)公眾號接入 chatGPT內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)的中國剩余定理算法示例

    Python實(shí)現(xiàn)的中國剩余定理算法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的中國剩余定理算法,結(jié)合實(shí)例形式分析了中國剩余定理的概念、原理及具體算法實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-08-08
  • Python數(shù)據(jù)分析matplotlib設(shè)置多個子圖的間距方法

    Python數(shù)據(jù)分析matplotlib設(shè)置多個子圖的間距方法

    今天小編就為大家分享一篇Python數(shù)據(jù)分析matplotlib設(shè)置多個子圖的間距方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • python 下劃線的不同用法

    python 下劃線的不同用法

    在本文中,我們將介紹 Python 中 _ 字符的不同用法。就像 Python 中的許多其他內(nèi)容一樣,我們會看到 “_” 的不同用法主要是慣例問題。這里我們將介紹幾種不同的情況。
    2020-10-10
  • python使用import引入其他目錄文件方式

    python使用import引入其他目錄文件方式

    這篇文章主要介紹了python使用import引入其他目錄文件方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python中使用PDB庫調(diào)試程序

    Python中使用PDB庫調(diào)試程序

    這篇文章主要介紹了Python中使用PDB庫調(diào)試程序,本文講解了使用PDB的二種模式以及PDB模式下的常用調(diào)試命令,需要的朋友可以參考下
    2015-04-04
  • python基礎(chǔ)之文件操作

    python基礎(chǔ)之文件操作

    這篇文章主要介紹了python基礎(chǔ)之文件操作,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有一定的幫助,需要的朋友可以參考下
    2021-04-04
  • 一文搞懂Python中pandas透視表pivot_table功能

    一文搞懂Python中pandas透視表pivot_table功能

    透視表是一種可以對數(shù)據(jù)動態(tài)排布并且分類匯總的表格格式。或許大多數(shù)人都在Excel使用過數(shù)據(jù)透視表,也體會到它的強(qiáng)大功能,而在pandas中它被稱作pivot_table,今天通過本文給大家介紹Python中pandas透視表pivot_table功能,感興趣的朋友一起看看吧
    2021-11-11
  • Python實(shí)現(xiàn)代碼統(tǒng)計(jì)工具

    Python實(shí)現(xiàn)代碼統(tǒng)計(jì)工具

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)代碼統(tǒng)計(jì)工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Django項(xiàng)目后臺不掛斷運(yùn)行的方法

    Django項(xiàng)目后臺不掛斷運(yùn)行的方法

    今天小編就為大家分享一篇Django項(xiàng)目后臺不掛斷運(yùn)行的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 詳解Django關(guān)于StreamingHttpResponse與FileResponse文件下載的最優(yōu)方法

    詳解Django關(guān)于StreamingHttpResponse與FileResponse文件下載的最優(yōu)方法

    這篇文章主要介紹了詳解Django關(guān)于StreamingHttpResponse與FileResponse文件下載的最優(yōu)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評論

泰安市| 台湾省| 阳山县| 安图县| 余姚市| 中西区| 临城县| 罗甸县| 双辽市| 松溪县| 洛阳市| 泗水县| 永德县| 包头市| 青川县| 正定县| 疏附县| 灌阳县| 塔河县| 郸城县| 高碑店市| 杭锦后旗| 苍溪县| 基隆市| 新绛县| 马龙县| 佛山市| 玉树县| 广灵县| 库尔勒市| 浑源县| 伊春市| 丹阳市| 嫩江县| 乌拉特前旗| 济南市| 平遥县| 通江县| 鸡东县| 沛县| 庆城县|