อัปเดต Vertex AI แบบไดนามิกในแอป Firebase ด้วยการกำหนดค่าระยะไกลของ Firebase

เมื่อเรียกใช้ Gemini API จากแอปโดยใช้ Vertex AI in Firebase SDK คำขอของคุณจะมีพารามิเตอร์หลายรายการที่ควบคุมคำตอบของ Generative AI ซึ่งมักจะประกอบด้วยชื่อโมเดล การกำหนดค่าการสร้างโมเดล (โทเค็นสูงสุด อุณหภูมิ ฯลฯ) การตั้งค่าความปลอดภัย วิธีการของระบบ และข้อมูลพรอมต์

ในกรณีส่วนใหญ่ คุณจะต้องเปลี่ยนข้อมูลเหล่านี้ตามต้องการหรือตามความจำเป็นในสถานการณ์ต่างๆ ต่อไปนี้

  • อัปเดตโมเดล Generative AI โดยไม่ต้องเผยแพร่แอปใหม่ คุณสามารถอัปเกรดเป็นโมเดลเวอร์ชันใหม่ที่มีความเสถียรก่อนที่จะเลิกใช้งานเวอร์ชันเก่า เปลี่ยนไปใช้โมเดลที่ประหยัดค่าใช้จ่ายหรือมีประสิทธิภาพสูงขึ้นตามความต้องการและคุณลักษณะของผู้ใช้ หรือทำให้โมเดลล่าสุดและดีที่สุดใช้งานได้ตามเงื่อนไขกับกลุ่มผู้ใช้บางกลุ่ม (เช่น ผู้ทดสอบเบต้า)
  • ตั้งค่าตำแหน่งที่คุณเข้าถึงโมเดลเพื่อให้อยู่ใกล้ผู้ใช้มากขึ้น
  • ทํา A/B Testing วิธีการและพรอมต์ของระบบที่แตกต่างกัน จากนั้นค่อยๆ เปิดตัวค่าการทดสอบที่ได้ผลลัพธ์ดีที่สุดแก่ผู้ใช้
  • ใช้ Flag ฟีเจอร์เพื่อแสดงหรือซ่อนฟีเจอร์ Generative AI ในแอปอย่างรวดเร็ว

Firebase Remote Config ดำเนินการทั้งหมดนี้และอื่นๆ อีกมากมาย ซึ่งช่วยให้คุณอัปเดตค่าพารามิเตอร์ได้ตามต้องการและแบบมีเงื่อนไขสำหรับอินสแตนซ์แอปที่ตรงกับลักษณะที่คุณตั้งค่าไว้ในคอนโซล Firebase โดยไม่ต้องเผยแพร่แอปเวอร์ชันใหม่

คู่มือโซลูชันนี้จะแสดง Use Case ที่แนะนําและอธิบายวิธีเพิ่ม Remote Config ลงในแอป Generative AI

ข้ามไปยังการติดตั้งใช้งานโค้ด

เหตุผลที่ควรใช้ Firebase Remote Config กับแอป

Firebase Remote Config ช่วยให้คุณปรับลักษณะการทํางานของแอปแบบไดนามิกได้โดยไม่ต้องอัปเดตแอป ซึ่งจะมีประสิทธิภาพอย่างยิ่งสำหรับแอปที่ใช้ Generative AI ซึ่งการปรับปรุงซ้ำอย่างรวดเร็วและการปรับแต่งอย่างละเอียดเป็นสิ่งสําคัญ

กรณีการใช้งานที่จำเป็นสำหรับ Remote Config กับแอป Generative AI

