API 参考#
Vista3d NIM 提供以下 API 端点
GET
: /v1/health/live - 检查服务是否存活(可能尚未准备就绪)GET
: /v1/health/ready - 检查服务是否准备就绪以及模型是否准备好进行推理GET
: /v1/license - 返回 NIM 的许可证GET
: /v1/vista3d/info - 获取关于模型的详细信息,例如版本和标签POST
: /v1/vista3d/inference - 运行模型的推理功能,用于分割和标注人体解剖结构
推理请求负载#
推理请求负载定义如下
"image"
:此字段需要一个有效的 URL,指向 NIfTI 或 NRRD 格式的 3D 医疗图像。URL 应该是可访问且格式正确的,以确保可以检索图像进行处理。例如,一个有效的 URL 可能如下所示
https://assets.ngc.nvidia.com/products/api-catalog/vista3d/example-1.nii.gz
"Prompts
:此可选字段允许用户提供用于运行交互式标注的特定提示。提示以字典形式给出,包含两个可能的键"classes"
:标签名称或索引的列表,用作类别提示。此列表可以包含字符串(例如,[“spleen”, “liver”])或整数(例如,[3, 1])。"points"
:一个字典,其中键是标签名称或索引,值是元组列表,表示用户点击点。每个元组包含三个整数,对应于点的坐标(x, y, z)
。例如,{"spleen": [(123, 212, 151), (123, 212, 152)]}
。
"local_working_dir"
:此可选字段允许用户提供一个挂载卷,用于保存推理结果。如果目录是/path/on/host/results/
,那么在推理请求负载中,local_working_dir
应该是/path/in/container/results/
。
这是一个完整的负载示例
{
"image": "https://assets.ngc.nvidia.com/products/api-catalog/vista3d/example-1.nii.gz",
"prompts": {"classes": ["spleen"], "points": {"spleen": [[123, 212, 151], [123, 212, 152]]}},
"local_working_dir": "/path/in/container/results/"
}
推理示例#
要使用定义的负载执行推理请求,您可以使用以下 Python 代码
import requests
base_url = 'http://127.0.0.1:8000/v1'
data = {
"image": "https://assets.ngc.nvidia.com/products/api-catalog/vista3d/example-1.nii.gz",
"prompts": {
"classes": ["spleen"],
"points": {"spleen": [(123, 212, 151), (123, 212, 152)]}
}
}
response = requests.post(f"{base_url}/vista3d/inference", json=data)
请参考 getting-started.md 获取更多示例。