Google Cloud Platform'da Model Çalıştırmak için JavaScript Firebase İşlevini Kullanma

Feb 02 2023
Diyelim ki uygulamanızla ilişkilendirilmiş bir Firebase projeniz var ve aynı proje kapsamında Google Cloud Platform'da (GCP) bir makine öğrenimi modeli oluşturdunuz. Şimdi, uygulamadaki Firebase kimlik doğrulaması yoluyla GCP'deki modeli kullanarak nasıl çıkarım yapacağınızı merak ediyor olabilirsiniz.

Diyelim ki uygulamanızla ilişkilendirilmiş bir Firebase projeniz var ve aynı proje kapsamında Google Cloud Platform'da (GCP) bir makine öğrenimi modeli oluşturdunuz . Şimdi, uygulamadaki Firebase kimlik doğrulaması yoluyla GCP'deki modeli kullanarak nasıl çıkarım yapacağınızı merak ediyor olabilirsiniz. Bunu yapmak için bir JavaScript Firebase işlevi kullanabilirsiniz .

(Bu, Ubuntu 18.04 ve Node.js 14 ile test edilmiştir)

0. Önkoşullar

  • Uygulamanızla ilişkili bir Firebase projesi (ör. — proje kimliği = {PROJECT_ID})
  • GCP'de {PROJECT_ID} ile aynı proje kapsamında bir makine öğrenimi modeli
  • Node.js 14 ve npm (Bunları nvm kullanarak yükleyebilirsiniz )

Bir terminal açın ve aşağıdakileri yürütün.

npm install -g firebase-tools

Yerel proje dizininin Masaüstünde {LOCAL_DIR} olduğunu varsayalım. Oluşturun ve ona gidin.

mkdir -p ~/Desktop/{LOCAL_DIR}
cd ~/Desktop/{LOCAL_DIR}

Aşağıdaki komutları, oluşturdukları bilgi istemleri arasında nasıl gezineceğiniz konusunda bir kılavuz olarak altlarındaki notlara başvurarak dikkatlice tek tek çalıştırın.

firebase login

firebase init firestore

firebase init functions

  • Tarayıcı aracılığıyla oturum açmanız ve kimlik doğrulamanız istenecektir.
  • İstendiğinde doğru Firebase projesini ( {PROJECT_ID} ) seçin.
  • Dil olarak JavaScript'i (js) seçin .
  • Bunun için “ elsint ” gerekli değildir .
  • Bağımlılıkları yüklemek için evet'i seçin .

googleapis paketine ihtiyacımız olacak .

cd ~/Desktop/{LOCAL_DIR}/functions
npm i googleapis

Tercih ettiğiniz IDE (örneğin — VS Kodu) ile “ {LOCAL_DIR}/functions/package.json” dosyasını açın ve “ motorlar ” bölümünü aşağıdaki gibi düzenleyin.

"engines": {
    "node": "14"
  },

Tercih ettiğiniz IDE ile “ {LOCAL_DIR}/functions/index.js” dosyasını açın.

Aşağıdaki terimleri tanımlayalım. Bunları kendi bilgilerinizle değiştirmelisiniz.

  • Model adı = {MODEL_NAME}
  • Model bölgesi = {MODEL_REGION} — (Özellikle daha iyi performans için model bölgesinin fonksiyon bölgesi ile aynı olduğundan emin olun. Varsayılan = us-central1 )
  • Firebase işlev adı = {ML_FUNCTION}
  • İşlev girişi = model girişi = {"key_str": "val_str", "key_int": 2, "key_arr": [1.25, 0.76, 3.84]} gibi bir sözlük

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;

}
);

Terminale gidin ve aşağıdakileri yürütün.

cd ~/Desktop/{LOCAL_DIR}
firebase deploy --only functions

PS —

Uygulamanızdan (iOS, Android vb.) bir Firebase işlevini nasıl çağıracağınızı öğrenmek için Google tarafından hazırlanan bu resmi belgelere başvurabilirsiniz .

Referanslar

  • 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