https://github.com/louis70109/linebot-gemini-summarize
Summary LINE Group with LINE Bot and Gemini
https://github.com/louis70109/linebot-gemini-summarize
Last synced: 6 months ago
JSON representation
Summary LINE Group with LINE Bot and Gemini
- Host: GitHub
- URL: https://github.com/louis70109/linebot-gemini-summarize
- Owner: louis70109
- License: mit
- Created: 2024-04-07T04:56:14.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-03T07:27:45.000Z (about 1 year ago)
- Last Synced: 2024-10-16T09:59:38.680Z (8 months ago)
- Language: Python
- Size: 16.6 KB
- Stars: 0
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: change_bot_url.sh
- License: LICENSE
Awesome Lists containing this project
README
# 群組摘要王 v2
群組摘要王 v2 是一款使用 FastAPI、LINE Messaging API 和 Google Generative AI,來為 LINE 群組的訊息進行摘要的開源專案。
> 點子來自:「[如何開發一個「LINE Bot 群組聊天摘要生成器](https://engineering.linecorp.com/zh-hant/blog/linebot-chatgpt)」
## 功能
- 接收 LINE 群組中的訊息
- 透過命令清空對話歷史紀錄
- 透過命令產生訊息的摘要## 流程圖
```
┌─┐
║"│
└┬┘
┌┼┐
│ ┌─────┐ ┌──────────────┐ ┌────────┐ ┌──────┐
┌┴┐ │Group│ │Webhook_Server│ │Firebase│ │Gemini│
User └─────┘ └──────┬───────┘ └────────┘ └──────┘
│ 傳送文章訊息 │ │ │ │
│ ──────────────>│ │ │ │
│ │ 傳送用戶指令 │ │ │
│ │───────────────────>│ │ │
│ │ │ 儲存聊天狀態在 Realtime DB│ │
│ │ │ ────────────────────────> | │
│ │ │ 儲存完畢 │ │
│ │ │ <──────────────────────── | │
│ │ 回傳已完成文字 │ │ │
│ │<───────────────────│ │ │
│ 輸入 "!摘要" │ │ │ │
│ ──────────────>│ │ │ │
│ │ 傳送用戶指令 │ │ │
│ │───────────────────>│ │ │
│ │ │ 抓取聊天記錄 │ │
│ │ │ ────────────────────────> | │
│ │ │ 回傳清單 │ │
│ │ │ <─────────────────────────| │
│ │ │ 下prompt 進行摘要運算 │
│ │ │ ────────────────────────────────────────────>|
│ │ │ 回傳摘要清單 │
│ │ │ <────────────────────────────────────────────|
│ │ 回傳摘要資訊至群組 │ │ │
│ │<───────────────────│ │ │
User ┌─────┐ ┌──────┴───────┐ ┌────────┐ ┌──────┐
┌─┐ │Group│ │Webhook_Server│ │Firebase│ │Gemini│
║"│ └─────┘ └──────────────┘ └────────┘ └──────┘
└┬┘
┌┼┐
│
┌┴┐
```## 開始使用
### 環境變數
在開始之前,您需要設定以下環境變數:
- `LINE_CHANNEL_SECRET`: 您的 LINE Bot Channel 密鑰
- `LINE_CHANNEL_ACCESS_TOKEN`: 您的 LINE Bot Channel 令牌
- `FIREBASE_URL`: 您的 Firebase 資料庫 URL
- Example: https://OOOXXX.firebaseio.com/
- `GEMINI_API_KEY`: 您的 Gemini API 金鑰如果您不在生產環境,請使用 `.env` 檔案來設定這些變數。
## 使用方式
[](https://deploy.cloud.run)
```
git clone https://github.com/louis70109/linebot-gemini-summarize.gitcd linebot-gemini-summarize/
gcloud run deploy my-linebot-summarize --source .
```## Q&A
> 遇到 AttributeError: type object 'MethodOptions' has no attribute 'RegisterExtension'
在此專案中有可能是套件相依過程有本版比較舊,因此建議使用 venv 之類的虛擬環境,重新安裝套件
```
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txt
```> 部屬上 GCP 遇到 container 權限問題?
```
gcloud auth configure-docker # Y
```## 授權
MIT