Как использовать Google AutoML в веб-приложении?

У меня есть готовая к использованию модель Google Cloud AutoML NL. Я хочу связать это с моим веб-приложением с бэкэндом Firebase. Ниже приведен мой код для вызова. Существует проблема авторизации. Я хочу понять, как авторизовать приложение, чтобы помочь клиентским приложениям получить доступ к модели AutoML.

async add(data){
var headers = new Headers();
headers.append('Content-Type:application/json')

var options = {
  method: 'POST',
  headers,
  body: JSON.stringify(data)
}

var request = new Request('https://automl.googleapis.com/v1beta1/projects/project1/locations/us-central1/models/TCN5678:predict', options )

var response = await fetch(request)

var status = await response.status
console.log(status)}

2 ответа

Решение

После нескольких часов борьбы, наконец-то я смог решить эту проблему. Я не уверен, как это может работать, кроме Firebase (и NL AutoML). Я использовал Firebase Cloud Function для обхода и использовал скрытый документ, который дает доступ к AutoML npm. Данный код требует некоторых изменений. Firebase CF может проходить аутентификацию без явной авторизации. Ниже приведен предлагаемый код, и я могу получить классификацию прогноза с помощью AutoML. Надеюсь, что это помогает другим. Наконец, кажется, что Google docs - это способ проверить навыки поиска и терпение, не зная, как это им помогает:

const automl = require('@google-cloud/automl');
exports.sendToAML = functions.database.ref('/path/to/text').onWrite((snapshot, context) =>{


var client = new automl.PredictionServiceClient({
  // optional auth parameters.
});

var formattedName = client.modelPath('bucketId', 'us-central1', 'TCN****3567595');
var payload = {
  "textSnippet": {
       "content": snapshot.after._data.text,
        "mime_type": "text/plain"
   },
};
var request = {
  name: formattedName,
  payload: payload,
};
client.predict(request)
  .then(responses => {
    var response = responses[0];
    return console.log(response.payload[0].classification.score)
  })
  .catch(err => {
    console.error(err);
  });
});

`

Вы должны использовать сервисные учетные записи или OAuth 2.0 в качестве метода аутентификации. Старайтесь избегать использования ключей API, поскольку ваши учетные данные могут быть раскрыты и использованы неправильно, что приводит к нежелательным сборам.

Другие вопросы по тегам