# 每日報導 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. 環境準備 ```bash # 複製環境設定 cp .env.example .env # 編輯設定 vim .env ``` ### 2. 啟動服務 ```bash # 使用 Docker Compose docker-compose up -d # 查看日誌 docker-compose logs -f app ``` ### 3. 初始化資料 ```bash # 進入容器 docker exec -it daily-news-app bash # 執行初始化 python scripts/init_data.py ``` ### 4. 存取系統 - API 文件:http://localhost:8000/docs - 健康檢查:http://localhost:8000/health ## 目錄結構 ``` 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 伺服器 | - | ## 開發指南 ### 本地開發 ```bash # 建立虛擬環境 python -m venv venv source venv/bin/activate # 安裝依賴 pip install -r requirements.txt # 啟動開發伺服器 uvicorn app.main:app --reload ``` ### 程式碼風格 ```bash # 格式化 black app/ isort app/ # 類型檢查 mypy app/ ``` ### 執行測試 ```bash pytest tests/ -v ``` ## 部署 ### 1Panel 部署 1. 在 1Panel 中新增「網站」 2. 選擇 Docker Compose 部署 3. 上傳專案檔案 4. 設定環境變數 5. 啟動服務 ### 使用 Ollama(地端 LLM) ```bash # 啟動包含 Ollama 的服務 docker-compose --profile ollama up -d # 下載模型 docker exec -it daily-news-ollama ollama pull llama3 ``` ## 維運 ### 日誌查看 ```bash docker-compose logs -f app ``` ### 資料備份 ```bash docker exec daily-news-mysql mysqldump -u root -p daily_news_app > backup.sql ``` ### 資料庫遷移 ```bash docker exec -it daily-news-app alembic upgrade head ``` ## License Proprietary - Internal Use Only ## 聯絡資訊 如有問題請聯繫 IT 部門