Heroku免費帳號到2022年12月31日全面失效,因此使用Render伺服器來代替Heroku。
Render簡介
Render支援非常多種語言的建構服務,幾乎涵蓋平常會用到的需求了,如Python Web Service、PostgreSQL、Redis等。
Render免費計畫提供的免費運行時間是每個月450個小時,而450小時運行時間在只有一個服務,且24小時不間斷使用下可以用18天左右,對一般用戶足夠了!
至於在Heroku上的自動休眠機制Render也有,如果有連續15分鐘未使用會進入休眠,休眠後的甦醒時間約是30秒。
建立Github專案
由於Render專案需置於Github中,Render也可以Github帳號登入,因此使用者必須擁有Github帳號。若是沒有Github帳號,開啟「https://github.com/」網頁,按「Sign up」鈕申請一個Github新帳號。
在Github建立名稱為chatgptrender的Repository,其中有兩個檔案,< app.py>內容為:(Github的操作請自行參考相關資料)
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
import os
openai.api_key = os.getenv('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
Gunicorn
line-bot-sdk
openai
部署Render專案
開啟「https://render.com/」網頁,如果沒有帳號就申請一個Render新帳號,然後登入進入它的 Dashboard。
點選「New Web Service」,於Connect a repository頁面點選chatgptrender右方的「Connect」鈕連結Github專案。
Namw欄位輸入名稱chatgptrender,Region選擇主機地區(此處選新加坡)。
若是將Openai API Key置於Github的檔案中會有洩露疑慮,Openai會自動將該API Key移除,因此上面<app.py>使用讀取環境變數方式取得API Key:
openai.api_key = os.getenv('OPENAI_API_KEY')
此處需建立環境變數來儲存API Key:捲到頁面下方,點選「Add Enviroment Variable」鈕。
左方輸入環境變數名稱「OPENAI_API_KEY」,右方輸入API Key,最後點選「Create Web Service」鈕建立服務。
部署需一段時間,當顯示「Your service is live.」表示部署完成。頁面左上角的網址就是應用程式網址。
到LINE Bot Developer修改「Webhook URL」的值為App網址(此處為https://chatgptrender.onrender.com),此後就可隨時使用這個Chatgpt的 LINE Bot 了!
沒有留言:
張貼留言