这是一个使用 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
: 大整数