Firebase AI Logic และ SDK ของไคลเอ็นต์เคยมีชื่อว่า "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 ซึ่งมีระดับแบบไม่มีค่าใช้จ่าย พร้อมโควต้าและขีดจำกัดอัตราที่สมเหตุสมผล
ภาพรวมของขั้นตอนการย้ายข้อมูลไปยัง Firebase AI Logic SDK
ขั้นตอนที่ 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 รายในโปรเจ็กต์พร้อมกันได้
ลงชื่อเข้าใช้คอนโซล Firebase แล้วเลือกโปรเจ็กต์ Firebase
ในFirebase Console ให้ไปที่หน้า Firebase AI Logic
คลิกเริ่มต้นใช้งานเพื่อเปิดตัวเวิร์กโฟลว์แบบมีคำแนะนำที่จะช่วยคุณตั้งค่า API ที่จำเป็น และทรัพยากรสำหรับโปรเจ็กต์
เลือกผู้ให้บริการ "Gemini API" ที่ต้องการใช้กับ SDK ของ Firebase AI Logic คุณตั้งค่าและใช้ผู้ให้บริการ API รายอื่นได้ทุกเมื่อ หากต้องการ
Gemini Developer API — การเรียกเก็บเงินไม่บังคับ (พร้อมใช้งานในแพ็กเกจราคา Spark แบบไม่มีค่าใช้จ่าย)
เวิร์กโฟลว์ของคอนโซลจะเปิดใช้ API ที่จำเป็นและสร้าง Gemini คีย์ API ในโปรเจ็กต์
อย่าเพิ่มคีย์ API Gemini นี้ลงในโค้ดเบสของแอป ดูข้อมูลเพิ่มเติมVertex AI Gemini API — ต้องมีการเรียกเก็บเงิน (ต้องใช้แพ็กเกจราคา Blaze แบบจ่ายเมื่อใช้)
เวิร์กโฟลว์ของคอนโซลจะเปิดใช้ API ที่จำเป็นในโปรเจ็กต์
โปรดอ่านต่อในคู่มือการย้ายข้อมูลนี้เพื่ออัปเดตไลบรารีและการเริ่มต้นในแอป
ขั้นตอนที่ 3: อัปเดตไลบรารีที่ใช้ในแอป
อัปเดตโค้ดเบสของแอปเพื่อใช้ไลบรารี Firebase AI Logic
Swift
เปิดโปรเจ็กต์แอปใน Xcode แล้วอัปเดตแพ็กเกจ Firebase เป็น v11.13.0 ขึ้นไปโดยใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้
ตัวเลือกที่ 1: อัปเดตแพ็กเกจทั้งหมดโดยไปที่ ไฟล์ > แพ็กเกจ > อัปเดตเป็นแพ็กเกจเวอร์ชันล่าสุด
ตัวเลือกที่ 2: อัปเดต Firebase ทีละรายการโดยไปที่แพ็กเกจ Firebase ในส่วนที่ชื่อการขึ้นต่อกันของแพ็กเกจ คลิกขวาที่แพ็กเกจ Firebase แล้วเลือกอัปเดตแพ็กเกจ
ตรวจสอบว่าตอนนี้แพ็กเกจ Firebase แสดง v11.13.0 ขึ้นไป หากไม่เป็นเช่นนั้น ให้ตรวจสอบว่าข้อกำหนดของแพ็กเกจที่คุณระบุ อนุญาตให้อัปเดตเป็น v11.13.0 ขึ้นไป
เลือกเป้าหมายของแอปในโปรแกรมแก้ไขโปรเจ็กต์ แล้วไปที่ส่วนเฟรมเวิร์ก ไลบรารี และเนื้อหาที่ฝัง
เพิ่มไลบรารีใหม่: เลือกปุ่ม + แล้วเพิ่ม FirebaseAI จากแพ็กเกจ Firebase
หลังจากย้ายข้อมูลแอปเสร็จแล้ว (ดูส่วนที่เหลือในคำแนะนำนี้) อย่าลืมนำไลบรารีเก่าออกโดยทำดังนี้
เลือก FirebaseVertexAI-Preview แล้วกดปุ่ม —
Kotlin
ในไฟล์ 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:34.3.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") }ซิงค์โปรเจ็กต์ Android กับไฟล์ Gradle
โปรดทราบว่าหากเลือกที่จะไม่ใช้ Firebase Android BoM ให้เพิ่ม
การอ้างอิงสำหรับไลบรารี firebase-ai และยอมรับเวอร์ชันล่าสุด
ที่ Android Studio แนะนำ
Java
ในไฟล์ 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:34.3.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") }ซิงค์โปรเจ็กต์ Android กับไฟล์ Gradle
โปรดทราบว่าหากเลือกที่จะไม่ใช้ Firebase Android BoM ให้เพิ่ม
การอ้างอิงสำหรับไลบรารี firebase-ai และยอมรับเวอร์ชันล่าสุด
ที่ Android Studio แนะนำ
Web
ดาวน์โหลด Firebase JS SDK สำหรับเว็บเวอร์ชันล่าสุดโดยใช้ npm
npm i firebase@latest
หรือ
yarn add firebase@latest
ไม่ว่าคุณจะนำเข้าไลบรารีที่ใด ให้อัปเดตคำสั่งนำเข้าเพื่อใช้
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
อัปเดตเพื่อใช้แพ็กเกจ
firebase_aiในไฟล์pubspec.yamlโดย เรียกใช้คำสั่งต่อไปนี้จากไดเรกทอรีโปรเจ็กต์ Flutterflutter pub add firebase_ai
สร้างโปรเจ็กต์ Flutter ใหม่
flutter run
หลังจากย้ายข้อมูลแอปเสร็จแล้ว (ดูส่วนที่เหลือในคำแนะนำนี้) อย่าลืมลบแพ็กเกจเก่า
flutter pub remove firebase_vertexai
Unity
การสนับสนุนสำหรับ Unity ไม่พร้อมให้บริการจาก "Vertex AI in Firebase"
ขั้นตอนที่ 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"
โปรดทราบว่าคุณอาจสร้างอินสแตนซ์ GenerativeModel ไม่ได้เสมอไป ทั้งนี้ขึ้นอยู่กับความสามารถที่คุณใช้
- หากต้องการเข้าถึงImagenโมเดล
ให้สร้าง
ImagenModelอินสแตนซ์
ขั้นตอนที่ 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ออกจากคลาส enumResponseModalityแล้ว ให้ใช้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ออกจากคลาส enumResponseModalityแล้ว ให้ใช้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และฟังก์ชันstaticdataเป็น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"
ข้อผิดพลาดที่อาจเกิดขึ้นเกี่ยวกับการย้ายข้อมูล
ขณะย้ายข้อมูลไปใช้เวอร์ชัน GA ของ Firebase AI Logic คุณอาจพบข้อผิดพลาดหากยังไม่ได้ทำการเปลี่ยนแปลงที่จำเป็นทั้งหมดตามที่อธิบายไว้ในคู่มือการย้ายข้อมูลนี้
ข้อผิดพลาด 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