ย้ายข้อมูลไปยัง Firebase AI Logic SDK จาก SDK ของไคลเอ็นต์ Google AI


ไปที่วิธีการย้ายข้อมูลโดยตรง

เหตุผลที่ควรย้ายข้อมูลไปใช้ Firebase AI Logic SDK

คุณอาจเคยลองใช้ชุด SDK ไคลเอ็นต์บนอุปกรณ์เคลื่อนที่หรือเว็บชุดอื่นที่ ให้สิทธิ์เข้าถึง Gemini Developer API

SDK ของไคลเอ็นต์เหล่านั้นไม่ได้ผสานรวมเข้ากับระบบนิเวศ Firebase ที่แข็งแกร่งซึ่ง มีบริการที่สำคัญสำหรับแอปบนอุปกรณ์เคลื่อนที่และเว็บ ตอนนี้เราได้เลิกใช้งานแล้วเพื่อหันมาใช้ Firebase AI Logic Client SDK ซึ่งจะช่วยให้คุณเข้าถึง Gemini Developer API ได้

ฟีเจอร์ด้านความปลอดภัยสำหรับแอปบนอุปกรณ์เคลื่อนที่และเว็บแอป

สำหรับแอปบนอุปกรณ์เคลื่อนที่และเว็บแอป ความปลอดภัยเป็นสิ่งสำคัญและต้องพิจารณาเป็นพิเศษ เนื่องจากโค้ดของคุณ ซึ่งรวมถึงการเรียกใช้ Gemini API จะทำงานในสภาพแวดล้อมที่ไม่มีการป้องกัน คุณใช้ Firebase App Check เพื่อ ป้องกัน API จากการละเมิดโดยไคลเอ็นต์ที่ไม่ได้รับอนุญาตได้

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

ระบบนิเวศที่สร้างขึ้นสำหรับแอปบนอุปกรณ์เคลื่อนที่และเว็บแอป

Firebase คือแพลตฟอร์มของ Google สำหรับการพัฒนาแอปบนอุปกรณ์เคลื่อนที่และเว็บแอป การใช้ Firebase AI Logic หมายความว่าแอปของคุณอยู่ในระบบนิเวศที่มุ่งเน้น ความต้องการของแอปและนักพัฒนาแอปแบบฟูลสแต็ก เช่น

  • ตั้งค่าการกำหนดค่ารันไทม์แบบไดนามิกหรือสลับค่าในแอป (เช่น ชื่อและเวอร์ชันของโมเดล) โดยไม่ต้องเผยแพร่แอปเวอร์ชันใหม่โดยใช้ Firebase Remote Config

  • ใช้ Cloud Storage for Firebase เพื่อรวมไฟล์ขนาดใหญ่ในคำขอแบบมัลติโมดอล (หากใช้ Vertex AI Gemini API) Cloud Storage SDK ของไคลเอ็นต์จะช่วยคุณจัดการการอัปโหลดและดาวน์โหลดไฟล์ (แม้ใน สภาพเครือข่ายที่ไม่ดี) และเพิ่มความปลอดภัยให้กับข้อมูลของผู้ใช้ปลายทาง ดูข้อมูลเพิ่มเติมได้ใน คู่มือโซลูชันเกี่ยวกับการใช้ Cloud Storage for Firebase

  • จัดการข้อมูลที่มีโครงสร้างโดยใช้ SDK ฐานข้อมูลที่สร้างขึ้นสำหรับแอปบนอุปกรณ์เคลื่อนที่และเว็บแอป (เช่น Cloud Firestore)

ย้ายข้อมูลไปยัง Firebase AI Logic SDK

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

  • ขั้นตอนที่ 1: ตั้งค่าโปรเจ็กต์ Firebase ใหม่หรือที่มีอยู่ และเชื่อมต่อแอปกับ Firebase

  • ขั้นตอนที่ 2: เพิ่ม SDK ของ Firebase AI Logic ลงในแอป

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

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

ขั้นตอนที่ 1: ตั้งค่าโปรเจ็กต์ Firebase และเชื่อมต่อแอป

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

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

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

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

    คอนโซลจะเปิดใช้ API ที่จำเป็นและสร้างGeminiคีย์ API ใหม่เฉพาะในโปรเจ็กต์
    อย่าเพิ่มคีย์ API Gemini ใหม่นี้ลงในโค้ดเบสของแอป ดูข้อมูลเพิ่มเติม

  5. หากได้รับแจ้งในเวิร์กโฟลว์ของคอนโซล ให้ทำตามวิธีการบนหน้าจอเพื่อ ลงทะเบียนแอปและเชื่อมต่อกับ Firebase

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

ขั้นตอนที่ 2: เพิ่ม SDK ของ Firebase AI Logic ลงในแอป

เมื่อตั้งค่าโปรเจ็กต์ Firebase และเชื่อมต่อแอปกับ Firebase แล้ว (ดูขั้นตอนก่อนหน้า) ตอนนี้คุณก็เพิ่ม Firebase AI Logic SDK ลงในแอปได้แล้ว

