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


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

เหตุผลที่ควรเปลี่ยนไปใช้ Firebase AI Logic SDK

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

เมื่อตั้งค่าโปรเจ็กต์ 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. เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ Firebase SDK สําหรับแพลตฟอร์ม Apple ดังนี้

    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.14.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.14.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 LogicSDK สำหรับ 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

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

ดูวิธีเริ่มต้นใช้งาน Firebase AI LogicSDK สำหรับ 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.0-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.0-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.0-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.0-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.0-flash');

Unity

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

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

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

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

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

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

  • ตรวจสอบรายการต่อไปนี้เพื่อดูการเปลี่ยนแปลงที่คุณอาจต้องทำในโค้ดเพื่อรองรับการย้ายข้อมูลไปยัง 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 เป็นช่องที่อนุญาตค่า Null
  • คลาสระยะเวลา

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

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

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

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

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

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

Web

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

  • การแจกแจง

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

    • เปลี่ยน blockReason ใน PromptFeedback เป็นตัวเลือก
  • การกําหนดพื้นฐานการค้นหา

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

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

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

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


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