เราขอแนะนำให้ใช้ Remote Config กับ Vertex AI in Firebase สำหรับกรณีการใช้งานที่สำคัญต่อไปนี้

  • อัปเกรดเป็นโมเดลเวอร์ชันล่าสุดโดยไม่ต้องอัปเดตแอป: ใช้พารามิเตอร์ Remote Config เพื่อเปลี่ยนชื่อโมเดลตามต้องการ เพื่อให้คุณอัปเกรดเป็นโมเดล Gemini ที่ต้องการเป็นเวอร์ชันล่าสุดได้ทันทีที่พร้อมใช้งาน
  • อัปเดตวิธีการของระบบและการตั้งค่าความปลอดภัยโดยไม่ต้องอัปเดตแอป:เก็บวิธีการของระบบและการตั้งค่าความปลอดภัยไว้ในพารามิเตอร์ Remote Config เพื่อให้คุณเปลี่ยนได้ตามต้องการหากพบปัญหาหลังจากการทําให้ใช้งานได้
  • ลดความเสี่ยงและบังคับใช้ความปลอดภัยของ AI: ใช้Remote Configการเปิดตัวเพื่อเผยแพร่การเปลี่ยนแปลง Generative AI ให้แก่ผู้ใช้ iOS และ Android อย่างปลอดภัยและค่อยเป็นค่อยไป

กรณีการใช้งานขั้นสูงและที่แนะนําสําหรับ Remote Config กับแอป Generative AI

หลังจากเครื่องมือวัดผลแอปด้วย Remote Config และ Google Analytics แล้ว คุณจะสามารถสํารวจกรณีการใช้งานขั้นสูงต่อไปนี้

  • ตั้งค่าตำแหน่งตามตำแหน่งไคลเอ็นต์: ใช้เงื่อนไข Remote Config เพื่อตั้งค่าตำแหน่งของโมเดลตามตำแหน่งที่ตรวจพบของไคลเอ็นต์
  • ทดสอบโมเดลต่างๆ: ทดสอบและสลับใช้โมเดล Generative AI ต่างๆ ได้อย่างรวดเร็ว หรือแม้แต่ติดตั้งใช้งานโมเดลต่างๆ กับกลุ่มผู้ใช้ที่แตกต่างกัน เพื่อหาโมเดลที่เหมาะกับกรณีการใช้งานหนึ่งๆ ของคุณมากที่สุด
  • เพิ่มประสิทธิภาพการทำงานของโมเดล: ปรับแต่งพารามิเตอร์ของโมเดล เช่นพรอมต์ของระบบ โทเค็นเอาต์พุตสูงสุด อุณหภูมิ และการตั้งค่าอื่นๆ
  • ใช้วิธีการต่างๆ ของระบบ พรอมต์ และการกําหนดค่ารูปแบบตามแอตทริบิวต์ไคลเอ็นต์: เมื่อใช้ Remote Config กับ Google Analytics คุณจะสร้างเงื่อนไขตามแอตทริบิวต์ไคลเอ็นต์หรือกลุ่มเป้าหมายที่กําหนดเอง รวมถึงตั้งค่าพารามิเตอร์ต่างๆ ตามแอตทริบิวต์เหล่านี้ได้

    ตัวอย่างเช่น หากคุณใช้ Generative AI เพื่อมอบการสนับสนุนด้านเทคนิคในแอป คุณอาจต้องตั้งค่าวิธีการของระบบสำหรับแพลตฟอร์มแอปโดยเฉพาะเพื่อให้แน่ใจว่าผู้ใช้ Android, iOS และแพลตฟอร์มเว็บจะได้รับวิธีการที่ถูกต้อง

  • ปรับเปลี่ยนประสบการณ์การใช้งานในแบบของคุณสำหรับผู้ใช้แต่ละคน: ใช้Remote Configการปรับเปลี่ยนเฉพาะบุคคลเพื่อกำหนดการตั้งค่า Generative AI ที่ดีที่สุดให้กับผู้ใช้แต่ละรายโดยอัตโนมัติ

  • ควบคุมต้นทุน: ปรับจากระยะไกลว่าจะใช้โมเดล Generative AI ใด จะใช้บ่อยแค่ไหน และกำหนดค่าโทเค็นเอาต์พุตสูงสุดแบบไดนามิกตามกลุ่มเป้าหมายของผู้ใช้เพื่อลดต้นทุนที่ไม่จำเป็น

  • เพิ่มประสิทธิภาพประสบการณ์การใช้งานแอปและผลลัพธ์: ใช้ A/B Testing กับ Remote Config ในแอป iOS, Android และ Flutter เพื่อทดสอบการเปลี่ยนแปลงพารามิเตอร์ Generative AI ในกลุ่มผู้ใช้ต่างๆ เพื่อดูว่าการเปลี่ยนแปลงส่งผลต่อเมตริกหลัก เช่น การคงผู้ใช้ไว้และรายได้อย่างไร

