2023年7月24日 星期一

Chatgpt的Linebot專案發布到CPanel伺服器

最近購買了CPanel伺服器空間,Chatgpt的Linebot專案部署到Vercel時,當回覆較長會產生Timeout錯誤的問題,因此將其部署到CPanel來解決此問題。

建立Python應用程式

登入CPanel,點選「Setup Python App」。

按「CREATE APPLICATION」鈕建立應用程式。

Python version選擇最新的版本(此處為3.9.16),Application root輸入Cpanel中的資料夾名稱(此處為chatgptbot),Application URL輸入應用程式網址(通常會與Application root相同,方便辨識),Application startup file輸入「passenger-wsgi.py」,此檔案會自動產生,Application Entry point輸入「application」,按「CREATE」鈕建立應用程式。

建立Flask程式

在本機建立< chatgptbot>資料夾,內含主程式< app.py>,內容為:

from flask import Flask

app = Flask(__name__)


from flask import request, abort

from linebot import  LineBotApi, WebhookHandler

from linebot.exceptions import InvalidSignatureError

from linebot.models import MessageEvent, TextMessage, TextSendMessage

import openai


openai.api_key = '你的OPENAI API Key'

line_bot_api = LineBotApi('你的Channel access token')

handler1 = WebhookHandler('你的Channel secret')


@app.route('/callback', methods=['POST'])

def callback():

    signature = request.headers['X-Line-Signature']

    body = request.get_data(as_text=True)

    try:

        handler1.handle(body, signature)

    except InvalidSignatureError:

        abort(400)

    return 'OK'


@handler1.add(MessageEvent, message=TextMessage)

def handle_message(event):

    text1=event.message.text

    response = openai.ChatCompletion.create(

        messages=[

            {"role": "user", "content": text1}

        ],

        model="gpt-3.5-turbo",

        temperature = 0.5,

    )

    try:

        ret = response['choices'][0]['message']['content'].strip()

    except:

        ret = '發生錯誤!'

    line_bot_api.reply_message(event.reply_token,TextSendMessage(text=ret))


if __name__ == '__main__':

    app.run()

及安裝模組檔<requirements.txt>,內容為:

Flask

line-bot-sdk

openai

部署應用程式

點選左方「Tools」,再點選「檔案管理員」。

在 CPanel 檔案管理員可見到系統已建立<chatgptbot> 資料夾,點選 <chatgptbot> 資料夾,按「上傳」鈕。

開啟本機檔案總管,選取<app.py>及<requirements.txt>檔拖曳到Cpanel的上傳區塊中,就可將兩個檔案上傳。

修改<passenger-wsgi.py>檔:點選<passenger-wsgi.py>檔,按「編輯」鈕後再按「Edit」鈕。

刪除原有內容,輸入「from app import app as application」後按「儲存變更」鈕完成設定。

回到Cpanel,點選「Setup Python App」,點選2girls.idv.tw/chatgptbot右方的「編輯」鈕。

在「Run Pip Install」鈕下方輸入「requirements.txt」後按「Add」鈕。

點選「Run Pip Install」鈕後選擇<requirements.txt>檔就會開始安裝模組。

安裝模組需要一段時間,等顯示安裝完成訊息後按「SAVE」鈕儲存,再按「RESTART」鈕重新啟動應用程式。

到LINE Bot Developer修改「Webhook URL」的值為App網址(此處為2girls.idv.tw/chatgptbot),此後就可隨時使用這個Chatgpt的 LINE Bot 了!



沒有留言:

張貼留言