# ai-store-api **Repository Path**: lxcsGit/ai-store-api ## Basic Information - **Project Name**: ai-store-api - **Description**: AI店长后端程序 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-13 - **Last Updated**: 2025-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 文件管理系统 这是一个基于FastAPI开发的文件管理系统,用于管理商户的文件上传、下载和报告整合。 ## 功能特点 - 商户管理:添加、修改、查询商户信息 - 报告管理:创建报告、查询报告列表、查看报告详情 - 文件管理:上传文件、下载文件、查询文件列表 - 文件整合:自动将属于同一报告的多个文件整合成一个完整报告 - 支持数据库存储和文件系统存储两种方式 ## 技术栈 - Python 3.8+ - FastAPI:Web框架 - SQLAlchemy:ORM框架 - MySQL:数据库 - Uvicorn:ASGI服务器 ## 安装与使用 ### 准备环境 1. 安装Python 3.8+ 2. 创建并激活虚拟环境(可选) 3. 安装依赖: ```bash pip install -r requirements.txt ``` ### 创建数据库 1. 在MySQL中创建`merchant_collection`数据库: ```sql CREATE DATABASE merchant_collection DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` ### 环境变量配置 创建`.env`文件或设置环境变量: ``` DB_USER=root DB_PASSWORD=password DB_HOST=localhost DB_PORT=3306 DB_NAME=merchant_collection UPLOAD_DIR=uploads ``` ### 启动服务 ```bash uvicorn app:app --reload ``` 服务启动后,访问 http://localhost:8000/docs 查看API文档。 ## API接口说明 详细的API接口文档请参考 [API文档](api.md) ## 目录结构 ``` ├── app.py # 主应用入口 ├── models.py # 数据库模型定义 ├── schemas.py # Pydantic模型定义 ├── database.py # 数据库连接管理 ├── api/ # API模块 │ ├── __init__.py │ ├── routes.py # 路由聚合 │ ├── deps.py # 公共依赖 │ └── endpoints/ # API端点 │ ├── __init__.py │ ├── file.py # 文件管理接口 │ ├── report.py # 报告管理接口 │ ├── merchant.py # 商户管理接口 │ └── auth.py # 认证接口 ├── services/ # 业务逻辑层 │ ├── __init__.py │ ├── file_service.py # 文件服务 │ ├── report_service.py # 报告服务 │ └── merchant_service.py # 商户服务 ├── uploads/ # 文件上传目录 ├── requirements.txt # 依赖包列表 ├── api.md # API文档 └── README.md # 项目说明 ``` ## 常见问题 1. **文件上传失败** - 确保`uploads`目录存在且有写入权限 - 检查文件大小是否超过限制 2. **数据库连接错误** - 检查数据库连接配置 - 确保MySQL服务正常运行 ps -ef | grep python kill -9 进程号 到项目目录: cd /home/python/ai-store-api 激活环境: conda activate ai_store 运行项目:nohup python -u main.py > output.log 2>&1 &