Używanie funkcji JavaScript Firebase do uruchamiania modelu w Google Cloud Platform
Załóżmy, że masz projekt Firebase powiązany ze swoją aplikacją i utworzyłeś model uczenia maszynowego w ramach tego samego projektu w Google Cloud Platform (GCP). Teraz możesz się zastanawiać, jak przeprowadzić wnioskowanie przy użyciu modelu w GCP, poprzez uwierzytelnianie Firebase w aplikacji. Aby to zrobić, możesz użyć funkcji JavaScript Firebase .
(To zostało przetestowane z Ubuntu 18.04 i Node.js 14)
0. Wymagania wstępne
- Projekt Firebase powiązany z Twoją aplikacją (np. — identyfikator projektu = {PROJECT_ID})
- Model systemów uczących się w ramach tego samego projektu {PROJECT_ID} w GCP
- Node.js 14 i npm (możesz je zainstalować za pomocą nvm )
Otwórz terminal i wykonaj następujące czynności.
npm install -g firebase-tools
Załóżmy, że lokalny katalog projektu to {LOCAL_DIR} na pulpicie. Utwórz go i przejdź do niego.
mkdir -p ~/Desktop/{LOCAL_DIR}
cd ~/Desktop/{LOCAL_DIR}
Ostrożnie uruchamiaj poniższe polecenia, odnosząc się do poniższych uwag jako przewodnika, jak poruszać się po generowanych przez nie monitach.
firebase login
firebase init firestore
firebase init functions
- Zostaniesz poproszony o zalogowanie się przez przeglądarkę i uwierzytelnienie.
- Po wyświetleniu monitu wybierz właściwy projekt Firebase ( {PROJECT_ID} ).
- Wybierz JavaScript (js) jako język.
- „ elsint ” nie jest do tego potrzebny.
- Wybierz tak , aby zainstalować zależności.
Będziemy potrzebować pakietu googleapis .
cd ~/Desktop/{LOCAL_DIR}/functions
npm i googleapis
Otwórz „ {LOCAL_DIR}/functions/package.json” za pomocą preferowanego IDE (np. — VS Code) i edytuj sekcję „ silniki ” w następujący sposób.
"engines": {
"node": "14"
},
Otwórz „ {LOCAL_DIR}/functions/index.js” z preferowanym IDE.
Zdefiniujmy następujące pojęcia. Powinieneś je zastąpić swoimi danymi.
- Nazwa modelu = {MODEL_NAME}
- Region modelu = {MODEL_REGION} — (Upewnij się, że region modelu jest taki sam jak region funkcji; szczególnie w celu uzyskania lepszej wydajności. Default = us-central1 )
- Nazwa funkcji Firebase = {ML_FUNCTION}
- Wejście do funkcji = wejście do modelu = słownik typu {“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;
}
);
Przejdź do terminala i wykonaj następujące czynności.
cd ~/Desktop/{LOCAL_DIR}
firebase deploy --only functions
PS-
Aby dowiedzieć się, jak wywołać funkcję Firebase z aplikacji (iOS, Android itp.), możesz zapoznać się z tą oficjalną dokumentacją Google.
Bibliografia
- 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

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































