一、事前準備工作
ChatGPT帳號申請
LineBot帳號申請
Google Cloud Function設定
LineBot帳號申請
程式碼佈署
二、ChatGPT帳號申請
按TRY CHATGPT按鈕申請一個新的帳號
也可以直接在線上試著問它問題
三、LineBot帳號申請參考以下連結申請Line Channel帳號
主要是獲得二個重要的Key- Channel secret
- Channel access token
四、Google Cloud Function設定
- Channel secret
- Channel access token
1.建立函式
2.函式名稱可自行定義
3.地區可搜尋"taiwan"(asia-east1)
4.驗證點選"允許未經驗證的叫用"(現在好像儲存後都會跳掉?)
5.儲存
6.下一步
五、程式碼
2.requirements.txt輸入
Flask==2.1.0
openai
requests
line-bot-sdk
3.main.py是主程式
4.進入點改為callback
5.程式碼
import openai
from flask import Flask, request, abort
from linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage,
)
app = Flask(__name__)
line_bot_api = LineBotApi('你的 Channel access token')
handler = WebhookHandler('你的 Channel secret')
@app.route("/callback", methods=['POST'])
def callback(request):
# get X-Line-Signature header value
signature = request.headers['X-Line-Signature']
# get request body as text
body = request.get_data(as_text=True)
app.logger.info("Request body: " + body)
# handle webhook body
try:
handler.handle(body, signature)
except InvalidSignatureError:
print("Invalid signature. Please check your channel access token/channel secret.")
abort(400)
return 'OK'
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
msg = event.message.text
reply_msg= ""
openai.api_key = '你的openai key'
response = openai.Completion.create(
engine='text-davinci-003',
prompt=msg,
max_tokens=256,
temperature=0.5,
)
reply_msg = response["choices"][0]["text"]
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(reply_msg))
if __name__ == "__main__":
app.run()
六、部署
按下部署後(會需要一點點時間),到觸發條件,將觸發網址複製下來
沒有留言:
張貼留言