Files
2025-01-22 08:00:24 +00:00
..
2025-01-22 07:46:05 +00:00
2025-01-22 08:00:24 +00:00
2025-01-22 08:00:24 +00:00
2025-01-22 07:34:41 +00:00
2025-01-22 07:34:41 +00:00
2025-01-22 08:00:24 +00:00

Lab数据分析系统

项目概述

这是一个基于FastAPI开发的实验室数据分析平台,提供实验数据采集、分析、项目管理和文献管理等功能。 系统使用MongoDB作为主数据库,Redis作为缓存和消息队列,并集成了DeepSeek API进行智能分析。

主要功能

1. 用户管理

  • 用户注册和登录
  • JWT token认证
  • 用户权限管理

2. 项目管理

  • 创建和管理研究项目
  • 项目数据分析和报告生成
  • 项目级别的问答系统
  • 项目备忘录功能

3. 实验管理

  • 实验创建和配置
  • 实验设备关联
  • 实验数据实时采集
  • 实验数据分析和可视化
  • 实验报告自动生成
  • 实验问答功能
  • 传感器数据采集
  • 实时数据传输(WebSocket)

4. 设备管理

  • 设备注册和激活

5. 文献管理

  • 文献上传和管理
  • 文献智能分析
  • 文献总结报告
  • 文献问答系统

6. web界面

技术架构

后端框架

  • FastAPI: 主要Web框架
  • Pydantic: 数据验证和序列化
  • Motor: 异步MongoDB驱动
  • aioredis: 异步Redis客户端
  • PyJWT: JWT认证
  • WebSocket: 实时数据传输

数据库

  • MongoDB: 主数据库
  • Redis: 缓存和消息队列

AI集成

  • DeepSeek API: 智能分析和问答系统

项目结构

frontend/            # web界面
docs/                # 说明文档
app/
 ├── init.py
 ├── cores/          # 核心配置和工具
 │   ├── config.py           # 配置文件
 │   └── db.py                # 数据库工具
 ├── models/         # 数据模型
 │   ├── basemodel.py        # 基础模型
 │   ├── project.py          # 项目报告
 │   ├── experiment.py       # 实验报告
 │   ├── paper.py            # 文献报告
 │   └── paper_summary.py    # 文献总结报告
 └── routers/        # API路由
    ├── device.py               # 设备管理
    ├── project.py              # 项目管理
    ├── project_report.py       # 项目报告
    ├── experiment.py           # 实验管理
    ├── experiment_report.py    # 实验报告
    ├── experiment_device.py    # 实验设备
    ├── login.py                # 用户认证
    ├── paper.py                # 文献报告
    ├── paper_summary.py        # 文献总结报告
    ├── memo.py                 # 备忘录
    └── websocket.py            # WebSocket处理

Redis数据库映射

- db199: 实验状态
- db200: 原始数据
- db201: 实验分析报告
- db202: 项目分析报告
- db203: 文献分析报告
- db204: 文献汇总报告
- db205: 项目备忘录
- db206: 实验备忘录
- db207: 问答历史记录
- db208: 问答任务状态

安装和部署

  1. 环境要求
    Python 3.8+
    MongoDB 4.0+
    Redis 6.0+
    
  2. 启动服务
    uvicorn app.main:app --host 0.0.0.0 --port 8000
    

API文档

启动服务后访问: