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

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

ในกรณีส่วนใหญ่ คุณอาจต้องการเปลี่ยนการตั้งค่าเหล่านี้ตามต้องการหรือตามสถานการณ์ต่างๆ ดังนี้

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

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

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

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

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

  1. เปิดคอนโซล Firebase แล้วขยาย Run และเลือก 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. กำหนดช่วงเวลาการดึงข้อมูลขั้นต่ำ ในตัวอย่างนี้ ช่วงเวลาการดึงข้อมูลเริ่มต้นคือ 3,600 วินาที แต่เราขอแนะนำให้คุณกำหนดช่วงเวลาการดึงข้อมูลขั้นต่ำภายในโค้ดระหว่างการพัฒนาในระดับที่ค่อนข้างต่ำ

    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 ลงในโค้ดเพื่อเปิดใช้การกำหนดเป้าหมาย