Как загрузить локальный файл изображения в Clarifai API

Я пытаюсь использовать API категоризации продуктов от clarifai, но в примере используется общедоступное изображение. Есть ли способ использовать API, используя изображение из локальной папки? Я использую нодджс.

const Clarifai = require('clarifai');
const app = new Clarifai.App({
 apiKey: 'apikey'

// example code from Clarifai Docs
app.models.predict("bd367be194cf45149e75f01d59f77ba7", "https://samples.clarifai.com/food.jpg").then(
    function(response) {
      // do something with response
    },
    function(err) {
      // there was an error
    }
  );

Ссылка, где я получил образец запроса API: https://www.clarifai.com/models/food-image-recognition-model-bd367be194cf45149e75f01d59f77ba7


person Andy Chen    schedule 31.08.2020    source источник
comment
Вы пробовали что-нибудь и столкнулись с какой-либо проблемой. Кажется, ты ничего не пробовал   -  person Jaswanth Karani    schedule 31.08.2020
comment
На самом деле я так и сделал - я попытался указать путь к локальному изображению вместо URL-адреса, но это не сработало. Я надеялся, что кто-то, имеющий опыт работы с Clarifai, знает правильный синтаксис.   -  person Andy Chen    schedule 31.08.2020


Ответы (1)


Вам нужно будет указать поток байтов вместо URL-адреса для загрузки из локального файла. Например:

// Insert here the initialization code as outlined on this page:
// https://docs.clarifai.com/api-guide/api-overview/api-clients#client-installation-instructions

const fs = require("fs");
const imageBytes = fs.readFileSync("{YOUR_IMAGE_LOCATION}");

stub.PostInputs(
    {
        inputs: [{data: {image: {base64: imageBytes}}}]
    },
    metadata,
    (err, response) => {
        if (err) {
            throw new Error(err);
        }

        if (response.status.code !== 10000) {
            throw new Error("Post inputs failed, status: " + response.status.description);
        }
    }
);

Этот код будет считывать байты base64 локального изображения и отправлять их (заменив URL на base64). Это использует API nodejs на основе grpc. Некоторую дополнительную информацию, включая этот пример, можно найти на https://docs.clarifai.com/api-guide/data/create-get-update-delete.

person syntheticgio    schedule 02.11.2020