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:
186
README.md
Normal file
186
README.md
Normal 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 部門
|
||||
Reference in New Issue
Block a user