# feed **Repository Path**: techwolf/feed ## Basic Information - **Project Name**: feed - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-25 - **Last Updated**: 2025-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 模型订阅与状态下发系统 基于feed/docs目录中的设计文档实现的模型订阅和状态管理系统。 ## 🚀 快速开始 ### 1. 启动服务 ```bash # 开发模式 (端口7880) python start.py dev # 生产模式 python start.py prod ``` ### 2. 初始化示例数据 ```bash # 添加YOLO11示例模型 python init_sample_data.py init ``` ### 3. 访问服务 - **API文档**: http://localhost:7880/docs (Swagger UI - 国内CDN加速) - **ReDoc文档**: http://localhost:7880/redoc (ReDoc - 国内CDN加速) - **模型列表**: http://localhost:7880/api/v1/models - **Web兼容接口**: http://localhost:7880/models ## 📋 功能特性 ### 核心功能 - ✅ **模型订阅管理**: 支持客户端订阅特定模型的更新通知 - ✅ **自动模型发现**: 定期扫描服务器,自动发现新模型和版本更新 - ✅ **实时状态下发**: 通过WebSocket和Webhook实时推送模型状态变化 - ✅ **多服务器支持**: 可管理多个模型服务器的订阅关系 - ✅ **YOLO11模型示例**: 预置YOLO11s/n/m三个示例模型 ### 技术特性 - 🔧 **FastAPI框架**: 现代异步Web框架,自动生成API文档 - 🔄 **WebSocket通信**: 实时双向通信,支持即时消息推送 - 📡 **事件驱动架构**: 基于事件的松耦合设计,易于扩展 - 💾 **JSON数据存储**: 轻量级文件存储,便于部署和维护 - ⚡ **异步处理**: 基于AsyncIO的高性能异步处理 - 🛡️ **完整中间件**: 错误处理、日志记录、CORS、速率限制等 ## 🏗️ 系统架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Web客户端 │ │ API客户端 │ │ 推理服务 │ │ │ │ │ │ │ └─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘ │ │ │ │ HTTP/WebSocket │ HTTP/WebSocket │ HTTP │ │ │ └──────────────────────┼──────────────────────┘ │ ┌─────────────┴─────────────┐ │ 模型订阅系统 (FastAPI) │ │ 端口: 7880 │ │ ┌─────────────────────┐ │ │ │ 订阅管理服务 │ │ │ └─────────────────────┘ │ │ ┌─────────────────────┐ │ │ │ 模型发现服务 │ │ │ └─────────────────────┘ │ │ ┌─────────────────────┐ │ │ │ 通知推送服务 │ │ │ └─────────────────────┘ │ │ ┌─────────────────────┐ │ │ │ 事件分发器 │ │ │ └─────────────────────┘ │ └───────────────────────────┘ │ ┌─────────────┴─────────────┐ │ JSON数据存储 │ │ │ │ models.json │ │ subscriptions.json │ │ servers.json │ │ clients.json │ └───────────────────────────┘ ``` ## 📖 使用示例 ### 基本API调用 ```bash # 获取模型列表 curl http://localhost:7880/api/v1/models # 创建订阅 curl -X POST http://localhost:7880/api/v1/subscriptions \ -H "Content-Type: application/json" \ -d '{ "client_id": "my-client", "client_name": "我的客户端", "model_name": "yolo11s", "server_id": "server-id", "callback_url": "http://my-server/webhook" }' # 获取订阅列表 curl http://localhost:7880/api/v1/subscriptions?client_id=my-client ``` ### 使用示例客户端 ```bash # 运行完整演示 (包含WebSocket监听) python example_client.py # 查看模型列表 python example_client.py --action list-models # 查看服务器列表 python example_client.py --action list-servers ``` - **适用对象**: 开发工程师、DevOps工程师 - **关键特性**: - FastAPI后端框架实现 - JSON文件存储方案 - 订阅管理服务架构 - 自动更新处理机制 - 模型发现引擎设计 - 多渠道通知系统 - Webhook与WebSocket集成 #### 5. [系统集成指南.md](./docs/系统集成指南.md) - **内容**: 系统集成的完整指南和最佳实践 - **包含**: 客户端集成、配置管理、监控日志、测试验证 - **适用对象**: 集成开发工程师、运维工程师 - **关键特性**: - 订阅客户端完整实现 - 与推理服务的无缝集成 - WebSocket实时状态同步 - 灵活的配置管理系统 - Prometheus监控指标 - 结构化日志记录 - 完整的测试框架 - 故障排除工具 ## 🚀 快速开始 ### 1. 了解系统架构 首先阅读 [模型订阅系统设计.md](./docs/模型订阅系统设计.md) 了解整体架构和设计理念。 ### 2. 掌握API接口 参考 [模型订阅API规范.md](./docs/模型订阅API规范.md) 了解完整的API接口定义。 ### 3. 实施开发 按照 [模型订阅实现指南.md](./docs/模型订阅实现指南.md) 进行系统开发和部署。 ### 4. 状态管理 参考 [模型状态下发设计.md](./docs/模型状态下发设计.md) 实现状态管理功能。 ### 5. 系统集成 使用 [系统集成指南.md](./docs/系统集成指南.md) 将订阅系统集成到现有推理服务中。 ## 🏗️ 系统架构概览 ``` ┌─────────────────────────────────────────────────────────────────────────────┐ │ 模型订阅与状态下发系统 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │ 状态管理中心 │ │ 下发服务器 │ │ 客户端节点 │ │ │ │ │ │ │ │ │ │ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │ │ │ │ │ 状态控制器 │ │◄──►│ │ 推送引擎 │ │◄──►│ │ 状态接收器 │ │ │ │ │ └─────────────┘ │ │ └─────────────┘ │ │ └─────────────┘ │ │ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │ │ │ │ │ 订阅管理器 │ │ │ │ 连接管理器 │ │ │ │ 模型管理器 │ │ │ │ │ └─────────────┘ │ │ └─────────────┘ │ │ └─────────────┘ │ │ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │ │ │ │ │ 模型发现器 │ │ │ │ 消息队列 │ │ │ │ 本地存储 │ │ │ │ │ └─────────────┘ │ │ └─────────────┘ │ │ └─────────────┘ │ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────┐ │ │ │ 通信层 │ │ │ │ WebSocket连接 │ HTTP API │ Webhook通知 │ 批量操作 │ 状态同步 │ │ │ └─────────────────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────────────┘ ``` ## 🔧 核心功能特性 ### 订阅管理 - ✅ 多服务器订阅支持 - ✅ 自动模型发现与注册 - ✅ 灵活的过滤规则配置 - ✅ 批量订阅操作 - ✅ 订阅配置持久化 - ✅ 轮询与事件驱动双重策略 ### 状态管理 - ✅ 完整的模型状态生命周期 - ✅ 状态转换规则验证 - ✅ 实时状态同步与下发 - ✅ 增量同步机制 - ✅ 状态冲突解决策略 - ✅ 客户端状态注册管理 ### 通知系统 - ✅ 多渠道通知支持 (Webhook, WebSocket, Email, UI) - ✅ 可靠的消息传递机制 - ✅ 消息确认与重试机制 - ✅ 批量通知优化 - ✅ 实时推送引擎 - ✅ 断线重连处理 ### API与集成 - ✅ 完整的RESTful API - ✅ 批量操作接口 - ✅ 版本管理与比较 - ✅ 模型搜索与过滤 - ✅ Python SDK支持 ### 安全与监控 - ✅ API速率限制 - ✅ 完整的审计日志 - ✅ 实时监控指标 ## 📊 技术栈 ### 后端技术 - **框架**: FastAPI (Python) - **数据存储**: JSON文件存储 - **消息队列**: Redis Pub/Sub / 内置队列 - **WebSocket**: FastAPI WebSocket支持 - **HTTP客户端**: aiohttp