ย้ายข้อมูลไปยัง Firebase AI Logic SDK จาก Vertex AI ใน Firebase SDK เวอร์ชันตัวอย่าง


Firebase AI Logic และ SDK ของไคลเอ็นต์เดิมชื่อ "Vertex AI in Firebase" เพื่อให้สอดคล้องกับบริการและฟีเจอร์ที่ขยายเพิ่มขึ้น (เช่น ตอนนี้เรามี Gemini Developer API!) เราจึงเปลี่ยนชื่อและจัดแพ็กเกจบริการเป็น Firebase AI Logic

หากต้องการเข้าถึงโมเดล Generative AI ของ Google โดยตรงจากแอปบนอุปกรณ์เคลื่อนที่หรือเว็บแอปอย่างปลอดภัย ตอนนี้คุณสามารถเลือกผู้ให้บริการ "Gemini API" ได้แล้ว ไม่ว่าจะเป็น Agent Platform Gemini API (formerly Vertex AI) ที่มีให้บริการมานานหรือ Gemini Developer API ในตอนนี้ ซึ่งหมายความว่าตอนนี้คุณมีตัวเลือก ในการใช้ Gemini Developer API ซึ่งมีระดับแบบไม่มีค่าใช้จ่าย พร้อมโควต้าและขีดจำกัดอัตราที่สมเหตุสมผล

ภาพรวมของขั้นตอนการย้ายข้อมูลไปยัง Firebase AI Logic SDK

  • ขั้นตอนที่ 1: เลือกผู้ให้บริการ "Gemini API" ที่ดีที่สุดสำหรับแอปและ Use Case ของคุณ

  • ขั้นตอนที่ 2: เปิดใช้ API ที่จำเป็น

  • ขั้นตอนที่ 3: อัปเดตไลบรารีที่ใช้ในแอป

  • ขั้นตอนที่ 4: อัปเดตการเริ่มต้นในแอป

  • ขั้นตอนที่ 5: อัปเดตรหัสตามฟีเจอร์ที่คุณใช้

ขั้นตอนที่ 1: เลือกผู้ให้บริการ "Gemini API" ที่ดีที่สุดสำหรับแอปของคุณ

การย้ายข้อมูลนี้ช่วยให้คุณเลือกผู้ให้บริการ "Gemini API" ได้ดังนี้

  • SDK "Vertex AI in Firebase" รุ่นเก่าใช้ได้เฉพาะ Agent Platform Gemini API (formerly Vertex AI) เท่านั้น

  • SDK Firebase AI Logic ใหม่ช่วยให้คุณเลือกผู้ให้บริการ "Gemini API" ที่ต้องการเรียกใช้โดยตรงจากแอปบนอุปกรณ์เคลื่อนที่หรือเว็บแอปได้ ไม่ว่าจะเป็น Gemini Developer API หรือ Agent Platform Gemini API (formerly Vertex AI)

ตรวจสอบความแตกต่างระหว่างการใช้ผู้ให้บริการ Gemini API ทั้ง 2 ราย โดยเฉพาะในแง่ของฟีเจอร์ที่รองรับ ราคา และการจำกัดอัตราคำขอ ตัวอย่างเช่น Gemini Developer API ไม่รองรับการระบุไฟล์โดยใช้ URL ของ Cloud Storage แต่อาจเป็นตัวเลือกที่ดีหากคุณต้องการใช้ประโยชน์จากระดับที่ไม่มีค่าใช้จ่ายและโควต้าที่สมเหตุสมผล

ขั้นตอนที่ 2: เปิดใช้ API ที่จำเป็น

ตรวจสอบว่าได้เปิดใช้ API ที่จำเป็นทั้งหมดในโปรเจ็กต์ Firebase เพื่อใช้ผู้ให้บริการ "Gemini API" ที่คุณเลือก

