Как правильно получить пакетный прогноз из Google Cloud AutoML, используя расширение Chrome? - PullRequest
0 голосов
/ 02 мая 2020

Я создал модель Машинное обучение (ML) из учетной записи Google Cloud Platform и обучил ее в течение 1 часа, используя набор данных, который должен позволить модели прогнозировать веб-сайт вредоносного ПО с обычного веб-сайта. .

Я пытаюсь получить пакетный прогноз от Google Cloud AutoML, используя JavaScript REST API от расширения Google Chrome (т. Е. нет jQuery, пожалуйста), чтобы расширение могло сообщать пользователям, находятся ли они на сайте, который может содержать вредоносное ПО.

Однако я совершенно новичок в расширениях браузера и API, и неважно, что я пытаюсь Я всегда получаю эту ошибку в консоли:

XHR failed loading: POST "https://automl.googleapis.com/v1beta1/{name}:batchPredict".

Я все еще пытаюсь узнать, как правильно выполнить запрос REST API и как сделать его, в частности, для моей модели GCP, поэтому, пожалуйста, направьте меня до всех подробностей.

Я обнаружил, что прогнозирование партии должно быть сделано для этого пути :

POST https://automl.googleapis.com/v1beta1/{name}:batchPredict

Где строка name - название модели, запрошенной для ошибочный прогноз.

И я включил Cloud AutoML API:

Cloud API is enabled

Я даже поставил "*://automl.googleapis.com/*" в разрешения в manifest.json расширения, но это не имеет значения.

Вот расширение manifest.json:

{
    "name": "SurfGuard",
    "version": "1.0.0",
    "description": "Surf the web during lockdown, safely.",
    "manifest_version": 2,
    "icons": {
        "16": "icon16.png",
        "48": "icon48.png",
        "128": "icon128.png"
    },
    "background": {
        "scripts": ["background.js"],
        "persistent": false
    },
    "content_scripts": [
        {
            "matches": ["<all_urls>"],
            "all_frames": true,
            "js": ["content.js", "contentRequests.js"],
            "run_at": "document_end"
        }
    ],
    "permissions": [
        "*://automl.googleapis.com/*"
      ],
    "browser_action": {
        "default_title": "SurfGuard",
        "default_popup": "popup.html"
    }
}

А вот contentRequests.js, где JavaScript для запроса POST:

const requestSender = new XMLHttpRequest();

requestSender.onreadystatechange = apiHandler;

function apiHandler(response) {
    if (requestSender.readyState === 4 && requestSender.status === 200) {
        console.log(response.target.response);
    }
}

requestSender.open("POST", "https://automl.googleapis.com/v1beta1/{name}:batchPredict", true);
// On the line above, {name} should be my bucket name, but I'm not sure if it is safe to reveal my bucket name on Stack Overflow. Please let me know in the comments if it is safe to reveal it.

requestSender.send("https://google.com");

Содержимое content.js не имеет значения, а background.js пусто.

Я думаю, что проблема в JavaScript код, поскольку, как я уже отмечал выше, я разрешил доступ к API в конфигурации GCP API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...