php - Clarifai 搜索(curl)如何在每次调用中获取更多图像
问题描述
我正在尝试使用搜索端点获取 20 多个图像:
$data = '{
"query": {
"ands": [
{
"output": {
"input": {
"data": {
"image": {
"url": "' . $url . '"
}
}
}
}
}
]
}
}';
$ch = curl_init('https://api.clarifai.com/v2/searches?
page=1&per_page=30');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Authorization: Key " . self::$clarify_user_apikey,
"Content-Type: application/json")
);
$output = curl_exec($ch);
curl_close($ch);
图像在上面的$data
变量中初始化。
图片搜索是否没有 pagination 和 per_page 属性,或者我做错了什么?
但是,我更改了这两个属性,我总是最多返回 20 张图像。有问题的应用程序/项目有超过 70k 图像,并且资源管理器应用程序也显示了更多图像。
谢谢!
解决方案
我找到了答案。为了更容易理解,我将 JSON 部分格式化为一个数组。
$data = array(
"query" => array(
"ands" => array(
array(
"output" => array(
"input" => array(
"data" => array(
"image" => array(
"url" => $url
)
)
)
)
)
)
),
"pagination" => array(
"page" => 1,
"per_page" => 100
),
);
此代码返回 100 张图像。我还没有看到上限,但它似乎也适用于 500 张图像。但是,请求调用会变慢。
推荐阅读
- javascript - 在 JavaScript 中遍历一个对象
- java - 未找到 JavaFX 无效 URL 或资源的 Maven
- r - Gcloud如何重置rstudio VM实例的密码
- java - 如何在主线程中没有执行代码的情况下保持粘性服务的活动?
- android - Android Studio - 我无法在实时数据库 Fire base 中使用意图
- actionscript-3 - 尝试连接到 C# 服务器时,AS3 失败并出现“错误 #2048:违反安全沙箱”
- c++ - 模板参数表示“具有特定签名的可调用对象”
- typescript - 在不同的变量中排序数组打字稿离子
- c++ - C++:为什么我不需要取消引用来初始化动态数组?
- javascript - 我如何构建这个新逻辑以适应预先存在的代码?