7719919dc73fba7fa8c9b4140e6a26c17dbc8e55
新增第 4.1.5 節:進階爬蟲模組設計 主要內容: - Scrapy 框架整合規格(擴充新聞來源用) - 通用爬蟲架構設計原則 - 多層級選擇器備用機制 - Pipeline 資料處理管線(CSV + Database) - 資料庫表結構(articles, tags, article_tags) - 錯誤處理與效能最佳化 - 執行測試與除錯技巧 - 新增新聞來源的標準步驟 技術規格: - Scrapy >= 2.11.0 - PyMySQL >= 1.1.0 - python-dateutil >= 2.8.2 - 支援多來源整合(source 欄位) - Context Manager 確保交易完整性 - 標籤快取機制提升效能 這個設計可作為擴充其他新聞來源的通用範本。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
每日報導 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. 環境準備
# 複製環境設定
cp .env.example .env
# 編輯設定
vim .env
2. 啟動服務
# 使用 Docker Compose
docker-compose up -d
# 查看日誌
docker-compose logs -f app
3. 初始化資料
# 進入容器
docker exec -it daily-news-app bash
# 執行初始化
python scripts/init_data.py
4. 存取系統
目錄結構
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 伺服器 | - |
開發指南
本地開發
# 建立虛擬環境
python -m venv venv
source venv/bin/activate
# 安裝依賴
pip install -r requirements.txt
# 啟動開發伺服器
uvicorn app.main:app --reload
程式碼風格
# 格式化
black app/
isort app/
# 類型檢查
mypy app/
執行測試
pytest tests/ -v
部署
1Panel 部署
- 在 1Panel 中新增「網站」
- 選擇 Docker Compose 部署
- 上傳專案檔案
- 設定環境變數
- 啟動服務
使用 Ollama(地端 LLM)
# 啟動包含 Ollama 的服務
docker-compose --profile ollama up -d
# 下載模型
docker exec -it daily-news-ollama ollama pull llama3
維運
日誌查看
docker-compose logs -f app
資料備份
docker exec daily-news-mysql mysqldump -u root -p daily_news_app > backup.sql
資料庫遷移
docker exec -it daily-news-app alembic upgrade head
License
Proprietary - Internal Use Only
聯絡資訊
如有問題請聯繫 IT 部門
Description
Languages
Python
52.7%
HTML
29.6%
JavaScript
17.4%
Dockerfile
0.3%