โปรดทราบว่าคุณสามารถเปิดใช้ผู้ให้บริการ API ทั้ง 2 รายในโปรเจ็กต์พร้อมกันได้

  1. ลงชื่อเข้าใช้คอนโซล Firebase แล้วเลือกโปรเจ็กต์ Firebase

  2. ในคอนโซล Firebase ให้ไปที่บริการ AI > AI Logic

  3. คลิกเริ่มต้นใช้งานเพื่อเปิดตัวเวิร์กโฟลว์แบบมีคำแนะนำที่จะช่วยคุณตั้งค่า API ที่จำเป็น และทรัพยากรสำหรับโปรเจ็กต์

  4. เลือกผู้ให้บริการ "Gemini API" ที่ต้องการใช้กับ Firebase AI Logic SDK คุณตั้งค่าและใช้ผู้ให้บริการ API รายอื่นในภายหลังได้ทุกเมื่อหากต้องการ

  5. อ่านคำแนะนำในการย้ายข้อมูลนี้ต่อเพื่ออัปเดตไลบรารีและการเริ่มต้นในแอป

ขั้นตอนที่ 3: อัปเดตไลบรารีที่ใช้ในแอป

อัปเดตฐานของโค้ดของแอปเพื่อใช้ไลบรารี Firebase AI Logic

Swift

  1. ใน Xcode ขณะที่โปรเจ็กต์แอปเปิดอยู่ ให้อัปเดตแพ็กเกจ Firebase เป็นเวอร์ชัน 12.5.0 ขึ้นไปโดยใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้

    • ตัวเลือกที่ 1: อัปเดตแพ็กเกจทั้งหมดโดยไปที่ ไฟล์ > แพ็กเกจ > อัปเดตเป็นเวอร์ชันแพ็กเกจล่าสุด

    • ตัวเลือกที่ 2: อัปเดต Firebase ทีละรายการ โดยไปที่แพ็กเกจ Firebase ในส่วนที่ชื่อว่าทรัพยากร Dependency ของแพ็กเกจ คลิกขวาที่แพ็กเกจ Firebase แล้วเลือกอัปเดตแพ็กเกจ

  2. ตรวจสอบว่าแพ็กเกจ Firebase แสดงเป็น v12.5.0 ขึ้นไปแล้ว หากไม่เป็นเช่นนั้น ให้ตรวจสอบว่าข้อกำหนดของแพ็กเกจที่คุณระบุ อนุญาตให้อัปเดตเป็น v12.5.0 ขึ้นไป

  3. เลือกเป้าหมายของแอปในเครื่องมือแก้ไขโปรเจ็กต์ แล้วไปที่ส่วนเฟรมเวิร์ก ไลบรารี และเนื้อหาที่ฝัง

  4. เพิ่มไลบรารีใหม่: เลือกปุ่ม + แล้วเพิ่ม FirebaseAILogic จากแพ็กเกจ Firebase

  5. หลังจากย้ายข้อมูลแอปเสร็จแล้ว (ดูส่วนที่เหลือในคู่มือนี้) อย่าลืมนำไลบรารีเก่าออก
    เลือก FirebaseVertexAI-Preview แล้วกดปุ่ม —

Kotlin

  1. ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ <project>/<app-module>/build.gradle.kts หรือ <project>/<app-module>/build.gradle) ให้แทนที่ทรัพยากร Dependency เก่า (หากมี) ด้วยทรัพยากร Dependency ต่อไปนี้

    โปรดทราบว่าการย้ายข้อมูลฐานของโค้ดของแอป (ดูส่วนที่เหลือในคู่มือนี้) อาจง่ายกว่าการลบทรัพยากร Dependency เก่า

    // BEFORE
    dependencies {
      implementation("com.google.firebase:firebase-vertexai:16.0.0-betaXX")
    }
    
    
    // AFTER
    dependencies {
      // Import the BoM for the Firebase platform
      implementation(platform("com.google.firebase:firebase-bom:35.0.0"))
    
      // Add the dependency for the Firebase AI Logic library
      // When using the BoM, you don't specify versions in Firebase library dependencies
      implementation("com.google.firebase:firebase-ai")
    }
  2. ซิงค์โปรเจ็กต์ Android กับไฟล์ Gradle