การใช้ Firebase Remote Config ในการตรวจสอบแอป Generative AI จะช่วยให้คุณสร้างแอปพลิเคชันที่ทำงานด้วยระบบ AI ที่ยืดหยุ่น ปลอดภัย และคุ้มค่า พร้อมทั้งมอบประสบการณ์การใช้งานที่ยอดเยี่ยมให้แก่ผู้ใช้

เพิ่ม Firebase Remote Config ลงในแอป

ในคู่มือโซลูชันนี้ คุณจะใช้ Firebase Remote Config เพื่ออัปเดตพารามิเตอร์ในแอป Android ที่ใช้ Vertex AI in Firebase SDK แบบไดนามิก คุณจะได้เรียนรู้วิธีต่อไปนี้

  • ดึงข้อมูลและเปิดใช้งานพารามิเตอร์ เช่น ชื่อรุ่นและวิธีการของระบบจาก Firebase Remote Config
  • อัปเดตการเรียกใช้ Gemini API เพื่อใช้พารามิเตอร์ที่ดึงข้อมูลแบบไดนามิก ซึ่งจะช่วยให้คุณสลับระหว่างรูปแบบต่างๆ หรือแก้ไขคำสั่งของระบบได้โดยไม่ต้องอัปเดตแอป
  • ควบคุมพารามิเตอร์จากระยะไกล ปรับลักษณะการทํางานและความสามารถของโมเดลตามต้องการ

ข้อกำหนดเบื้องต้น

คู่มือนี้จะถือว่าคุณคุ้นเคยกับการใช้ JavaScript เพื่อพัฒนาเว็บแอป คู่มือนี้ใช้ได้กับเฟรมเวิร์กทุกประเภท ก่อนเริ่มต้น โปรดตรวจสอบว่าคุณได้ทำสิ่งต่อไปนี้แล้ว

  • ทำตามคู่มือเริ่มต้นใช้งานสำหรับ Vertex AI in FirebaseSDK ตรวจสอบว่าคุณได้ทำสิ่งต่อไปนี้ทั้งหมดแล้ว

    1. ตั้งค่าโปรเจ็กต์ Firebase ใหม่หรือที่มีอยู่ รวมถึงใช้แพ็กเกจราคา Blaze และเปิดใช้ API ที่จําเป็น
    2. เชื่อมต่อแอปกับ Firebase ซึ่งรวมถึงการลงทะเบียนแอปและเพิ่มการกําหนดค่า Firebase ลงในแอป
    3. เพิ่ม SDK และเริ่มต้นบริการ Vertex AI และโมเดล Generative ในแอป
  • เปิดใช้ Google Analytics ในโปรเจ็กต์และเพิ่ม SDK ลงในแอป (จําเป็นสําหรับการกําหนดเป้าหมายแบบมีเงื่อนไข เช่น การตั้งค่าตําแหน่งบริการและโมเดลตามตําแหน่งของอุปกรณ์ไคลเอ็นต์)

ขั้นตอนที่ 1: ตั้งค่าพารามิเตอร์ในคอนโซล Firebase

