Clarifai搜索(curl)如何在每次通话中获取更多图像

时间:2018-09-07 07:25:22

标签: php clarifai

我正在尝试通过搜索端点获取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变量中进行了初始化。

图像搜索没有分页和per_page属性,还是我做错了什么?

但是,如果我更改了这两个属性,则总是最多返回20张图像。该应用程序/项目具有超过70k的图像,而资源管理器应用程序也显示了更多图像。

谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了答案。 为了更容易理解,我将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张图像。这样,请求调用就会变慢。