โปรดทราบว่าหากเลือกที่จะไม่ใช้ Firebase Android BoM ให้เพิ่มทรัพยากร Dependency สำหรับไลบรารี firebase-ai และยอมรับเวอร์ชันล่าสุดที่ Android Studio แนะนำ

Java

  1. ในไฟล์ Gradle ระดับโมดูล (ระดับแอป) (โดยปกติคือ <project>/<app-module>/build.gradle.kts หรือ <project>/<app-module>/build.gradle) ให้แทนที่ทรัพยากร Dependency เดิม (หากมี) ด้วยรายการต่อไปนี้

    โปรดทราบว่าการย้ายข้อมูลฐานของโค้ดของแอป (ดูส่วนที่เหลือในคู่มือนี้) อาจง่ายกว่าการลบทรัพยากร Dependency เก่า

    // BEFORE
    dependencies {
      implementation("com.google.firebase:firebase-vertexai:16.0.0-betaXX")
    }
    
    
    // AFTER
    dependencies {
      // Import the BoM for the Firebase platform
      implementation(platform("com.google.firebase:firebase-bom:35.0.0"))
    
      // Add the dependency for the Firebase AI Logic library
      // When using the BoM, you don't specify versions in Firebase library dependencies
      implementation("com.google.firebase:firebase-ai")
    }
  2. ซิงค์โปรเจ็กต์ Android กับไฟล์ Gradle

โปรดทราบว่าหากเลือกที่จะไม่ใช้ Firebase Android BoM ให้เพิ่มทรัพยากร Dependency สำหรับไลบรารี firebase-ai และยอมรับเวอร์ชันล่าสุดที่ Android Studio แนะนำ

Web

  1. ดาวน์โหลด Firebase JS SDK สำหรับเว็บเวอร์ชันล่าสุดโดยใช้ npm ดังนี้

    npm i firebase@latest

    หรือ

    yarn add firebase@latest
  2. ไม่ว่าคุณจะนำเข้าไลบรารีที่ใด ให้อัปเดตคำสั่งนำเข้าเพื่อใช้ firebase/aiแทน

    โปรดทราบว่าการย้ายข้อมูลฐานของโค้ดของแอป (ดูส่วนที่เหลือในคู่มือนี้) ก่อนลบการนําเข้าเก่าอาจทําได้ง่ายกว่า

    // BEFORE
    import { initializeApp } from "firebase/app";
    import { getVertexAI, getGenerativeModel } from "firebase/vertexai-preview";
    
    
    // AFTER
    import { initializeApp } from "firebase/app";
    import { getAI, getGenerativeModel } from "firebase/ai";

Dart

  1. อัปเดตเพื่อใช้แพ็กเกจ firebase_ai ในไฟล์ pubspec.yaml โดยเรียกใช้คำสั่งต่อไปนี้จากไดเรกทอรีโปรเจ็กต์ Flutter

    flutter pub add firebase_ai
  2. สร้างโปรเจ็กต์ Flutter อีกครั้งโดยทำดังนี้

    flutter run
  3. หลังจากย้ายข้อมูลแอปเสร็จแล้ว (ดูส่วนที่เหลือในคำแนะนำนี้) อย่าลืมลบแพ็กเกจเก่า

    flutter pub remove firebase_vertexai

Unity

การสนับสนุนสำหรับ Unity ไม่พร้อมให้บริการจาก "Vertex AI in Firebase"

ดูวิธีเริ่มต้นใช้งาน Firebase AI Logic SDK สำหรับ Unity

ขั้นตอนที่ 4: อัปเดตการเริ่มต้นในแอป

คลิกผู้ให้บริการ Gemini API เพื่อดูเนื้อหาและโค้ดเฉพาะของผู้ให้บริการในหน้านี้

อัปเดตวิธีเริ่มต้นบริการสำหรับผู้ให้บริการ API ที่เลือกและสร้างอินสแตนซ์ GenerativeModel

Swift


import FirebaseAILogic

// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())

