這是一個 LINE Bot webhook 服務器,具備以下功能:
- 分階段收集用戶資料(身份、對象、情境、過去對話)
- 整合 LangChain 和 OpenAI API 生成建議對話
- 支援
/more指令生成更多內容 - 支援
/new指令開始新對話 - 提供對話生成和潤飾兩種模式
pip install -r requirements.txt複製 .env.example 為 .env 並填入你的憑證:
cp .env.example .env編輯 .env 檔案:
LINE_CHANNEL_ACCESS_TOKEN=你的LINE_CHANNEL_ACCESS_TOKEN
LINE_CHANNEL_SECRET=你的LINE_CHANNEL_SECRET
OPENAI_API_KEY=你的OpenAI_API_KEY
REDIS_URL=redis://localhost:6379/0
確保 Redis 服務正在運行(用於會話管理):
# macOS
brew services start redis
# Ubuntu
sudo systemctl start redis
# Docker
docker run -d -p 6379:6379 redispython run.py- 在 LINE Developers Console 創建 Bot
- 取得 Channel Access Token 和 Channel Secret
- 設置 Webhook URL:
https://你的域名:8080/callback - 啟用 Webhook 和 Use webhook
- 用戶輸入
/new開始新對話 - 系統會分階段詢問:
- 你是誰?
- 對話對象是誰?
- 說話情境是什麼?
- 過去對話紀錄
- 選擇模式:
- 輸入「生成」直接生成對話
- 輸入「潤飾」提供草稿進行優化
- 使用
/more生成更多相似內容
gunicorn --bind 0.0.0.0:5000 app:app創建 Dockerfile:
FROM python:3.9
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]- Redis 連接失敗:確保 Redis 服務運行且 REDIS_URL 正確
- OpenAI API 錯誤:檢查 API 密鑰和餘額
- LINE Webhook 驗證失敗:確認 Channel Secret 正確
- 會話狀態丟失:檢查 Redis 是否正常工作
chatbot/
├── app.py # 主應用程式
├── chat_processor.py # LangChain 和 OpenAI 整合
├── session_manager.py # 會話管理
├── requirements.txt # Python 依賴
├── .env.example # 環境變數範本
└── run.py # 啟動腳本