Использование функции JavaScript Firebase для запуска модели в Google Cloud Platform
Допустим, у вас есть проект Firebase, связанный с вашим приложением, и вы создали модель машинного обучения в рамках того же проекта в Google Cloud Platform (GCP). Теперь вам может быть интересно, как выполнить вывод, используя модель в GCP, через аутентификацию Firebase в приложении. Вы можете использовать функцию JavaScript Firebase , чтобы сделать это.
(Это было протестировано с Ubuntu 18.04 и Node.js 14)
0. Предпосылки
- Проект Firebase, связанный с вашим приложением (например, идентификатор проекта = {PROJECT_ID}).
- Модель машинного обучения в рамках того же проекта {PROJECT_ID} в GCP.
- Node.js 14 и npm (их можно установить с помощью nvm )
Откройте терминал и выполните следующее.
npm install -g firebase-tools
Предположим, что локальный каталог проекта — {LOCAL_DIR} на рабочем столе. Создайте его и перейдите к нему.
mkdir -p ~/Desktop/{LOCAL_DIR}
cd ~/Desktop/{LOCAL_DIR}
Внимательно выполняйте следующие команды одну за другой, обращаясь к примечаниям под ними как к руководству по навигации по генерируемым ими подсказкам.
firebase login
firebase init firestore
firebase init functions
- Вам будет предложено войти через браузер и пройти аутентификацию.
- При появлении запроса выберите правильный проект Firebase ( {PROJECT_ID} ).
- Выберите JavaScript (js) в качестве языка.
- elsint для этого не нужен .
- Выберите да для установки зависимостей.
Нам понадобится пакет googleapis .
cd ~/Desktop/{LOCAL_DIR}/functions
npm i googleapis
Откройте « {LOCAL_DIR}/functions/package.json» в предпочитаемой вами среде IDE (например, — VS Code) и отредактируйте раздел « engine » следующим образом.
"engines": {
"node": "14"
},
Откройте « {LOCAL_DIR}/functions/index.js» в предпочитаемой вами среде IDE.
Определим следующие термины. Вы должны заменить их своими данными.
- Название модели = {MODEL_NAME}
- Регион модели = {MODEL_REGION} — (убедитесь, что регион модели совпадает с регионом функции, особенно для повышения производительности. По умолчанию = us-central1 )
- Имя функции Firebase = {ML_FUNCTION}
- Ввод в функцию = ввод в модель = словарь типа {"key_str": "val_str", "key_int": 2, "key_arr": [1.25, 0.76, 3.84]}
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
const googleapis_pack = require("googleapis");
const ml = googleapis_pack.google.ml({version:"v1", rootUrl:"https://{MODEL_REGION}-ml.googleapis.com"});
exports.{ML_FUNCTION} = functions.https.onCall(async(data, context)=>
{
const key_str = data.key_str;
const key_int = data.key_int;
const key_arr = data.key_arr;
const instance = {"key_str":key_str, "key_int":key_int, "key_arr":key_arr};
const model = "{MODEL_NAME}";
const { credential } = await googleapis_pack.google.auth.getApplicationDefault();
const modelName = "projects/{PROJECT_ID}/models/" + model;
const results = await ml.projects.predict({
auth: credential,
name: modelName,
requestBody: instance
});
return results.data;
}
);
Перейдите в терминал и выполните следующее.
cd ~/Desktop/{LOCAL_DIR}
firebase deploy --only functions
PS —
Чтобы узнать, как вызвать функцию Firebase из вашего приложения (iOS, Android и т. д.), вы можете обратиться к официальной документации Google.
Рекомендации
- https://firebase.google.com/docs/functions/get-started
- https://github.com/nvm-sh/nvm/blob/master/README.md
- https://firebase.google.com/docs/functions/callable

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