// Create a `GenerativeModel` instance with a model that supports your use case
let model = ai.generativeModel(modelName: "gemini-3.8-flash")

Kotlin


// Initialize the Gemini Developer API backend service.
// Create a `GenerativeModel` instance with a model that supports your use case.
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
                        .generativeModel("gemini-3.8-flash")

Java


// Initialize the Gemini Developer API backend service.
// Create a `GenerativeModel` instance with a model that supports your use case.
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
        .generativeModel("gemini-3.8-flash");

// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(ai);

Web


import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend } from "firebase/ai";

// TODO(developer): Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

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

// Initialize the Gemini Developer API backend service.
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Create a `GenerativeModel` instance with a model that supports your use case.
const model = getGenerativeModel(ai, { model: "gemini-3.8-flash" });

Dart


import 'package:firebase_ai/firebase_ai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

// Initialize FirebaseApp
await Firebase.initializeApp(
  options: DefaultFirebaseOptions.currentPlatform,
);

// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
final model =
      FirebaseAI.googleAI().generativeModel(model: 'gemini-3.8-flash');

Unity

ไม่ได้รับการสนับสนุนสำหรับ Unity จาก "Vertex AI in Firebase"

ดูวิธีเริ่มต้นใช้งาน Firebase AI Logic SDK สำหรับ Unity

โปรดทราบว่าคุณอาจไม่ได้สร้างอินสแตนซ์ GenerativeModel เสมอไป ทั้งนี้ขึ้นอยู่กับความสามารถที่คุณใช้ หากต้องการ สตรีมอินพุตและเอาต์พุตโดยใช้ Gemini Live API ให้สร้างอินสแตนซ์ LiveModel

ขั้นตอนที่ 5: อัปเดตโค้ดตามฟีเจอร์ที่คุณใช้

ขั้นตอนนี้อธิบายการเปลี่ยนแปลงที่อาจจำเป็นต้องดำเนินการ ทั้งนี้ขึ้นอยู่กับฟีเจอร์ที่คุณใช้

  • หากคุณใช้ URL Cloud Storage และเปลี่ยนไปใช้ Gemini Developer API ในการย้ายข้อมูลนี้ คุณต้องอัปเดตคำขอมัลติโมดัลให้รวมไฟล์เป็นข้อมูลในบรรทัด (หรือใช้ URL ของ YouTube สำหรับวิดีโอ)

  • เราได้เปิดตัวการเปลี่ยนแปลงหลายอย่างสำหรับ SDK "Vertex AI in Firebase" เวอร์ชัน GA คุณต้องทำการเปลี่ยนแปลงแบบเดียวกันนี้เพื่อใช้ SDK ของ Firebase AI Logic ดูรายการต่อไปนี้เพื่อดูการเปลี่ยนแปลง ที่คุณอาจต้องทําในโค้ดเพื่อรองรับการใช้ Firebase AI Logic SDK

ต้องระบุสำหรับทุกภาษาและแพลตฟอร์ม

  • การเรียกใช้ฟังก์ชัน
    หากคุณใช้ฟีเจอร์นี้ก่อน GA คุณจะต้องอัปเดตวิธีกำหนดสคีมา เราขอแนะนำให้อ่านคู่มือการเรียกใช้ฟังก์ชันที่อัปเดตแล้วเพื่อดูวิธีเขียนประกาศฟังก์ชัน

  • การสร้างเอาต์พุตที่มีโครงสร้าง (เช่น JSON) โดยใช้ responseSchema
    หากคุณใช้ฟีเจอร์นี้ก่อน GA คุณจะต้องอัปเดตวิธีกำหนดสคีมา เราขอแนะนำให้อ่านคู่มือเอาต์พุตที่มีโครงสร้างฉบับใหม่เพื่อดูวิธีเขียนสคีมา JSON

  • Timeout

    • เปลี่ยนระยะหมดเวลาเริ่มต้นสำหรับคำขอเป็น 180 วินาที

ต้องระบุตามแพลตฟอร์มหรือภาษา

