1

按照此文档,在请求 batchPredict 时,我通过 API 遇到此错误

{
 "error": {
    "code": 13
    "message": "internal",
  }
}

此外,这是我尝试使用“测试和使用”选项卡时看到的错误的屏幕截图。两者都不是描述性的,所以我不确定错误在哪里。

在请求中,我将我的 CSV 文件的路径包含在 Google 存储中,该文件链接到同一存储桶中的视频。这是 CSV 的内容:

gs://XXXXXXXXXXXX/movie1.mov,0,inf
gs://XXXXXXXXXXXX/movie2.mov,0,inf

我还包括 /Results 文件夹的路径(在同一个存储桶中)以保存预测。

拨打电话的代码:

const client = new PredictionServiceClient();
async function batchPredict() {
    const request = {
      name: client.modelPath('project-id-xxxxxx', 'us-central1', 'VOTxxxxxxxxxx'),
      inputConfig: {
        gcsSource: {
          inputUris: ['gs://XXXXXXXXXXXX/apitest.csv'],
        },
      },
      outputConfig: {
        gcsDestination: {
          outputUriPrefix: 'gs://XXXXXXXXXXXX/results/',
        },
      },
    };

如果我需要提供更多详细信息,请告诉我。

4

1 回答 1

0

可能的根本原因是这两个之一:

  • 您的代码中某处存在问题。因此,如果您的代码与下面的代码不同,我建议您尝试一下(当然要更改适当的变量)。
  • 您的模型有问题,这是最可能的根本原因(根据错误消息本身)。

因此,如果这不是您的代码,您应该在问题跟踪器上创建一个私人问题报告,解释您的问题并提供尽可能多的详细信息以及您的用例和影响。
由于它是私有的,只有 Google 员工和您可以访问它,因此请随时分享您的项目和模型 ID。

这是我为尝试重现您的问题所做的工作(请务必遵循开始之前的指南):

  • 我已经训练了一个模型gs://YOUR_BUCKET/TRAINING.csv
TRAIN,gs://automl-video-demo-data/traffic_videos/traffic_videos_train.csv
TEST,gs://automl-video-demo-data/traffic_videos/traffic_videos_test.csv
  • gs://YOUR_BUCKET/VIDEOS_TO_ANNOTATE.csv预测(inputUri)上的几个图像:
gs://automl-video-demo-data/traffic_videos/highway_078.mp4, 0,inf
gs://automl-video-demo-data/traffic_videos/highway_079.mp4,10.00000,15.50000
/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
const projectId = 'YOUR_PROJECT';
const location = 'us-central1';
const modelId = 'VOTXXXXXXXXXXXXXXXXXX';
const inputUri = 'gs://YOUR_BUCKET/VIDEOS_TO_ANNOTATE.csv';
const outputUri = 'gs://YOUR_BUCKET/outputs/';

// Imports the Google Cloud AutoML library
const {PredictionServiceClient} = require('@google-cloud/automl').v1beta1;

// Instantiates a client
const client = new PredictionServiceClient();

async function batchPredict() {
  // Construct request
  const request = {
    name: client.modelPath(projectId, location, modelId),
    inputConfig: {
      gcsSource: {
        inputUris: [inputUri],
      },
    },
    outputConfig: {
      gcsDestination: {
        outputUriPrefix: outputUri,
      },
    },
  };

  const [operation] = await client.batchPredict(request);

  console.log('Waiting for operation to complete...');
  // Wait for operation to complete.
  const [response] = await operation.promise();
  console.log(
    `Batch Prediction results saved to Cloud Storage bucket. ${response}`
  );
}

batchPredict();

请注意,我还尝试了REST & CMD LINE预测示例

在这两种情况下,它都运行良好,我收到了正确的响应: Nodejs预测的响应:

Waiting for operation to complete...
Batch Prediction results saved to Cloud Storage bucket. [object Object]

REST & CMD LINE预测的响应:

{
  "name": "projects/XXXXXXXXXX/locations/us-central1/operations/VOTXXXXXXXXXXXXXXX",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1beta1.OperationMetadata",
    "createTime": "2021-04-16T08:09:52.102270Z",
    "updateTime": "2021-04-16T08:09:52.102270Z",
    "batchPredictDetails": {
      "inputConfig": {
        "gcsSource": {
          "inputUris": [
            "gs://MY_BUCKET/VIDEOS_TO_ANNOTATE.csv"
          ]
        }
      }
    }
  }
}
于 2021-04-16T09:04:35.383 回答