Files
YaoXiang/Readme.md
T
2026-06-15 14:50:15 +08:00

5.6 KiB
Raw Blame History

药箱 · YaoXiang

家庭药品与应急物资管理系统

功能介绍

核心功能

  • 药品管理: 添加、编辑、删除药品信息,支持通用名、商品名、规格等
  • 批次管理: 每个药品可有多个批次,独立管理库存和有效期
  • 分类管理: 二级分类(药品/医疗器械/应急用品/消耗品)
  • 智能搜索: 支持按名称、症状搜索,AI 自然语言搜索
  • AI 识别: 拍照识别药盒、有效期、说明书,自动建档
  • 到期提醒: 90天/30天/7天过期提醒,支持有效期宽限(最多60天)
  • 库存提醒: 低库存自动提醒
  • 用户管理: 多用户支持,角色权限划分(管理员/普通用户/只读)
  • 通知系统: 支持 Server酱、PushPlus、Bark 等多种通知渠道
  • 大屏模式: 平板快速取药,大按钮方便操作

技术特性

  • 前端: React 18 + TypeScript + Vite + Ant Design Mobile
  • 后端: FastAPI + SQLAlchemy + SQLite
  • AI: 支持 OpenAI、Gemini、Claude、DeepSeek、Ollama
  • 部署: Docker 单容器部署

项目结构

YaoXiang/
├── frontend/                # 前端代码
│   ├── src/
│   │   ├── api/            # API 调用层
│   │   ├── components/     # 公共组件
│   │   ├── pages/          # 页面组件
│   │   ├── stores/         # 状态管理
│   │   ├── hooks/          # 自定义 Hooks
│   │   ├── types/          # TypeScript 类型
│   │   └── utils/          # 工具函数
│   └── package.json
│
├── backend/                 # 后端代码
│   ├── app/
│   │   ├── api/            # API 路由
│   │   ├── models/         # 数据模型
│   │   ├── schemas/        # Pydantic 模式
│   │   ├── services/       # 业务逻辑
│   │   ├── repositories/   # 数据访问
│   │   ├── ai/             # AI Provider
│   │   └── notifications/  # 通知系统
│   └── requirements.txt
│
├── docs/                    # 开发文档
├── start.ps1               # Windows 启动脚本
├── start.sh                # Linux/Mac 启动脚本
└── README.md

安装与运行

前置要求

  • Node.js 18+
  • Python 3.11+
  • npm

快速开始

Windows:

# 安装依赖
.\start.ps1 install

# 启动服务
.\start.ps1 start

Linux / Mac:

# 赋予执行权限(首次)
chmod +x start.sh

# 安装依赖
./start.sh install

# 启动服务
./start.sh start

手动安装:

# 安装前端依赖
cd frontend
npm install

# 安装后端依赖
cd ../backend
python -m venv venv
source venv/bin/activate  # Windows: .\venv\Scripts\activate
pip install -r requirements.txt

# 启动后端
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

# 启动前端(新终端)
cd frontend
npm run dev

访问地址

默认账号

首次启动会自动创建管理员账号:

  • 用户名: admin
  • 密码: admin123

配置说明

backend/ 目录下创建 .env 文件:

cp .env.example .env

AI API 配置

支持多种 AI Provider,选择一种配置即可:

OpenAI:

AI_PROVIDER=openai
OPENAI_API_KEY=sk-your-api-key
OPENAI_MODEL=gpt-4o

Gemini:

AI_PROVIDER=gemini
GEMINI_API_KEY=your-api-key
GEMINI_MODEL=gemini-pro-vision

DeepSeek:

AI_PROVIDER=deepseek
DEEPSEEK_API_KEY=your-api-key
DEEPSEEK_MODEL=deepseek-chat

Ollama (本地部署):

AI_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=llava

通知配置

配置通知渠道,药品过期和库存不足时会发送提醒:

Server酱:

  1. 访问 https://sct.ftqq.com/ 注册获取 SendKey
  2. 配置:
NOTIFICATION_PROVIDERS=serverchan
SERVERCHAN_KEY=your-send-key

PushPlus:

  1. 访问 https://www.pushplus.plus/ 注册获取 Token
  2. 配置:
NOTIFICATION_PROVIDERS=pushplus
PUSHPLUS_TOKEN=your-token

多渠道同时启用:

NOTIFICATION_PROVIDERS=serverchan,pushplus
SERVERCHAN_KEY=your-key
PUSHPLUS_TOKEN=your-token

其他配置

# 安全配置(请修改为自己的密钥)
JWT_SECRET_KEY=your-secret-key

# 数据库配置(默认 SQLite
DATABASE_URL=sqlite+aiosqlite:///./data/yaoxiang.db

# 文件上传配置
UPLOAD_DIR=./data/uploads
MAX_UPLOAD_SIZE=10485760  # 10MB

常用命令

# Windows
.\start.ps1 install       # 安装依赖
.\start.ps1 start         # 启动所有服务
.\start.ps1 start:f       # 仅启动前端
.\start.ps1 start:b       # 仅启动后端
.\start.ps1 build         # 构建生产版本
.\start.ps1 clean         # 清理缓存
.\start.ps1 help          # 显示帮助
# Linux / Mac
./start.sh install        # 安装依赖
./start.sh start          # 启动所有服务
./start.sh start:f        # 仅启动前端
./start.sh start:b        # 仅启动后端
./start.sh build          # 构建生产版本
./start.sh clean          # 清理缓存
./start.sh help           # 显示帮助

开发文档

详细文档请查看 docs/ 目录:

许可证

MIT License

声明

本项目由 小米 MiMoCode 助生成。