Swift

  • การแจงนับ

    • แทนที่ประเภท enum ส่วนใหญ่ด้วย struct ที่มีตัวแปรแบบคงที่ การเปลี่ยนแปลงนี้ช่วยให้การพัฒนา API มีความยืดหยุ่นมากขึ้นในลักษณะที่เข้ากันได้แบบย้อนหลัง เมื่อใช้คำสั่ง switch ตอนนี้คุณต้องใส่เคส default: เพื่อครอบคลุมค่าที่ไม่รู้จักหรือไม่ได้รับการจัดการ รวมถึงค่าใหม่ที่เพิ่มลงใน SDK ในอนาคต

    • เปลี่ยนชื่อการแจงนับ BlockThreshold เป็น HarmBlockThreshold โดยตอนนี้ประเภทนี้เป็น struct

    • นำเคส unknown และ unspecified ออกจากการแจงนับต่อไปนี้ (ตอนนี้เป็น struct) ได้แก่ HarmCategory, HarmBlockThreshold, HarmProbability, BlockReason และ FinishReason

    • แทนที่การแจงนับ ModelContent.Part ด้วยโปรโตคอลที่ชื่อ Part เพื่อให้เพิ่มประเภทใหม่ได้ในลักษณะที่เข้ากันได้แบบย้อนหลัง การเปลี่ยนแปลงนี้ อธิบายไว้อย่างละเอียดในส่วนชิ้นส่วนเนื้อหา

  • Content parts

    • นำโปรโตคอล ThrowingPartsRepresentable ออก และลดความซับซ้อนของ ตัวเริ่มต้นสำหรับ ModelContent เพื่อหลีกเลี่ยงข้อผิดพลาดของคอมไพเลอร์ที่อาจเกิดขึ้น รูปภาพที่เข้ารหัสไม่ถูกต้องจะยังคงแสดงข้อผิดพลาดเมื่อนำไปใช้ใน generateContent

    • แทนที่เคส ModelContent.Part ด้วยประเภท struct ต่อไปนี้ที่สอดคล้องกับโปรโตคอล Part

      • .text ไปยัง TextPart
      • .data ไปยัง InlineDataPart
      • .fileData ไปยัง FileDataPart
      • .functionCall ไปยัง FunctionCallPart
      • .functionResponse ไปยัง FunctionResponsePart
  • หมวดหมู่ความเสี่ยง

    • เปลี่ยน HarmCategory ไม่ให้ฝังอยู่ในประเภท SafetySetting อีกต่อไป หากคุณอ้างอิงถึง SafetySetting.HarmCategory คุณสามารถใช้ HarmCategory แทนได้
  • ความคิดเห็นเกี่ยวกับความปลอดภัย

    • นำประเภท SafetyFeedback ออกเนื่องจากไม่ได้ใช้ในคำตอบใดๆ
  • ข้อมูลเมตาของการอ้างอิง

    • เปลี่ยนชื่อพร็อพเพอร์ตี้ citationSources เป็น citations ใน CitationMetadata
  • จำนวนอักขระที่เรียกเก็บเงินได้ทั้งหมด

    • เปลี่ยนพร็อพเพอร์ตี้ totalBillableCharacters ใน CountTokensResponse ให้เป็นแบบไม่บังคับเพื่อแสดงถึงสถานการณ์ที่ไม่มีการส่งอักขระ
  • คำตอบของผู้สมัคร

    • เปลี่ยนชื่อ CandidateResponse เป็น Candidate เพื่อให้ตรงกับแพลตฟอร์มอื่นๆ
  • การกำหนดค่าการสร้าง

    • เปลี่ยนพร็อพเพอร์ตี้สาธารณะของ GenerationConfig เป็น internal แล้ว โดยทั้งหมดจะยังคงกำหนดค่าได้ในตัวเริ่มต้น

