使用LnagChain+FastAPI+Vue,搭建一個可以上傳並讀取PDF回答問題的LineBot。
3.4K
這是一個使用 LangChain、FastAPI 和 Vue 構建的 Line Bot,可以透過 Line Liff 網頁上傳 PDF 文件並回答相關問題。
目前支援以下幾種功能:
尚待完成:
使用 Docker 的人可直接跳至第 5 步
git clone https://github.com/your-repo/line-pdf-bot.git
cd ChatPDF-LineBot
pip install -r requirements.txt
可考慮在虛擬環境中執行,這裡提供 Python 內建的虛擬環境指令:
cd ChatPDF-LineBot
python -m venv .\venv
.\venv\Scripts\activate
pip install -r requirements.txt
cd ChatPDF-LineBot/View
npn install
cd View
npm install
npm run build
Provider 內(例如:「My Provider」)新增一個類型為「Line Login」的頻道(Channel),例如「My LIFF Page」。Endpoint URL 填入 https://<你的網域或IP地址>/liff(可先隨便填後續再來改)。Scopes 選項請勾選「chat_message.write」、「openid」。Add 創建。BASE_URL伺服器或 Docker 可直接設定環境變數
自己電腦上跑的話可複製 .env.example 文件,並改名為 .env,接著設定 API Key、模型等參數。
以下為 環境變數列表 * 代表必改項目
| 變數 | 說明 | 預設值 |
|---|---|---|
MODEL_NAME | 用於問答的模型名稱,多個模型以|分隔 | llama3-8b-8192|gpt-3.5-turbo|gpt-4-1106-preview |
BASE_URL | 對應模型的 API 基礎 URL,多個 URL 以|分隔 | https://api.groq.com/openai/v1|https://api.openai.com/v1|https://api.openai.com/v1 |
* API_KEY | 對應模型的 API 密鑰,多個密鑰以|分隔 | API_KEY_1|API_KEY_2|API_KEY_3 |
MAX_CHAT_HISTORY | 保留的最大聊天記錄數 | 5 |
EMBEDDING_MODEL | 用於文本嵌入的模型名稱(請填入HF模型路徑) | sentence-transformers/all-MiniLM-L6-v2 |
EMBEDDING_DEVICE | 運行文本嵌入模型的設備(cpu或cuda,可用cuda:0、cuda:1選擇顯卡) | cpu |
* LINE_CHANNEL_ACCESS_TOKEN | Line Bot 的access token | YOUR_LINE_CHANNEL_ACCESS_TOKEN |
* LINE_CHANNEL_SECRET | Line Bot 的secret | YOUR_LINE_CHANNEL_SECRET |
* LINE_LIFF_ID | Line LIFF 網頁 ID | YOUR_LINE_LIFF_ID |
* LINE_LOGIN_CHANNEL_ID | Line LIFF 所在的 LINE Login Channel ID | YOUR_LINE_LOGIN_CHANNEL_ID |
FILE_MAX_SIZE | 允許上傳的最大文件大小 | 5MB |
SPACE_PER_USER | 每個用戶可用的最大空間大小 | 200MB |
ALLOW_FILE_TYPE | 允許上傳的文件類型,多個類型以,分隔 | pdf,csv,txt |
docker run -d \
--name chatpdf-linebot \
-p 8000:8000 \
-v /local/file/store/path:/app/db
-e LINE_CHANNEL_ACCESS_TOKEN=YOUR_LINE_CHANNEL_ACCESS_TOKEN \
-e LINE_CHANNEL_SECRET=YOUR_LINE_CHANNEL_SECRET \
-e LINE_LIFF_ID=YOUR_LINE_LIFF_ID \
-e LINE_LOGIN_CHANNEL_ID=YOUR_LINE_LOGIN_CHANNEL_ID \
-e MODEL_NAME=YOUR_MODELS \
-e BASE_URL=BASE_URLS \
-e API_KEY=API_KEYS \
adt109119/chatpdf-linebot
若 1. ~ 4. 步的安裝接無問題,僅需直接執行一以下指令便可開啟伺服器
預設使用 PORT 8000
python .\main.py
https://line.the-walking.fish.com/callback,點選「Update」按鈕。Endpoint URL 隨便填的,現在請正式填入 LIFF 網頁網址,路徑為「/liff」,例如 https://line.the-walking.fish.com/liff。如果您有任何改進建議或錯誤修復,歡迎提交 Pull Request。
你可以透過以下方式與我聯絡
This project is under the Apache 2.0 License. See LICENSE for further details.
Content type
Image
Digest
sha256:a328939bd…
Size
2.9 GB
Last updated
about 2 months ago
docker pull adt109119/chatpdf-linebot