企業內部新聞彙整與分析系統 - 自動新聞抓取 (Digitimes, 經濟日報, 工商時報) - AI 智慧摘要 (OpenAI/Claude/Ollama) - 群組管理與訂閱通知 - 已清理 Python 快取檔案 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
187 lines
3.6 KiB
Markdown
187 lines
3.6 KiB
Markdown
# 每日報導 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 部門
|