Clarifai поиск (curl), как получить больше изображений за звонок - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь получить более 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 изображений назад. В рассматриваемом приложении / проекте содержится более 70 тыс. Изображений, а в приложении проводника также отображается больше изображений.

Спасибо!

1 Ответ

0 голосов
/ 12 сентября 2018

Я нашел ответ. Для облегчения понимания я отформатировал часть 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 изображениями. Однако запрос на запрос становится медленным.

...