เหตุผลที่ควรเปลี่ยนไปใช้ 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 และเชื่อมต่อแอป
ลงชื่อเข้าใช้คอนโซล Firebase แล้วเลือกโปรเจ็กต์ Firebase
ในคอนโซล Firebase ให้ไปที่หน้า Firebase AI Logic
คลิกเริ่มต้นใช้งานเพื่อเปิดเวิร์กโฟลว์แบบมีคําแนะนําซึ่งจะช่วยคุณตั้งค่าAPI ที่จําเป็นและแหล่งข้อมูลสําหรับโปรเจ็กต์
เลือก Gemini Developer API คุณตั้งค่าและใช้ผู้ให้บริการ API รายอื่นในภายหลังได้เสมอ หากต้องการ
คอนโซลจะเปิดใช้ API ที่จำเป็นและสร้างGeminiคีย์ API ใหม่โดยเฉพาะในโปรเจ็กต์
อย่าเพิ่มคีย์ API Gemini ใหม่นี้ลงในโค้ดเบสของแอป ดูข้อมูลเพิ่มเติมหากได้รับข้อความแจ้งในเวิร์กโฟลว์ของคอนโซล ให้ทําตามวิธีการบนหน้าจอเพื่อลงทะเบียนแอปและเชื่อมต่อกับ Firebase
ดำเนินการต่อในคู่มือการย้ายข้อมูลนี้เพื่ออัปเดตไลบรารีและอินทิลีเซชันในแอป
ขั้นตอนที่ 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 ขึ้นไป
เปิดโปรเจ็กต์แอปใน Xcode แล้วไปที่File > Add Package Dependencies
เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ Firebase SDK สําหรับแพลตฟอร์ม Apple ดังนี้
https://github.com/firebase/firebase-ios-sdk
เลือก SDK เวอร์ชันล่าสุด
เลือกคลัง
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 สําหรับเว็บ
ติดตั้ง Firebase JS SDK สําหรับเว็บโดยใช้ npm โดยทําดังนี้
npm install firebase
เริ่มต้นใช้งาน 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
จากไดเรกทอรีโปรเจ็กต์ Flutter ให้เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอินหลักและปลั๊กอิน Firebase AI Logic
flutter pub add firebase_core && flutter pub add firebase_ai
ในไฟล์
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';
นอกจากนี้ ในไฟล์
lib/main.dart
ให้เริ่มต้น Firebase โดยใช้ออบเจ็กต์DefaultFirebaseOptions
ที่ส่งออกโดยไฟล์การกําหนดค่าawait Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, );
สร้างแอปพลิเคชัน Flutter อีกครั้งโดยทำดังนี้
flutter run
Unity
SDK ไคลเอ็นต์ Google AI ไม่รองรับ Unity
นำ SDK เก่าออกจากแอป
หลังจากย้ายข้อมูลแอปเสร็จแล้ว (ดูส่วนที่เหลือในคู่มือนี้) อย่าลืมลบคลังเก่า
Swift
นำคลังเก่าออก
เปิดโปรเจ็กต์แอปใน Xcode แล้วไปที่แผงความเกี่ยวข้องของแพ็กเกจ
เลือกแพ็กเกจ
generative-ai-swift
จากรายการแพ็กเกจที่ต้องใช้ร่วมกันคลิกปุ่ม
-
จากด้านล่างของรายการ แล้วคลิกนำออกเพื่อยืนยัน
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
ขั้นตอนที่ 3: อัปเดตการนําเข้าและอินทิลีเซชันในแอป
อัปเดตการนําเข้าและวิธีเริ่มต้น Gemini Developer API
บริการแบ็กเอนด์ และสร้างอินสแตนซ์ GenerativeModel
Swift
// BEFOREimport 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
// BEFOREimport 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
// BEFOREimport 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
// BEFOREimport { 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
// BEFOREimport '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
โปรดทราบว่าคุณอาจสร้างอินสแตนซ์ GenerativeModel
ไม่ได้เสมอไป ทั้งนี้ขึ้นอยู่กับความสามารถที่คุณใช้
- หากต้องการเข้าถึงโมเดล Imagen ให้สร้างอินสแตนซ์
ImagenModel
ขั้นตอนที่ 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 Logic