Swift

ใช้ Swift Package Manager เพื่อติดตั้งและจัดการทรัพยากร Dependency ของ Firebase

Firebase AI Logic ไลบรารีให้สิทธิ์เข้าถึง API สำหรับการโต้ตอบกับโมเดล Gemini และ Imagen ไลบรารีนี้รวมอยู่ ใน Firebase SDK สำหรับแพลตฟอร์ม Apple (firebase-ios-sdk)

หากใช้ Firebase อยู่แล้ว โปรดตรวจสอบว่าแพ็กเกจ Firebase เป็นเวอร์ชัน 11.13.0 ขึ้นไป

  1. เปิดโปรเจ็กต์แอปใน Xcode แล้วไปที่ File > Add Package Dependencies

  2. เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ SDK ของแพลตฟอร์ม Apple ของ Firebase ดังนี้

    https://github.com/firebase/firebase-ios-sdk
    
  3. เลือก SDK เวอร์ชันล่าสุด

  4. เลือกFirebaseAIคลัง

เมื่อเสร็จแล้ว Xcode จะเริ่มจับคู่ข้อมูลและดาวน์โหลดทรัพยากร Dependency ในเบื้องหลังโดยอัตโนมัติ

Kotlin

Firebase AI Logic SDK สำหรับ Android (firebase-ai) ช่วยให้เข้าถึง API เพื่อโต้ตอบกับโมเดล Gemini และ Imagen ได้

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

dependencies {
  // ... other androidx dependencies

  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:33.15.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")
}

การใช้ Firebase Android BoM จะทำให้แอปใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้อยู่เสมอ

Java

Firebase AI Logic SDK สำหรับ Android (firebase-ai) ช่วยให้เข้าถึง API เพื่อโต้ตอบกับโมเดล Gemini และ Imagen ได้

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

สำหรับ Java คุณต้องเพิ่มไลบรารีอีก 2 รายการ

dependencies {
  // ... other androidx dependencies

  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:33.15.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")

  // Required for one-shot operations (to use `ListenableFuture` from Guava Android)
  implementation("com.google.guava:guava:31.0.1-android")

  // Required for streaming operations (to use `Publisher` from Reactive Streams)
  implementation("org.reactivestreams:reactive-streams:1.0.4")
}

การใช้ Firebase Android BoM จะทำให้แอปใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้อยู่เสมอ

Web

Firebase AI Logic ไลบรารีให้สิทธิ์เข้าถึง API สำหรับการโต้ตอบกับโมเดล Gemini และ Imagen ไลบรารีนี้รวมอยู่ ใน Firebase JavaScript SDK สำหรับเว็บ

  1. ติดตั้ง Firebase JS SDK สำหรับเว็บโดยใช้ npm ดังนี้

    npm install firebase
    
  2. เริ่มต้น Firebase ในแอป

    import { initializeApp } from "firebase/app";
    
    // 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);
    

Dart

ปลั๊กอิน Firebase AI Logic สำหรับ Flutter (firebase_ai) ให้สิทธิ์เข้าถึง API สำหรับการโต้ตอบกับโมเดล Gemini และ Imagen

  1. จากไดเรกทอรีโปรเจ็กต์ Flutter ให้เรียกใช้คำสั่งต่อไปนี้เพื่อ ติดตั้งปลั๊กอินหลักและปลั๊กอิน Firebase AI Logic

    flutter pub add firebase_core && flutter pub add firebase_ai
    
  2. ในไฟล์ lib/main.dart ให้นำเข้าปลั๊กอินหลักของ Firebase, ปลั๊กอิน Firebase AI Logic และไฟล์กำหนดค่าที่คุณสร้าง ไว้ก่อนหน้านี้

    import 'package:firebase_core/firebase_core.dart';
    import 'package:firebase_ai/firebase_ai.dart';
    import 'firebase_options.dart';
    
  3. นอกจากนี้ ในไฟล์ lib/main.dart ให้เริ่มต้น Firebase โดยใช้ออบเจ็กต์ DefaultFirebaseOptions ที่ส่งออกจากไฟล์การกำหนดค่า

    await Firebase.initializeApp(
      options: DefaultFirebaseOptions.currentPlatform,
    );
    
  4. สร้างแอปพลิเคชัน Flutter อีกครั้ง

    flutter run
    

Unity

SDK ของไคลเอ็นต์ Google AI ไม่รองรับ Unity

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

นำ SDK เก่าออกจากแอป

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

Swift

นำคลังเก่าออก

  1. เปิดโปรเจ็กต์แอปใน Xcode แล้วไปที่แผงการอ้างอิงแพ็กเกจ

  2. เลือกแพ็กเกจ generative-ai-swift จากรายการแพ็กเกจ การอ้างอิง

  3. คลิกปุ่ม - จากด้านล่างของรายการ แล้วคลิกนำออก เพื่อยืนยัน

Kotlin

dependencies {
    implementation("com.google.ai.client.generativeai:generativeai:VERSION")
}

Java

dependencies {
    implementation("com.google.ai.client.generativeai:generativeai:VERSION")
}

