# news_find **Repository Path**: bad-lemon/news_find ## Basic Information - **Project Name**: news_find - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-16 - **Last Updated**: 2026-03-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 热点新闻聚合工具 (Hot News Aggregator) 一个智能化的热点新闻聚合平台,从多个主流平台采集热点新闻,并利用AI技术进行内容处理和智能分析。 ## ✨ 功能特性 ### 📰 新闻采集 - **多源采集**: 支持微博、知乎、今日头条、百度、36氪等主流平台 - **智能采集**: 基于异步IO的高效爬虫架构 - **定时任务**: 支持定时自动采集,保持数据实时更新 ### 🤖 AI 智能处理 - **自动摘要**: 利用AI技术自动生成新闻摘要 - **关键词提取**: 智能提取新闻核心关键词 - **自动分类**: 基于内容自动进行新闻分类 ### 📊 新闻服务 - **新闻列表**: 分页查看最新新闻 - **热点排行**: 查看当前热点新闻排名 - **全文搜索**: 支持关键词搜索新闻内容 - **分类浏览**: 按分类查看新闻 ## 🛠 技术栈 ### 后端 - **框架**: FastAPI + Python 3.8+ - **数据库**: SQLAlchemy (异步支持) - **爬虫**: aiohttp 异步HTTP客户端 - **AI服务**: 集成主流AI服务接口 - **认证**: JWT认证机制 ### 前端 - **框架**: Vue.js 3 - **构建工具**: Vite - **状态管理**: Pinia - **路由**: Vue Router ## 📁 项目结构 ``` news_find/ ├── backend/ # 后端服务 │ ├── app/ │ │ ├── api/ # API路由 │ │ │ ├── categories.py # 分类接口 │ │ │ └── news.py # 新闻接口 │ │ ├── core/ # 核心配置 │ │ │ └── database.py # 数据库配置 │ │ ├── crawlers/ # 爬虫模块 │ │ │ └── news_crawler.py │ │ ├── models/ # 数据模型 │ │ │ └── news.py │ │ ├── schemas/ # Pydantic模型 │ │ │ └── news.py │ │ ├── services/ # 业务逻辑 │ │ │ ├── ai_service.py │ │ │ └── news_service.py │ │ └── main.py # 应用入口 │ └── requirements.txt ├── frontend/ # 前端应用 │ ├── src/ │ │ ├── api/ # API调用 │ │ ├── views/ # 页面组件 │ │ ├── router/ # 路由配置 │ │ └── main.ts │ └── package.json ├── design.md # 架构设计文档 ├── feature_list.md # 功能清单 ├── requirements.md # 需求文档 ├── workflow.md # 项目流程文档 └── init.sh # 初始化脚本 ``` ## 🚀 快速开始 ### 环境要求 - Python 3.8+ - Node.js 16+ - PostgreSQL 13+ 或 MySQL 8+ ### 后端部署 1. **创建虚拟环境** ```bash cd backend python -m venv venv source venv/bin/activate # Linux/Mac # 或 .\venv\Scripts\activate # Windows ``` 2. **安装依赖** ```bash pip install -r requirements.txt ``` 3. **配置环境变量** ```bash cp .env.example .env # 编辑 .env 文件,配置数据库和AI服务信息 ``` 4. **初始化数据库** ```bash python -m app.core.database init ``` 5. **启动服务** ```bash uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` ### 前端部署 1. **安装依赖** ```bash cd frontend npm install ``` 2. **启动开发服务器** ```bash npm run dev ``` 3. **构建生产版本** ```bash npm run build ``` ## 📡 API 文档 ### 新闻接口 | 方法 | 路径 | 描述 | |------|------|------| | GET | `/api/news` | 获取新闻列表 | | GET | `/api/news/{news_id}` | 获取新闻详情 | | GET | `/api/news/hot` | 获取热点排行 | | GET | `/api/news/search/` | 搜索新闻 | | POST | `/api/news/crawl` | 触发爬虫采集 | ### 分类接口 | 方法 | 路径 | 描述 | |------|------|------| | GET | `/api/categories` | 获取分类列表 | | GET | `/api/categories/{category_id}` | 获取分类详情 | ### 请求参数 **新闻列表** - `page`: 页码,默认1 - `page_size`: 每页数量,默认20 - `category`: 分类筛选(可选) **热点排行** - `limit`: 返回数量,默认50 **搜索** - `q`: 搜索关键词,必填 - `page`: 页码,默认1 - `page_size`: 每页数量,默认20 ## 🔧 配置说明 ### 环境变量 ```env # 数据库配置 DATABASE_URL=postgresql+asyncpg://user:password@localhost/news_db # Redis配置(可选) REDIS_URL=redis://localhost:6379/0 # AI服务配置 AI_API_KEY=your_api_key AI_ENDPOINT=https://api.example.com # 爬虫配置 CRAWLER_DELAY=1 MAX_CONCURRENT=5 # 安全配置 SECRET_KEY=your_secret_key JWT_EXPIRE_HOURS=24 ``` ## 📖 文档说明 - **design.md**: 系统架构设计文档,包含技术选型、模块设计、数据库设计等 - **feature_list.md**: 功能清单,详细描述各模块功能 - **requirements.md**: 需求文档,包含用户需求、功能需求、非功能需求 - **workflow.md**: 项目流程文档,包含开发流程、运维流程、测试流程 ## 🤝 贡献指南 1. Fork 本仓库 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建一个 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 详情请查看 [LICENSE](LICENSE) 文件 ## 📞 联系方式 - 项目地址: https://gitee.com/bad-lemon/news_find - 问题反馈: https://gitee.com/bad-lemon/news_find/issues --- **Built with ❤️ by Bad Lemon Team**