减少模型源码杂乱;sam3的mask返回办法;mask图片下载接口编写;

1.减少模型源码杂乱

文件/文件夹 简介功能 本地学习使用能删吗?
pyproject.toml Python 项目根配置文件,定义依赖、构建系统、工具配置(black/ruff/pytest等) ✔ 可以删,运行模型不影响
setup.cfg Python 项目配置文件,配置元数据、依赖、工具参数等(旧版 setup 工具使用) ✔ 可以删
setup.py Python 项目安装脚本,pip install 或打包时使用 ✔ 可以删
MANIFEST.in 告诉打包工具哪些文件要包含到最终包里 ✔ 可以删
mkdocs.yml MkDocs 文档网站配置文件,用于生成项目文档网站 ✔ 可以删
.pre-commit-config.yaml Git 提交前自动执行代码检查/格式化的配置 ✔ 可以删
.editorconfig 统一不同编辑器代码格式(缩进、换行符等) ✔ 可以删
.github/ GitHub 项目目录,用于 CI/CD、Actions、Issue 模板等 ✔ 可以删
docs/ 项目文档文件夹 ✔ 可以删
tests/ 测试代码文件夹 ✔ 可以删

2.sam3的mask返回办法
sam3的mask 本质上是一张灰度图片,用来标记图像中每个像素的类别或前景/背景状态。
直接返回mask:
返回了 mask 的时候,返回值过大,导致 FastAPI / Uvicorn 返回 Maximum response size reached。
原因是 mask 本质上是一个大数组(每个像素一个数值),如果图像较大或者 mask 很多,直接返回 JSON 会非常巨大。

3.mask图片下载接口编写
@router.get("/{filename}")
文件下载请求必须使用 GET,因为下载属于资源获取,不需要提交数据,也符合 HTTP/REST 语义,浏览器和标准库都依赖 GET 来发起下载。
保存的图片文件名随机,可以用 时间戳 或 uuid 生成不重复的名字,是最常用、最简单的两种方式

import time
filename = f"run/output_{int(time.time())}.jpg"
results.save(filename)
import uuid
filename = f"run/output_{uuid.uuid4().hex}.jpg"
results.save(filename)

f"{int(time.time())}.jpg" 前面的 f 表示 f-string(格式化字符串),否则会被看作普通字符串。
写service和api这些,记得写__init__。
init.py告诉 Python 目录是包,做包初始化。
init.py 是 包的初始化脚本,组织模块用。

posted @ 2026-01-23 11:58  asphyxiasea  阅读(1)  评论(0)    收藏  举报