Web

// BEFORE
import { initializeApp } from "firebase/app";
import { GoogleGenerativeAI } from "@google/generative-ai";

Dart

ลบแพ็กเกจเก่า
flutter pub remove google_generative_ai

Unity

SDK ของไคลเอ็นต์ Google AI ไม่รองรับ Unity

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

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

อัปเดตการนำเข้าและวิธีเริ่มต้นGemini Developer API บริการแบ็กเอนด์ รวมถึงสร้างอินสแตนซ์ GenerativeModel

Swift

// BEFORE
import GoogleGenerativeAI

let model = GenerativeModel(name: "MODEL_NAME", apiKey: APIKey.default)

// AFTER
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

// BEFORE
import com.google.ai.client.generativeai.Chat
import com.google.ai.client.generativeai.type.Content
import com.google.ai.client.generativeai.java.GenerativeModuleFutures

...

val generativeModel = GenerativeModel(modelName = "MODEL_NAME",
  // Access your API key as a Build Configuration variable
  apiKey = BuildConfig.apiKey
)

// AFTER
import com.google.firebase.Firebase
import com.google.firebase.ai.ai
import com.google.firebase.ai.type.GenerativeBackend

...

// 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

// BEFORE
import com.google.ai.client.generativeai.Chat;
import com.google.ai.client.generativeai.type.Content;
import com.google.ai.client.generativeai.java.GenerativeModuleFutures;

...

GenerativeModel gm = new GenerativeModel("MODEL_NAME",
  // Access your API key as a Build Configuration variable
  BuildConfig.apiKey
);

GenerativeModelFutures model = GenerativeModelFutures.from(gm);

// AFTER
import com.google.firebase.ai.FirebaseAI;
import com.google.firebase.ai.GenerativeModel;
import com.google.firebase.ai.java.GenerativeModelFutures;
import com.google.firebase.ai.type.GenerativeBackend;

...

// 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

// BEFORE
import { GoogleGenerativeAI } from "@google/generative-ai";

// Fetch your API_KEY and access your API
const API_KEY = "...";
const genAI = new GoogleGenerativeAI(API_KEY);

...

const model = genAI.getGenerativeModel({ model: "MODEL_NAME"});

// AFTER
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

// BEFORE
import 'package:google_generative_ai/google_generative_ai.dart';

final apiKey = Platform.environment['API_KEY'];
if (apiKey == null) {
print('No \$API_KEY environment variable');
exit(1);
}

final model = GenerativeModel(model: 'MODEL_NAME', apiKey: apiKey);

// AFTER
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

SDK ของไคลเอ็นต์ Google AI ไม่รองรับ Unity

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

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

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

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

  • Firebase AI Logic Client SDK ไม่รองรับ การเรียกใช้โค้ด หากใช้ฟีเจอร์นี้ โปรดตรวจสอบว่าแอปของคุณรองรับการทำงานนี้

  • ดูรายการต่อไปนี้เพื่อดูการเปลี่ยนแปลงที่คุณอาจต้องทำในโค้ดเพื่อรองรับการย้ายข้อมูลไปยัง Firebase AI LogicSDK ของไคลเอ็นต์

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

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

  • การสร้างเอาต์พุตที่มีโครงสร้าง (เช่น JSON) โดยใช้ responseSchema
    หากคุณใช้ฟีเจอร์นี้ คุณจะต้องอัปเดต วิธีที่กำหนดสคีมา เราขอแนะนำให้อ่านคู่มือเอาต์พุตที่มีโครงสร้างฉบับใหม่เพื่อดูวิธี เขียนสคีมา 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 ไปไว้ท้ายรายการพารามิเตอร์เพื่อ ให้สอดคล้องกับแพลตฟอร์มอื่นๆ

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 ไปไว้ท้ายรายการพารามิเตอร์เพื่อ ให้สอดคล้องกับแพลตฟอร์มอื่นๆ

Web

โปรดทราบว่า Google AIClient SDK สำหรับ JavaScript มีการเปลี่ยนแปลงหลายอย่าง นับตั้งแต่เวลาที่ Firebase AI LogicClient SDK แยกสาขาออกมา รายการต่อไปนี้คือการเปลี่ยนแปลงที่อาจเกิดขึ้นซึ่งคุณอาจต้องพิจารณาเมื่อ ย้ายข้อมูลไปยัง Firebase AI Logic SDK ของไคลเอ็นต์

  • การแจงนับ

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

    • เปลี่ยน blockReason ใน PromptFeedback เป็นตัวเลือก
  • การอ้างอิงการค้นหา

    • นำการใช้งานฟีเจอร์นี้ทั้งหมดออก เนื่องจากยังไม่รองรับใน SDK ของ Firebase AI Logic
  • ข้อผิดพลาด

    • นำการใช้งาน GoogleGenerativeAIError ทั้งหมดออก และย้ายไปใช้ AIError (ไม่บังคับ)

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

SDK ของไคลเอ็นต์ Google AI ไม่รองรับ Unity

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


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