上篇使用Laravel+Render+Line Bot,確認可以從使用者端取得輸入並回傳
由於這裡不使用DB(用DB就有更多應用),所以為了讓Bot更加豐富
這裡注入靈魂(現在很紅的Open AI API)吧
需要注意的是,這裡Open AI API,並不是每個月給免費使用次數
而是註冊後給一個免費金額額度,期限到或使用完就沒了
進入OpenAI官網註冊後
到這裡產生並複製Key
composer require openai-php/client
OPEN_AI_KEY=你的KEY
<?php
return [
'open_ai_key' => env('OPEN_AI_KEY', null)
];
<?php
namespace App\Services;
use OpenAI;
class OpenAIService
{
public function getText($text){
try {
$openAIKey = config('openai.open_ai_key');
$client = OpenAI::client($openAIKey);
$response = $client->chat()->create([
'model' => 'gpt-3.5-turbo-0301',
'messages' => [
['role' => 'user', 'content' => $text],
],
]);
$result = $response->toArray();
return $result['choices'][0]['message']['content'];
} catch (\Throwable $th) {
return 'Open AI 回應錯誤(可能錯誤:KEY已過期或失效),您的輸入:' . $text;
}
}
}
上次的Service改寫一下:
// $replyText = $message->getText();
$openAIService = new OpenAIService();
$replyText = $openAIService->getText($message->getText());
之前免費Key已經到期了,所以用之前成功畫面
之前提到Render一陣子不活躍就會休眠,再次啟動要一段時間
如果在Line Bot上就是會很久甚至不回覆了
這時候可以用Cron-job這個網站
用法也簡單暴力,就是每隔一段時間去訪問你貼的網址,讓網站保持活躍
大概每五分鐘呼叫一次差不多
缺點是Render也有使用時間,如果一兩個專案還行,更多就會超過了
另外就是失敗會寄信通知你,似乎沒辦法關閉通知
如果成功恭喜你!可以分享你的結果(Line Bot)和這篇文章給你認識的所有朋友
這也是實戰篇最後一篇,希望你能從這三十天的鐵人文章中認識Laravel
明天是總結篇,也是這系列最後一篇,大部分是老人結尾聊天,無聊的話可以看看>.0