Kotlin

  • การแจงนับ

    • แทนที่คลาส enum และคลาส sealed ด้วยคลาสปกติแล้ว การเปลี่ยนแปลงนี้ช่วยให้มีความยืดหยุ่นมากขึ้นในการพัฒนา API ในลักษณะที่เข้ากันได้แบบย้อนหลัง

    • เปลี่ยนชื่อการแจงนับ BlockThreshold เป็น HarmBlockThreshold แล้ว

    • นำค่าออกจากรายการต่อไปนี้ HarmBlockThreshold, HarmProbability, HarmSeverity, BlockReason และ FinishReason

  • เมธอด Blob

    • เปลี่ยนชื่อเมธอดทั้งหมดที่มี Blob เป็นส่วนหนึ่งของชื่อเพื่อใช้ InlineData แทน
  • การตั้งค่าความปลอดภัย

    • เปลี่ยนช่อง method ให้เป็นค่า Null ได้
  • คลาสระยะเวลา

    • นำการใช้งานคลาส Duration ของ Kotlin ออกทั้งหมด และแทนที่ด้วย long การเปลี่ยนแปลงนี้ช่วยให้ทำงานร่วมกับ Java ได้ดียิ่งขึ้น
  • ข้อมูลเมตาของการอ้างอิง

    • รวมฟิลด์ทั้งหมดที่ประกาศไว้ก่อนหน้านี้ใน CitationMetadata ไว้ใน คลาสใหม่ที่ชื่อ Citation ดูการอ้างอิงได้ในรายการชื่อ citations ใน CitationMetadata การเปลี่ยนแปลงนี้ช่วยให้ประเภทต่างๆ สอดคล้องกันมากขึ้นในแพลตฟอร์มต่างๆ
  • นับโทเค็น

    • เปลี่ยนช่อง totalBillableCharacters ให้เป็นค่า Null ได้
  • จำนวนอักขระที่เรียกเก็บเงินได้ทั้งหมด

    • เปลี่ยนพร็อพเพอร์ตี้ totalBillableCharacters ใน CountTokensResponse ให้เป็นแบบไม่บังคับเพื่อแสดงถึงสถานการณ์ที่ไม่มีการส่งอักขระ
  • การสร้างอินสแตนซ์โมเดล

    • ย้ายพารามิเตอร์ requestOptions ไปไว้ที่ท้ายรายการพารามิเตอร์เพื่อให้สอดคล้องกับแพลตฟอร์มอื่นๆ
  • Live API

    • นำค่า UNSPECIFIED สำหรับคลาส enum ResponseModality ออกแล้ว แต่ให้ระบุองค์กรใน null

    • เปลี่ยนชื่อ LiveGenerationConfig.setResponseModalities เป็น LiveGenerationConfig.setResponseModality แล้ว

    • นำคลาส LiveContentResponse.Status ออก และแทนที่ด้วยการฝังฟิลด์สถานะเป็นพร็อพเพอร์ตี้ของ LiveContentResponse

    • นำคลาส LiveContentResponse ออก และแทนที่ด้วย คลาสย่อยของ LiveServerMessage ที่ตรงกับคำตอบจาก โมเดล

    • เปลี่ยน LiveModelFutures.connect เป็นส่งคืน ListenableFuture<LiveSessionFutures> แทน ListenableFuture<LiveSession>

