企業內部新聞彙整與分析系統 - 自動新聞抓取 (Digitimes, 經濟日報, 工商時報) - AI 智慧摘要 (OpenAI/Claude/Ollama) - 群組管理與訂閱通知 - 已清理 Python 快取檔案 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
3.6 KiB
3.6 KiB
每日報導 APP
企業內部新聞彙整與分析系統
功能特色
- 🔍 自動新聞抓取:支援 Digitimes、經濟日報、工商時報
- 🤖 AI 智慧摘要:支援 OpenAI / Claude / Ollama
- 📊 群組管理:依產業別、議題分類關鍵字
- 📧 Email 通知:報告發布自動通知訂閱者
- 📱 響應式設計:支援手機閱讀
- 🔐 AD/LDAP 整合:企業帳號統一認證
技術架構
| 層級 | 技術 |
|---|---|
| 後端 | FastAPI + Python 3.11 |
| 資料庫 | MySQL 8.0 |
| 認證 | JWT + AD/LDAP |
| LLM | OpenAI / Claude / Ollama |
| 部署 | Docker + 1Panel |
快速開始
1. 環境準備
# 複製環境設定
cp .env.example .env
# 編輯設定
vim .env
2. 啟動服務
# 使用 Docker Compose
docker-compose up -d
# 查看日誌
docker-compose logs -f app
3. 初始化資料
# 進入容器
docker exec -it daily-news-app bash
# 執行初始化
python scripts/init_data.py
4. 存取系統
目錄結構
daily-news-app/
├── app/
│ ├── api/v1/endpoints/ # API 端點
│ ├── core/ # 核心設定
│ ├── db/ # 資料庫連線
│ ├── models/ # 資料模型
│ ├── schemas/ # Pydantic Schema
│ ├── services/ # 商業邏輯服務
│ └── main.py # 應用程式入口
├── scripts/ # 初始化腳本
├── templates/ # Email 模板
├── tests/ # 測試檔案
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
└── README.md
API 端點
| 分類 | 端點 | 說明 |
|---|---|---|
| Auth | POST /api/v1/auth/login | 登入 |
| Auth | GET /api/v1/auth/me | 當前用戶 |
| Users | GET /api/v1/users | 用戶列表 |
| Groups | GET /api/v1/groups | 群組列表 |
| Reports | GET /api/v1/reports | 報告列表 |
| Reports | POST /api/v1/reports/{id}/publish | 發布報告 |
| Subscriptions | GET /api/v1/subscriptions | 我的訂閱 |
完整 API 文件請參閱 /docs
環境變數
| 變數 | 說明 | 預設值 |
|---|---|---|
| DB_HOST | 資料庫主機 | localhost |
| DB_PASSWORD | 資料庫密碼 | - |
| JWT_SECRET_KEY | JWT 密鑰 | - |
| LLM_PROVIDER | LLM 提供者 | claude |
| ANTHROPIC_API_KEY | Claude API Key | - |
| SMTP_HOST | SMTP 伺服器 | - |
開發指南
本地開發
# 建立虛擬環境
python -m venv venv
source venv/bin/activate
# 安裝依賴
pip install -r requirements.txt
# 啟動開發伺服器
uvicorn app.main:app --reload
程式碼風格
# 格式化
black app/
isort app/
# 類型檢查
mypy app/
執行測試
pytest tests/ -v
部署
1Panel 部署
- 在 1Panel 中新增「網站」
- 選擇 Docker Compose 部署
- 上傳專案檔案
- 設定環境變數
- 啟動服務
使用 Ollama(地端 LLM)
# 啟動包含 Ollama 的服務
docker-compose --profile ollama up -d
# 下載模型
docker exec -it daily-news-ollama ollama pull llama3
維運
日誌查看
docker-compose logs -f app
資料備份
docker exec daily-news-mysql mysqldump -u root -p daily_news_app > backup.sql
資料庫遷移
docker exec -it daily-news-app alembic upgrade head
License
Proprietary - Internal Use Only
聯絡資訊
如有問題請聯繫 IT 部門