למה כדאי לעבור לשימוש ב-SDKs של Firebase AI Logic?
יכול להיות שניסיתם ערכת SDK חלופית של לקוח לנייד או לאינטרנט, שנתנה לכם גישה ל-Gemini Developer API.
ערכות ה-SDK של הלקוח לא שולבו במערכת האקולוגית החזקה של Firebase, שמציעה שירותים קריטיים לאפליקציות לנייד ולאינטרנט. הן הוצאו משימוש לטובת ערכות ה-SDK של לקוח Firebase AI Logic, שיכולות לתת לכם גישה ל-Gemini Developer API.
תכונות אבטחה לאפליקציות לנייד ולאינטרנט
באפליקציות לנייד ולאינטרנט, האבטחה חיונית וצריך להביא בחשבון גורמים מיוחדים, כי הקוד – כולל הקריאות ל-Gemini API – פועל בסביבה לא מוגנת. אפשר להשתמש ב-Firebase App Check כדי להגן על ממשקי API מפני ניצול לרעה על ידי לקוחות לא מורשים.
כשמשתמשים ב-Firebase App Check עם Firebase AI Logic, לעולם לא מוסיפים את מפתח ה-API Gemini של Gemini Developer API ישירות לקוד הבסיסי של האפליקציה לנייד או לאפליקציית האינטרנט. במקום זאת, מפתח ה-API Gemini נשאר בשרת ולא חשוף לגורמים זדוניים.
סביבה עסקית שמתאימה לאפליקציות לנייד ולאינטרנט
Firebase היא הפלטפורמה של Google לפיתוח אפליקציות לנייד ולאינטרנט. כשמשתמשים ב-Firebase AI Logic, האפליקציות נמצאות בסביבה שמתמקדת בצרכים של מפתחים ואפליקציות בסביבת פיתוח מלאה. לדוגמה:
להגדיר באופן דינמי הגדרות זמן ריצה או להחליף ערכים באפליקציה (כמו שם גרסת מודל) בלי לפרסם גרסת אפליקציה חדשה באמצעות Firebase Remote Config.
אפשר להשתמש ב-Cloud Storage for Firebase כדי לכלול בקשות מרובות-מודלים של קבצים גדולים (אם משתמשים ב-Vertex AI Gemini API). ערכות ה-SDK של הלקוח מסוג Cloud Storage עוזרות לטפל בהעלאות ובהורדות של קבצים (גם בתנאים של רשת חלשה) ומספקות אבטחה טובה יותר לנתונים של משתמשי הקצה. מידע נוסף זמין במדריך הפתרונות שלנו בנושא שימוש ב-Cloud Storage for Firebase.
ניהול נתונים מובְנים באמצעות ערכות SDK של מסדי נתונים שנוצרו לאפליקציות לנייד ולאינטרנט (כמו Cloud Firestore).
מעבר לערכות ה-SDK של Firebase AI Logic
סקירה כללית של השלבים להעברה ל-SDK של Firebase AI Logic:
שלב 1: מגדירים פרויקט Firebase חדש או קיים ומקשרים את האפליקציה ל-Firebase.
שלב 2: מוסיפים לאפליקציה את ערכות ה-SDK של Firebase AI Logic.
שלב 3: מעדכנים את הייבוא וההפעלה באפליקציה.
שלב 4: מעדכנים את הקוד בהתאם לתכונות שבהן אתם משתמשים.
שלב 1: מגדירים פרויקט ב-Firebase ומקשרים את האפליקציה
נכנסים למסוף Firebase ובוחרים את הפרויקט ב-Firebase.
במסוף Firebase, עוברים לדף Firebase AI Logic.
לוחצים על Get started (תחילת העבודה) כדי להפעיל תהליך עבודה מודרך שיעזור לכם להגדיר את ממשקי ה-API הנדרשים ואת המשאבים של הפרויקט.
לוחצים על Gemini Developer API. תמיד אפשר להגדיר את ספק ה-API השני ולהשתמש בו מאוחר יותר, אם רוצים.
במסוף יופעלו ממשקי ה-API הנדרשים וייווצר מפתח API חדש ויעודי מסוג Gemini בפרויקט.
אין להוסיף את מפתח ה-API החדש מסוג Gemini לקוד הבסיסי של האפליקציה. מידע נוסףאם מופיעה בקשה בתהליך העבודה במסוף, פועלים לפי ההוראות במסך כדי לרשום את האפליקציה ולקשר אותה ל-Firebase.
ממשיכים במדריך ההעברה הזה כדי לעדכן את הספרייה ואת האינטראקציה הראשונית באפליקציה.
שלב 2: מוסיפים לאפליקציה את ה-SDK של Firebase AI Logic
אחרי שמגדירים את פרויקט Firebase ומחברים את האפליקציה ל-Firebase (ראו שלב קודם), אפשר להוסיף את ה-SDK של Firebase AI Logic לאפליקציה.
Swift
שימוש ב-Swift Package Manager כדי להתקין ולנהל יחסי תלות ב-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 יתחיל לפתור את יחסי התלות ולהוריד אותם באופן אוטומטי ברקע.
Kotlin
Firebase AI Logic SDK ל-Android (firebase-ai
) מספק גישה לממשקי ה-API ליצירת אינטראקציה עם מודלים של Gemini ו-Imagen.
בקובץ Gradle של המודול (ברמת האפליקציה) (כמו <project>/<app-module>/build.gradle.kts
), מוסיפים את התלות בספרייה 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
), מוסיפים את התלות בספרייה Firebase AI Logic ל-Android.
מומלץ להשתמש ב-Firebase Android BoM כדי לשלוט בגרסאות הספרייה.
ב-Java, צריך להוסיף עוד שתי ספריות.
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.
כדי להתקין את הפלאגין של הליבה ואת הפלאגין Firebase AI Logic, מריצים את הפקודה הבאה מהספרייה של פרויקט Flutter:
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
לא הייתה תמיכה ב-Unity מ-SDK של לקוחות Google AI.
הסרת ה-SDK הישן מהאפליקציה
אחרי שתסיימו להעביר את האפליקציה (ראו את שאר הקטעים במדריך הזה), חשוב למחוק את הספרייה הישנה.
Swift
מסירים את הספרייה הישנה:
ב-Xcode, כשפרויקט האפליקציה פתוח, עוברים לחלונית Packages Dependencies.
בוחרים את החבילה
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
לא הייתה תמיכה ב-Unity מ-SDK של לקוחות Google AI.
שלב 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
לא הייתה תמיכה ב-Unity מ-SDK של לקוחות Google AI.
שימו לב שבהתאם ליכולת שבה אתם משתמשים, יכול להיות שלא תמיד תיצרו מכונה של GenerativeModel
.
- כדי לגשת למודל Imagen, יוצרים מכונה של
ImagenModel
.
שלב 4: מעדכנים את הקוד בהתאם לתכונות שבהן אתם משתמשים
בשלב הזה מתוארים השינויים שעשויים להיות נדרשים, בהתאם לתכונות שבהן אתם משתמשים.
ערכות ה-SDK של לקוחות Firebase AI Logic לא תומכות בהרצת קוד. אם אתם משתמשים בתכונה הזו, חשוב להביא את זה בחשבון באפליקציה שלכם.
כדאי לעיין ברשימות הבאות כדי לבדוק אילו שינויים צריך לבצע בקוד כדי להתאים אותו להעברה ל-SDK של לקוח Firebase AI Logic.
חובה לכל השפות והפלטפורמות
קריאה לפונקציה
אם הטמעתם את התכונה הזו, תצטרכו לבצע עדכונים באופן שבו אתם מגדירים את הסכימה. מומלץ לעיין במדריך העדכני לקריאה לפונקציות כדי ללמוד איך לכתוב את הצהרות הפונקציות.יצירת פלט מובנה (כמו JSON) באמצעות
responseSchema
אם הטמעתם את התכונה הזו, תצטרכו לבצע עדכונים באופן שבו אתם מגדירים את הסכימה. מומלץ לעיין במדריך החדש בנושא פלט מובנה כדי ללמוד איך לכתוב סכימות JSON.Timeout
- שינינו את הזמן הקצוב לתפוגה של בקשות ל-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
. אפשר להגדיר אותם ב-initializer.
- השינויים שבוצעו בנכסים הציבוריים של
Kotlin
רשימות ערכים
כיתות
enum
וכיתותsealed
הוחלפו בכיתות רגילות. השינוי הזה מאפשר גמישות רבה יותר בהתפתחות ה-API באופן תואם לאחור.שינית את השם של המנייה
BlockThreshold
ל-HarmBlockThreshold
.הוסרו ערכים מהרשימות הבאות:
HarmBlockThreshold
,HarmProbability
,HarmSeverity
,BlockReason
ו-FinishReason
.
שיטות Blob
- שינינו את השם של כל השיטות שכללו את
Blob
כחלק מהשם שלהן, והחלפנו אותו ב-InlineData
.
- שינינו את השם של כל השיטות שכללו את
הגדרות בטיחות
- השדה
method
השתנה לאפשרות nullable.
- השדה
סיווג משך הזמן
- הוסרו כל השימושים בכיתה
Duration
של Kotlin והיא הוחלפה ב-long
. השינוי הזה מאפשר יכולת פעולה הדדית טובה יותר עם Java.
- הוסרו כל השימושים בכיתה
מטא-נתונים של הפניות
- ארזנו את כל השדות שהוצהרו בעבר ב-
CitationMetadata
לכיתה חדשה שנקראתCitation
. אפשר למצוא את ההפניות ברשימתcitations
ב-CitationMetadata
. השינוי הזה מאפשר התאמה טובה יותר של הסוגים בפלטפורמות השונות.
- ארזנו את כל השדות שהוצהרו בעבר ב-
ספירת אסימונים
- השדה
totalBillableCharacters
השתנה לאפשרות nullable.
- השדה
סה"כ תווים לחיוב
- שינינו את המאפיין
totalBillableCharacters
ב-CountTokensResponse
לאפשרות, כדי לשקף מצבים שבהם לא נשלחים תווים.
- שינינו את המאפיין
יצירת מודל
- הפרמטר
requestOptions
הועבר לסוף רשימת הפרמטרים כדי להתאים לפלטפורמות אחרות.
- הפרמטר
Java
רשימות ערכים
כיתות
enum
וכיתותsealed
הוחלפו בכיתות רגילות. השינוי הזה מאפשר גמישות רבה יותר בהתפתחות ה-API באופן תואם לאחור.שינית את השם של המנייה
BlockThreshold
ל-HarmBlockThreshold
.הוסרו ערכים מהרשימות הבאות:
HarmBlockThreshold
,HarmProbability
,HarmSeverity
,BlockReason
ו-FinishReason
.
שיטות Blob
- שינינו את השם של כל השיטות שכללו את
Blob
כחלק מהשם שלהן, והחלפנו אותו ב-InlineData
.
- שינינו את השם של כל השיטות שכללו את
הגדרות בטיחות
- השדה
method
השתנה לאפשרות nullable.
- השדה
סיווג משך הזמן
- הוסרו כל השימושים בכיתה
Duration
של Kotlin והיא הוחלפה ב-long
. השינוי הזה מאפשר יכולת פעולה הדדית טובה יותר עם Java.
- הוסרו כל השימושים בכיתה
מטא-נתונים של הפניות
- ארזנו את כל השדות שהוצהרו בעבר ב-
CitationMetadata
לכיתה חדשה שנקראתCitation
. אפשר למצוא את ההפניות ברשימתcitations
ב-CitationMetadata
. השינוי הזה מאפשר התאמה טובה יותר של הסוגים בפלטפורמות השונות.
- ארזנו את כל השדות שהוצהרו בעבר ב-
ספירת אסימונים
- השדה
totalBillableCharacters
השתנה לאפשרות nullable.
- השדה
סה"כ תווים לחיוב
- שינינו את המאפיין
totalBillableCharacters
ב-CountTokensResponse
לאפשרות, כדי לשקף מצבים שבהם לא נשלחים תווים.
- שינינו את המאפיין
יצירת מודל
- הפרמטר
requestOptions
הועבר לסוף רשימת הפרמטרים כדי להתאים לפלטפורמות אחרות.
- הפרמטר
Web
חשוב לזכור שחלו שינויים רבים ב-SDK של לקוח Google AI ל-JavaScript מאז שה-SDK של לקוח Firebase AI Logic התפצל ממנו. ברשימה הבאה מפורטים כמה שינויים פוטנציאליים שיכול להיות שתצטרכו להביא בחשבון במהלך המעבר ל-SDK של הלקוח של Firebase AI Logic.
רשימות ערכים
- הוסרו ערכים מהרשימות הבאות:
HarmCategory
,BlockThreshold
,HarmProbability
,HarmSeverity
,BlockReason
ו-FinishReason
.
- הוסרו ערכים מהרשימות הבאות:
הסיבה לחסימה
- השדה
blockReason
ב-PromptFeedback
השתנה לאפשרות אופציונלית.
- השדה
הכנה לחיפוש
- הוסרו כל השימושים בתכונה הזו, כי עדיין אין תמיכה בה ב-SDKs של Firebase AI Logic.
שגיאות
- מסירים את כל השימושים ב-
GoogleGenerativeAIError
, ואפשר גם לעבור ל-AIError
.
- מסירים את כל השימושים ב-
Dart
רשימות ערכים
- הוסרו ערכים מהרשימות הבאות:
HarmCategory
,HarmProbability
,BlockReason
ו-FinishReason
.
- הוסרו ערכים מהרשימות הבאות:
חלק נתונים
- השם של
DataPart
השתנה ל-InlineDataPart
, והשם של הפונקציהdata
ב-static
השתנה ל-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 מ-SDK של לקוחות Google AI.
שליחת משוב על חוויית השימוש ב-Firebase AI Logic