การใช้ฟังก์ชัน 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) และแก้ไขส่วน “ engines ” ดังนี้
"engines": {
"node": "14"
},
เปิด “ {LOCAL_DIR}/functions/index.js”ด้วย IDE ที่คุณต้องการ
เรามานิยามคำศัพท์ต่อไปนี้กัน คุณควรแทนที่ด้วยรายละเอียดของคุณ
- ชื่อรุ่น = {MODEL_NAME}
- ขอบเขตโมเดล = {MODEL_REGION} — (ตรวจสอบให้แน่ใจว่าขอบเขตโมเดลเหมือนกับขอบเขตของฟังก์ชัน โดยเฉพาะอย่างยิ่งเพื่อประสิทธิภาพที่ดีขึ้น Default = 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
ป.ล. —
หากต้องการดูวิธีเรียกฟังก์ชัน 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)