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


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

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

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

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

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

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

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

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

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

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

  • SDK "Vertex AI in Firebase" รุ่นเก่าใช้ได้เฉพาะVertex AI Gemini API

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

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

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

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

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

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

  2. ในFirebase Console ให้ไปที่หน้า Firebase AI Logic

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

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

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

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

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

Swift

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

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

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

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

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

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

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

Kotlin

  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:33.16.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 ให้เพิ่มการอ้างอิงสำหรับไลบรารี 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:33.16.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 ให้เพิ่มการอ้างอิงสำหรับไลบรารี 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 FirebaseAI

// 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-2.5-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-2.5-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-2.5-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-2.5-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-2.5-flash');

Unity

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

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

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

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

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

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

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

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

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

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

  • หมดเวลา

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

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

Swift

  • การแจงนับ

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

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

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

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

  • ส่วนเนื้อหา

    • นำโปรโตคอล 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 ให้เป็นค่าว่างได้
  • คลาสระยะเวลา

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

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

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

    • เปลี่ยนพร็อพเพอร์ตี้ 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 ให้เป็นค่าว่างได้
  • คลาสระยะเวลา

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

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

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

    • เปลี่ยนพร็อพเพอร์ตี้ 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 (แทน Vertex AI Gemini API)

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

    • นำการใช้งาน 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

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

ดูวิธี เริ่มต้นใช้งาน Firebase AI Logic SDK สำหรับ 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 ที่จำเป็นใน รายการที่อนุญาตสำหรับผลิตภัณฑ์ที่คุณพยายามใช้

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

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


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