สร้างRemote Configเทมเพลตไคลเอ็นต์และกำหนดค่าพารามิเตอร์และค่าเพื่อดึงข้อมูลและใช้ในแอป

  1. เปิดคอนโซล Firebase แล้วขยายเรียกใช้จากเมนูการนำทาง แล้วเลือกRemote Config
  2. ตรวจสอบว่าได้เลือกไคลเอ็นต์จากตัวเลือก ไคลเอ็นต์/เซิร์ฟเวอร์ที่ด้านบนของหน้า Remote Config
    • หากนี่เป็นการใช้เทมเพลตไคลเอ็นต์ Remote Config เป็นครั้งแรก ให้คลิกสร้างการกําหนดค่า แผงสร้างพารามิเตอร์แรกจะปรากฏขึ้น
    • หากไม่ได้ใช้เทมเพลต Remote Config เป็นครั้งแรก ให้คลิกเพิ่มพารามิเตอร์
  3. กําหนดพารามิเตอร์ Remote Config ต่อไปนี้

    ชื่อพารามิเตอร์ คำอธิบาย ประเภท ค่าเริ่มต้น
    model_name ชื่อรุ่น ดูรายการชื่อโมเดลล่าสุดที่จะใช้ในโค้ดได้ที่ชื่อโมเดลที่ใช้ได้ สตริง gemini-1.5-flash
    system_instructions คำสั่งของระบบเปรียบเสมือน "ช่วงนำหน้า" ที่คุณเพิ่มก่อนที่โมเดลจะแสดงคำสั่งเพิ่มเติมจากผู้ใช้ปลายทางเพื่อส่งผลต่อลักษณะการทํางานของโมเดล โดยอิงตามความต้องการและกรณีการใช้งานที่เฉพาะเจาะจง สตริง You are a helpful assistant who knows everything there is to know about Firebase!
    prompt พรอมต์เริ่มต้นเพื่อใช้กับฟีเจอร์ Generative AI สตริง I am a developer who wants to know more about Firebase!
    vertex_location ควบคุมตำแหน่ง (ไม่บังคับ) เพื่อเรียกใช้บริการ Vertex AI และเข้าถึงโมเดล คุณสามารถตั้งค่าเงื่อนไขเพื่อกําหนดค่าตัวเลือกนี้ตามตําแหน่งของลูกค้าที่ Google Analytics ตรวจพบ สตริง us-central1
  4. เมื่อเพิ่มพารามิเตอร์เสร็จแล้ว ให้คลิกเผยแพร่การเปลี่ยนแปลง หากเทมเพลตนี้ไม่ใช่เทมเพลต Remote Config ใหม่ ให้ตรวจสอบการเปลี่ยนแปลงแล้วคลิกเผยแพร่การเปลี่ยนแปลงอีกครั้ง

ขั้นตอนที่ 2: เพิ่มและเริ่มต้น Remote Config SDK

เพิ่มและเริ่มต้น Remote Config SDK

  1. เปิดโค้ดในเครื่องมือแก้ไขข้อความและนําเข้า Remote Config

    import { getRemoteConfig } from 'firebase/remote-config';
    
  2. ในฟังก์ชันหลักและหลังจากเริ่มต้นแอป Firebase แล้ว ให้เริ่มต้น Remote Config ดังนี้สำหรับ Vertex AI in Firebase SDK

      // Initialize Remote Config and get a reference to the service
      const remoteConfig = getRemoteConfig(app);
    
  3. กำหนดช่วงเวลาการดึงข้อมูลขั้นต่ำ ในตัวอย่างนี้ ช่วงเวลาการดึงข้อมูลเริ่มต้นคือ 3600 วินาที แต่เราขอแนะนําให้คุณตั้งค่าช่วงเวลาการดึงข้อมูลขั้นต่ำที่ค่อนข้างต่ำในโค้ดระหว่างการพัฒนา

    remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
    

ขั้นตอนที่ 3: ตั้งค่าพารามิเตอร์ในแอป