Java

  • การแจงนับ

    • แทนที่คลาส enum และคลาส sealed ด้วยคลาสปกติแล้ว การเปลี่ยนแปลงนี้ช่วยให้มีความยืดหยุ่นมากขึ้นในการพัฒนา API ในลักษณะที่เข้ากันได้แบบย้อนหลัง

    • เปลี่ยนชื่อการแจงนับ BlockThreshold เป็น HarmBlockThreshold แล้ว

    • นำค่าออกจากรายการต่อไปนี้ HarmBlockThreshold, HarmProbability, HarmSeverity, BlockReason และ FinishReason

  • เมธอด Blob

    • เปลี่ยนชื่อเมธอดทั้งหมดที่มี Blob เป็นส่วนหนึ่งของชื่อเพื่อใช้ InlineData แทน
  • การตั้งค่าความปลอดภัย

    • เปลี่ยนช่อง method ให้เป็นค่า Null ได้
  • คลาสระยะเวลา

    • นำการใช้งานคลาส Duration ของ Kotlin ออกทั้งหมด และแทนที่ด้วย long การเปลี่ยนแปลงนี้ช่วยให้ทำงานร่วมกับ Java ได้ดียิ่งขึ้น
  • ข้อมูลเมตาของการอ้างอิง

    • รวมฟิลด์ทั้งหมดที่ประกาศไว้ก่อนหน้านี้ใน CitationMetadata ไว้ใน คลาสใหม่ที่ชื่อ Citation ดูการอ้างอิงได้ในรายการชื่อ citations ใน CitationMetadata การเปลี่ยนแปลงนี้ช่วยให้ประเภทต่างๆ สอดคล้องกันมากขึ้นในแพลตฟอร์มต่างๆ
  • นับโทเค็น

    • เปลี่ยนช่อง totalBillableCharacters ให้เป็นค่า Null ได้
  • จำนวนอักขระที่เรียกเก็บเงินได้ทั้งหมด

    • เปลี่ยนพร็อพเพอร์ตี้ totalBillableCharacters ใน CountTokensResponse ให้เป็นแบบไม่บังคับเพื่อแสดงถึงสถานการณ์ที่ไม่มีการส่งอักขระ
  • การสร้างอินสแตนซ์โมเดล

    • ย้ายพารามิเตอร์ requestOptions ไปไว้ที่ท้ายรายการพารามิเตอร์เพื่อให้สอดคล้องกับแพลตฟอร์มอื่นๆ
  • Live API

    • นำค่า UNSPECIFIED สำหรับคลาส enum ResponseModality ออกแล้ว แต่ให้ระบุองค์กรใน null

    • เปลี่ยนชื่อ LiveGenerationConfig.setResponseModalities เป็น LiveGenerationConfig.setResponseModality แล้ว

    • นำคลาส LiveContentResponse.Status ออก และแทนที่ด้วยการฝังฟิลด์สถานะเป็นพร็อพเพอร์ตี้ของ LiveContentResponse

    • นำคลาส LiveContentResponse ออก และแทนที่ด้วย คลาสย่อยของ LiveServerMessage ที่ตรงกับคำตอบจาก โมเดล

    • เปลี่ยน LiveModelFutures.connect เป็นส่งคืน ListenableFuture<LiveSessionFutures> แทน ListenableFuture<LiveSession>

  • เปลี่ยนวิธีการสร้าง Java ต่างๆ เพื่อให้ส่งคืนอินสแตนซ์ของคลาสอย่างถูกต้องแทนที่จะเป็น void

Web

  • การแจงนับ

    • นำค่าออกจากรายการแจกแจงต่อไปนี้ HarmCategory, BlockThreshold, HarmProbability, HarmSeverity, BlockReason และ FinishReason
  • เหตุผลที่ถูกบล็อก

    • เปลี่ยน blockReason ใน PromptFeedback เป็นไม่บังคับ

การเปลี่ยนแปลงที่จำเป็นเฉพาะในกรณีที่คุณเริ่มใช้ Gemini Developer API (แทน Agent Platform Gemini API (formerly Vertex AI)) มีดังนี้

  • การตั้งค่าความปลอดภัย

    • นำการใช้งาน SafetySetting.method ที่ไม่รองรับออก
  • ข้อมูลในบรรทัด

    • นำการใช้งาน InlineDataPart.videoMetadata ที่ไม่รองรับออก

