Initial commit: Daily News App

企業內部新聞彙整與分析系統
- 自動新聞抓取 (Digitimes, 經濟日報, 工商時報)
- AI 智慧摘要 (OpenAI/Claude/Ollama)
- 群組管理與訂閱通知
- 已清理 Python 快取檔案

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
donald
2025-12-03 23:53:24 +08:00
commit db0f0bbfe7
50 changed files with 11883 additions and 0 deletions

186
README.md Normal file
View File

@@ -0,0 +1,186 @@
# 每日報導 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 部門