如何在 Web 应用程序上使用 Google AutoML?

How to use Google AutoML on web app?

我有一个 Google Cloud AutoML NL 模型可以使用。我希望 link 使用我的带有 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)}

您应该使用 service accounts or OAuth 2.0 作为身份验证方法。尽量避免使用 API 密钥,因为您的凭据可能会被泄露和滥用,从而产生不必要的费用。

经过几个小时的努力,我终于解决了这个问题。除了 Firebase(和 NL AutoML)之外,我不确定它如何工作。我使用 Firebase Cloud Function 来变通并使用 hidden doc 来访问 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);
  });
});

`