Dart

  • การแจงนับ

    • นำค่าออกจากรายการต่อไปนี้ HarmCategory, HarmProbability, BlockReason และ FinishReason
  • ส่วนข้อมูล

    • เปลี่ยนชื่อ DataPart เป็น InlineDataPart และฟังก์ชัน static data เป็น inlineData เพื่อให้สอดคล้องกับแพลตฟอร์มอื่นๆ
  • ตัวเลือกคำขอ

    • นำ RequestOptions ออกเนื่องจาก timeout ไม่ทำงาน เราจะเพิ่มกลับเข้าไปในอนาคตอันใกล้ แต่จะย้ายไปที่ประเภท GenerativeModel เพื่อให้ตรงกับแพลตฟอร์มอื่นๆ
  • หยุดลำดับ

    • เปลี่ยนพารามิเตอร์ stopSequences ใน GenerationConfig ให้เป็น ไม่บังคับและให้ค่าเริ่มต้นเป็น null แทนที่จะเป็นอาร์เรย์ว่าง
  • การอ้างอิง

    • เปลี่ยนชื่อพร็อพเพอร์ตี้ citationSources เป็น citations ใน CitationMetadata แล้ว ประเภท CitationSource เปลี่ยนชื่อเป็น Citation เพื่อให้ตรงกับแพลตฟอร์มอื่นๆ
  • ประเภท วิธีการ และพร็อพเพอร์ตี้สาธารณะที่ไม่จำเป็น

    • นำประเภท เมธอด และพร็อพเพอร์ตี้ต่อไปนี้ออกเนื่องจากมีการเปิดเผยโดยไม่ตั้งใจ: defaultTimeout, CountTokensResponseFields, parseCountTokensResponse, parseEmbedContentResponse, parseGenerateContentResponse, parseContent, BatchEmbedContentsResponse, ContentEmbedding, EmbedContentRequest และ EmbedContentResponse
  • นับโทเค็น

    • นำฟิลด์เพิ่มเติมออกจากฟังก์ชัน countTokens ที่ไม่จำเป็นอีกต่อไป โดยคุณต้องระบุเพียง contents
  • การสร้างอินสแตนซ์ของโมเดล

    • ย้ายพารามิเตอร์ systemInstruction ไปไว้ท้ายรายการพารามิเตอร์ เพื่อให้สอดคล้องกับแพลตฟอร์มอื่นๆ
  • ฟังก์ชันการฝัง

    • นำฟังก์ชันการฝังที่ไม่รองรับ (embedContent และ batchEmbedContents) ออกจากโมเดล

Unity

"Vertex AI in Firebase" ไม่รองรับ Unity

ดูวิธีเริ่มต้นใช้งาน SDK ของ Firebase AI Logic สำหรับ Unity

ข้อผิดพลาดที่อาจเกิดขึ้นเกี่ยวกับการย้ายข้อมูล

ขณะย้ายข้อมูลเพื่อใช้ Firebase AI Logic เวอร์ชัน GA คุณอาจพบข้อผิดพลาดหากยังไม่ได้ทำการเปลี่ยนแปลงที่จำเป็นทั้งหมดตามที่อธิบายไว้ในคำแนะนำในการย้ายข้อมูลนี้

ข้อผิดพลาด 403: Requests to this API firebasevertexai.googleapis.com ... are blocked.

หากได้รับข้อผิดพลาด 403 ที่ระบุว่า Requests to this API firebasevertexai.googleapis.com ... are blocked. โดยปกติแล้วหมายความว่าคีย์ API ของ Firebase ใน ไฟล์หรือออบเจ็กต์การกำหนดค่า Firebase ไม่มี API ที่จำเป็นใน รายการที่อนุญาตสำหรับผลิตภัณฑ์ที่คุณพยายามใช้

ตรวจสอบว่าคีย์ Firebase API ที่แอปของคุณใช้มี API ที่จำเป็นทั้งหมดรวมอยู่ในรายการที่อนุญาต "ข้อจำกัด API" ของคีย์ สำหรับ Firebase AI Logic คีย์ API ของ Firebase ต้องมี API Firebase AI Logic อย่างน้อยในรายการที่อนุญาต ระบบควรเพิ่ม API นี้ลงในรายการที่อนุญาตของคีย์ API โดยอัตโนมัติเมื่อคุณเปิดใช้ API ที่จำเป็นในFirebaseคอนโซล

คุณดูคีย์ API ทั้งหมดได้ในแผง API และบริการ > ข้อมูลเข้าสู่ระบบ ในคอนโซล Google Cloud


แสดงความคิดเห็นเกี่ยวกับประสบการณ์การใช้งาน Firebase AI Logic