คุณควรตั้งค่าพารามิเตอร์เริ่มต้นในแอปในออบเจ็กต์ Remote Config เพื่อให้แอปทำงานได้ก่อนที่จะเชื่อมต่อกับแบ็กเอนด์ Remote Config หากการเข้าถึงเครือข่ายไคลเอ็นต์ถูกขัดจังหวะ และ/หรือไม่มีการกําหนดค่าในแบ็กเอนด์

ในตัวอย่างนี้ คุณจะตั้งค่าเริ่มต้นสำหรับชื่อรุ่น วิธีการของระบบ ข้อความแจ้งผู้ใช้ และตำแหน่ง Vertex AI ด้วยตนเอง

// Set default Remote Config parameter values
remoteConfig.defaultConfig = {
  model_name: 'gemini-1.5-flash',
  system_instructions:
    'You are a helpful assistant who knows everything there is to know about Firebase!',
  prompt: 'I am a developer who wants to know more about Firebase!',
  vertex_location: 'us-central1',
};

ขั้นตอนที่ 4: ดึงข้อมูลและเปิดใช้งานค่า

  1. เพิ่ม getValue และ fetchAndActivate ในการนําเข้า

    import { getValue, fetchAndActivate } from 'firebase/remote-config';
    
  2. หลังจากโค้ดที่คุณเพิ่มเพื่อกําหนดค่า Remote Config เริ่มต้นแล้ว ให้ดึงข้อมูลและเปิดใช้งานการกําหนดค่า จากนั้นกําหนดค่าให้กับค่าคงที่ modelName, systemInstructions, prompt และ vertexLocation

    // Fetch and activate Remote Config.
    try {
      await fetchAndActivate(remoteConfig);
    } catch(err) {
      console.error('Remote Config fetch failed', err);
    }
    
    console.log('Remote Config fetched.');
    
    // Assign Remote Config values.
    const modelName = getValue(remoteConfig, 'model_name').asString();
    const systemInstructions = getValue(remoteConfig, 'system_instructions').asString();
    const prompt = getValue(remoteConfig, 'prompt').asString();
    const vertexLocation = getValue(remoteConfig, 'vertex_location').asString();
    

ขั้นตอนที่ 5: อัปเดตการเรียกใช้ Vertex AI ให้ใช้ค่า Remote Config

เมื่อกําหนดค่า Remote Config เสร็จแล้ว ให้อัปเดตโค้ดเพื่อแทนที่ค่าที่เขียนตายตัวด้วยค่าที่มาจาก Remote Config ตัวอย่างเช่น หากใช้ตัวอย่างที่ใช้ในเริ่มต้นใช้งาน Gemini API ใช้ Vertex AI ใน Firebase SDK คุณจะต้องอัปเดตตัวอย่างดังนี้

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Vertex AI service
// Optionally specify a location in which to run the service and access the model
const vertexAI = getVertexAI(firebaseApp, { location: vertexLocation });

// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
const model = getGenerativeModel(vertexAI, {
  model: modelName,
  systemInstruction: systemInstruction
});

// Wrap in an async function so you can use await
async function run() {
  // Provide a prompt that contains text
  const userPrompt = prompt;

  // To generate text output, call generateContent with the text input
  const result = await model.generateContent(userPrompt);

  const response = result.response;
  const text = response.text();
  console.log(text);
}

ขั้นตอนที่ 6: เรียกใช้แอป

เรียกใช้แอปและยืนยันว่าใช้งานได้ ทำการเปลี่ยนแปลงการกําหนดค่าจากหน้า Remote Config ในคอนโซล Firebase เผยแพร่การเปลี่ยนแปลง และตรวจสอบผลลัพธ์

ขั้นตอนถัดไป

  • เรียนรู้เพิ่มเติมเกี่ยวกับ Remote Config
  • เพิ่ม Google Analytics ลงในโค้ดเพื่อเปิดใช้การกำหนดเป้าหมาย