RoboflowAPI提供了强大的图像搜索功能,允许用户通过查询字符串进行筛选、排序和语义搜索,类似于应用内的搜索功能。通过API返回的继续标记(continuation token),用户可以进行后续请求,以分页方式浏览所有匹配的图像,例如列出工作空间或特定项目中的所有图像。本文详细介绍了如何使用这个API端点。
要访问API,需要将API密钥作为查询参数包含在请求中。例如:
POST https://api.roboflow.com/{WORKSPACE}/search/v1?api_key={YOUR_API_KEY}
此端点支持根据请求中指定的各种标准搜索图像。
请求头需要设置为:
Content-Type: application/json
请求体参数包括:
示例请求:
curl --location 'https://api.roboflow.com/{WORKSPACE}/search/v1?api_key={API_KEY}' --header 'Content-Type: application/json' --data '{ "query": "project:foo nightime", "pageSize": 10, "fields": ["tags", "width", "height", "filename", "aspectRatio", "split"] }'
响应是一个包含以下字段的JSON对象:
图像对象字段取决于在fields参数中请求的字段,可能包括:
响应中返回的continuationToken对于分页至关重要。它允许用户高效地浏览所有匹配的搜索结果。当在后续请求中包含continuationToken时,它会获取下一组结果。要使用continuationToken,请将其包含在下一个API调用的请求体中。这将根据原始的查询检索下一页结果。
除了应用内数据集搜索中提供的所有过滤器外,工作空间范围的搜索还支持项目和数据集的过滤器。例如,可以使用查询project:foo project:bar来查找在两个项目foo和bar中的所有图像。使用dataset:foo这样的查询将返回在项目foo中被标记并添加到项目数据集中的图像。