Files
daily-news-app/README.md
donald db0f0bbfe7 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>
2025-12-03 23:53:24 +08:00

187 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 每日報導 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 部門