# Think_Agent **Repository Path**: demo_53_0/think_-agent ## Basic Information - **Project Name**: Think_Agent - **Description**: 通过阿里云open_search实现网页爬取 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-27 - **Last Updated**: 2026-01-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Think Agent 这是一个基于FastAPI的智能代理系统,支持网络搜索、网页爬取、内容处理、LLM摘要和媒体文件处理功能。 ## 功能特性 - **基于 FastAPI 框架**,异步高性能 - **自动生成 API 文档** - **配置管理**(通过 .env 文件) - **分层架构**:API路由、业务逻辑(Services)、数据模型(Schemas)分离,易于维护和扩展 - **强大的新闻搜索系统**: - 支持实时流式输出(Server-Sent Events) - 前端实时展示爬取数量统计 - 支持灵活的时间筛选(最近24小时、一周、一月、一年) - **三级日期提取策略**: 1. 正则表达式/Meta标签提取 2. URL日期解析 3. 详情页异步爬取(针对不规范或隐藏日期的页面) - 智能反爬虫检测(如今日头条 JS Challenge) - **集成多种搜索服务**(阿里云、Tavily、Firecrawl) - **内容处理和清理功能** - **LLM摘要和相似度计算** - **媒体文件提取、下载和数据库存储** ## 项目结构 ``` Think_Agent/ ├── main.py # 主应用文件(包含应用入口和根路由) ├── api/ # API路由定义模块(负责请求/响应处理) │ ├── __init__.py │ ├── search_api.py # 搜索API路由 │ ├── general_news_search_api.py # 新闻搜索API路由 │ ├── scrape_api.py # 网页爬取API路由 │ ├── llm_api.py # LLM处理API路由 │ └── media_api.py # 媒体处理API路由 ├── services/ # 业务逻辑层(核心功能实现) │ ├── __init__.py │ ├── search_service.py │ ├── news_service.py │ ├── scrape_service.py │ └── media_service.py ├── schemas/ # 数据模型层(Pydantic模型) │ ├── __init__.py │ ├── search_schemas.py │ ├── news_schemas.py │ ├── scrape_schemas.py │ └── media_schemas.py ├── config.py # 配置管理 ├── utils/ # 工具函数模块 │ ├── __init__.py │ ├── content_processor.py # 内容处理工具 │ ├── common_utils.py # 通用工具函数 │ ├── llm_utils.py # LLM处理工具 │ └── media_processor.py # 媒体处理工具 ├── database.py # 数据库模型和连接 ├── requirements.txt # 依赖包列表 ├── .env # 环境变量配置(从 .env.example 复制并修改) ├── .env.example # 环境变量示例 └── venv/ # Python 虚拟环境 ``` ## 快速开始 1. 确保已安装 Python 3.9+ 2. 激活虚拟环境: ```bash source venv/bin/activate ``` 3. 安装依赖: ```bash pip install -r requirements.txt ``` 4. 配置环境变量: ```bash cp .env.example .env # 编辑 .env 文件以配置您的设置 ``` 5. 运行应用: 方式一(直接运行): ```bash python main.py ``` 方式二(使用 uvicorn): ```bash uvicorn main:app --reload --host 0.0.0.0 --port 8000 ``` 6. 访问应用: - **新闻搜索主页**: http://localhost:8000 (包含实时计数、时间筛选功能) - API 文档: http://localhost:8000/docs - Redoc 文档: http://localhost:8000/redoc ## API 端点 ### 通用端点 - `GET /` - 应用主页 - `GET /health` - 健康检查 ### 搜索API端点 - `POST /search/` - 执行搜索请求(需要阿里云SDK) ### 新闻搜索API端点 - `POST /news_search/search` - 通用新闻搜索 - `GET /news_search/stream` - 流式新闻搜索(支持实时推送结果) ### 爬取API端点 - `POST /scrape/simple` - 简单网页内容爬取 - `POST /scrape/tavily` - 使用Tavily API爬取 (待迁移) - `POST /scrape/firecrawl` - 使用Firecrawl API爬取 (待迁移) ### LLM处理API端点 - `POST /llm/summarize` - 生成内容摘要 - `POST /llm/batch_summarize` - 批量生成摘要 ### 媒体处理API端点 - `POST /media/extract_and_store` - 从内容中提取并存储媒体 **注意**:搜索功能依赖阿里云 SDK,如果 SDK 不可用,搜索端点将返回相应提示。 ## 依赖包 - fastapi - Web 框架 - uvicorn - ASGI 服务器 - pydantic - 数据验证 - pydantic-settings - 配置管理 - python-dotenv - 环境变量管理 - requests - HTTP请求库 - beautifulsoup4 - HTML解析库 - tavily-python - Tavily搜索API库 - firecrawl-py - Firecrawl爬取API库 - openai - OpenAI API库 - sqlalchemy - 数据库ORM - 阿里云相关SDK(可选)