这是一个使用 FastAPI 框架连接 PostgreSQL 数据库并提供 CRUD 操作的 API 应用程序。支持图片元数据管理、Gemini API 图像描述生成和预设配置管理。
- 连接到 PostgreSQL 数据库
- 提供完整的 CRUD API 接口
- 图片元数据管理
- Gemini API 图像描述生成
- 描述预设配置管理
- 可在阿里云 K8S 容器中部署
fastapi_postgres_app/
├── main.py # 主应用程序和路由
├── database.py # 数据库配置和连接
├── models.py # SQLAlchemy 模型定义
├── schemas.py # Pydantic 模型定义
├── requirements.txt # 依赖项列表
├── Dockerfile # 用于构建容器镜像
└── README.md # 项目说明
- 安装依赖项:
pip install -r requirements.txt- 运行应用程序:
python main.py- 构建 Docker 镜像:
docker build -t fastapi-postgres-api .- 运行 Docker 容器:
docker run -d -p 8000:8000 fastapi-postgres-api- 构建并推送镜像到阿里云容器镜像服务
- 使用提供的镜像创建 K8S 部署
GET /- 测试 API 是否正常运行POST /test-connection/- 测试数据库连接
POST /items/- 创建新项目GET /items/- 获取所有项目GET /items/{item_id}- 获取单个项目PUT /items/{item_id}- 更新项目DELETE /items/{item_id}- 删除项目
GET /artifacts/- 获取所有图片POST /artifacts/- 创建新图片GET /artifacts/{artifact_id}- 获取特定图片PUT /artifacts/{artifact_id}- 更新图片DELETE /artifacts/{artifact_id}- 删除图片GET /artifacts/md5/{md5}- 通过 MD5 获取图片
GET /presets/- 获取所有预设POST /presets/- 创建新预设GET /presets/{preset_key}- 获取特定预设PUT /presets/{preset_key}- 更新预设DELETE /presets/{preset_key}- 删除预设
GET /captions/- 获取所有描述POST /captions/- 创建新描述GET /captions/{caption_id}- 获取特定描述PUT /captions/{caption_id}- 更新描述DELETE /captions/{caption_id}- 删除描述GET /captions/artifact/{artifact_id}- 获取特定图片的所有描述GET /captions/artifact/{artifact_id}/preset/{preset_key}- 获取特定图片使用特定预设的描述
启动应用后,访问 http://localhost:8000/docs 查看 API 文档。
id: UUID (主键)md5: 字符串 (唯一)width: 整数height: 整数size: 整数format: 字符串original_filename: 字符串original_path: 字符串upload_time: 大整数tags: 字符串数组is_deleted: 布尔值deleted_time: 字符串
preset_key: 字符串 (主键)config: JSONB (包含模型、提示词等配置)description: 文本creator_id: UUIDcreate_time: 大整数is_deleted: 布尔值deleted_time: 大整数
id: UUID (主键)artifact_id: UUID (外键,关联 Artifact)type: 字符串preset_key: 字符串 (外键,关联 CaptionPreset)upload_time: 大整数text: 文本extra_data: JSONBis_deleted: 布尔值deleted_time: 大整数