FastAPI x Linebot *2 GPT 翻譯小幫手
最近換了新工作,因為是外商關係,所以工作上會大量接觸英文,無奈英文程度沒有很好,一句話裡幾個字看不懂還能猜,80%以上看不懂就只能整句跳過😅 這時候,除了暫停影片、開另一個分頁、再 google 單字之外,現在有很多 AI 工具可以協助翻譯,真的是相當方便,但像我使用 ChatGPT 就是一大堆的對話串,有時候被其他訊息洗到下面還要特別找翻譯的對話串在哪,這時候,一隻專門用來翻譯的 Linebot 就很方便了!
之所以會一個 FastAPI Server 接兩隻 Linebot 是因為沒這樣接過、想試試,畢竟都是翻譯用的(?)且自己使用流量都不大,而使用 FastAPI 接 Linebot 則是因為前陣子 Line 官方推出的 show_loading_animation api 需要 async,又不想使用 aiohttp web server 的話就選了 FastAPI。
接下來介紹這個 FastAPI x Linebot * 2 細節
先上 Github repo
- 以下是資料夾結構,內容相當單純,因為沒有連接 db 只有單純的 API 串接而已。static 內的圖檔只是用作 README.md 的附件可以不用看。
- `main.py` FastAPI 主程式,`app` 在這裡建立
- `handler.py` Linebot Messaging API events 主要在這裡處理
- `connections.py` 連接 OpenAI API 用的
- `settings.py` 環境參數、常數都設定在這裡
repo clone 下來後建立 venv、安裝套件 `pip3 install -r requirements.txt`,在 `. /ai_translation_linebot_fastapi_public` 直接執行. `uvicorn app.main:app — reload` 就可以啟動 FastAPI Server 了,但環境參數的地方要先設定。
設定的方式如下:
- Linebot * 2:到 Line Developer Console 建立兩隻 Messaging API ,現在好像改成要到 Line Official Account 建立了,商家內容隨便選沒關係。
- OpenAI API Key:到 ChatGPT API 建立帳號並取得 API Key、儲值後就能使用,如果想串別的 AI API 可以改 client 的 OpenAI base_url 參數。
成果圖預覽:
想要試用看看的朋友可以在 Github repo 找到機器人連結加入好友,但 Demo 版有增加使用額度上限,有大量使用需求的朋友們還是可以自己試著架架看,或是直接使用 AI 平台 app 喔!