Google AI क्लाइंट SDK टूल से Firebase AI लॉजिक SDK टूल पर माइग्रेट करना


सीधे माइग्रेशन के निर्देशों पर जाएं

Firebase AI Logic SDKs का इस्तेमाल करने के लिए, माइग्रेट क्यों करना चाहिए?

ऐसा हो सकता है कि आपने मोबाइल या वेब क्लाइंट SDK टूल के किसी अन्य सेट को आज़माया हो, जिससे आपको Gemini Developer API का ऐक्सेस मिला हो.

उन क्लाइंट SDK टूल को Firebase के बेहतरीन नेटवर्क में इंटिग्रेट नहीं किया गया था, जो मोबाइल और वेब ऐप्लिकेशन के लिए ज़रूरी सेवाएं देता है. अब ये Firebase AI Logic क्लाइंट SDK टूल के पक्ष में, अमान्य कर दिए गए हैं. इनसे आपको Gemini Developer API का ऐक्सेस मिल सकता है.

मोबाइल और वेब ऐप्लिकेशन के लिए सुरक्षा से जुड़ी सुविधाएं

मोबाइल और वेब ऐप्लिकेशन के लिए सुरक्षा काफ़ी अहम है और इस पर खास ध्यान देने की ज़रूरत है. ऐसा इसलिए, क्योंकि आपका कोड, Gemini API को कॉल करने के साथ-साथ, बिना सुरक्षा वाले एनवायरमेंट में काम कर रहा है. Firebase App Check का इस्तेमाल करके, एपीआई को बिना अनुमति वाले क्लाइंट के गलत इस्तेमाल से सुरक्षित रखा जा सकता है.

Firebase AI Logic के साथ Firebase App Check का इस्तेमाल करने पर, Gemini Developer API के लिए Gemini एपीआई पासकोड को सीधे अपने मोबाइल या वेब ऐप्लिकेशन के कोडबेस में कभी नहीं जोड़ा जाता. इसके बजाय, Gemini एपीआई कुंजी सर्वर पर सेव रहती है और नुकसान पहुंचाने वाले लोगों या ग्रुप के लिए उपलब्ध नहीं होती.

मोबाइल और वेब ऐप्लिकेशन के लिए बनाया गया नेटवर्क

Firebase, मोबाइल और वेब ऐप्लिकेशन डेवलप करने के लिए Google का प्लैटफ़ॉर्म है. Firebase AI Logic का इस्तेमाल करने का मतलब है कि आपके ऐप्लिकेशन ऐसे नेटवर्क में हैं जो फ़ुल-स्टैक ऐप्लिकेशन और डेवलपर की ज़रूरतों पर फ़ोकस करता है. उदाहरण के लिए:

  • Firebase Remote Config का इस्तेमाल करके, ऐप्लिकेशन का नया वर्शन रिलीज़ किए बिना, अपने ऐप्लिकेशन में रन-टाइम कॉन्फ़िगरेशन को डाइनैमिक तौर पर सेट करें या वैल्यू बदलें. जैसे, मॉडल का नाम और वर्शन.

  • अगर Vertex AI Gemini API का इस्तेमाल किया जा रहा है, तो कई तरीकों से किए जाने वाले अनुरोधों में बड़ी फ़ाइलें शामिल करने के लिए Cloud Storage for Firebase का इस्तेमाल करें. Cloud Storage क्लाइंट SDK टूल, फ़ाइल अपलोड और डाउनलोड करने में आपकी मदद करते हैं. भले ही, नेटवर्क की स्थिति खराब हो. साथ ही, ये आपके असली उपयोगकर्ताओं के डेटा को ज़्यादा सुरक्षित रखते हैं. Cloud Storage for Firebase का इस्तेमाल करने के बारे में समाधान गाइड में जाकर ज़्यादा जानें.

  • मोबाइल और वेब ऐप्लिकेशन (जैसे, Cloud Firestore) के लिए बनाए गए डेटाबेस SDK टूल का इस्तेमाल करके, स्ट्रक्चर्ड डेटा मैनेज करें.

Firebase AI Logic एसडीके टूल पर माइग्रेट करना

Firebase AI Logic SDK टूल पर माइग्रेट करने के तरीके की खास जानकारी:

  • पहला चरण: नया या मौजूदा Firebase प्रोजेक्ट सेट अप करें और अपने ऐप्लिकेशन को Firebase से कनेक्ट करें.

  • दूसरा चरण: अपने ऐप्लिकेशन में Firebase AI Logic SDK टूल जोड़ें.

  • तीसरा चरण: अपने ऐप्लिकेशन में इंपोर्ट और शुरू करने की प्रोसेस को अपडेट करें.

  • चौथा चरण: इस्तेमाल की जा रही सुविधाओं के हिसाब से अपना कोड अपडेट करें.

पहला चरण: Firebase प्रोजेक्ट सेट अप करना और अपना ऐप्लिकेशन कनेक्ट करना

  1. Firebase कंसोल में साइन इन करें. इसके बाद, अपना Firebase प्रोजेक्ट चुनें.

  2. Firebase console में, Firebase AI Logic पेज पर जाएं.

  3. निर्देशों वाला वर्कफ़्लो लॉन्च करने के लिए, शुरू करें पर क्लिक करें. इससे आपको अपने प्रोजेक्ट के लिए, ज़रूरी एपीआई और संसाधन सेट अप करने में मदद मिलेगी.

  4. Gemini Developer API को चुनें. अगर आप चाहें, तो एपीआई की सेवा देने वाली किसी अन्य कंपनी को बाद में कभी भी सेट अप किया जा सकता है और उसका इस्तेमाल किया जा सकता है.

    कंसोल, ज़रूरी एपीआई चालू करेगा और आपके प्रोजेक्ट में एक नई, खास Gemini एपीआई पासकोड बनाएगा.
    अपने ऐप्लिकेशन के कोडबेस में, इस नई Gemini एपीआई कुंजी को न जोड़ें. ज़्यादा जानें.

  5. अगर कंसोल के वर्कफ़्लो में कहा जाए, तो अपने ऐप्लिकेशन को रजिस्टर करने और उसे Firebase से कनेक्ट करने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें.

  6. अपने ऐप्लिकेशन में लाइब्रेरी और शुरू करने की प्रोसेस को अपडेट करने के लिए, माइग्रेशन की इस गाइड को पढ़ें.

दूसरा चरण: अपने ऐप्लिकेशन में Firebase AI Logic SDK टूल जोड़ना

Firebase प्रोजेक्ट सेट अप करने और ऐप्लिकेशन को Firebase से कनेक्ट करने (पिछला चरण देखें) के बाद, अब अपने ऐप्लिकेशन में Firebase AI Logic SDK टूल जोड़ा जा सकता है.

Swift

Firebase डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager का इस्तेमाल करें.

Firebase AI Logic लाइब्रेरी, Gemini और Imagen मॉडल के साथ इंटरैक्ट करने के लिए एपीआई का ऐक्सेस देती है. इस लाइब्रेरी को Apple प्लैटफ़ॉर्म (firebase-ios-sdk) के लिए Firebase SDK टूल के हिस्से के तौर पर शामिल किया गया है.

अगर Firebase का इस्तेमाल पहले से किया जा रहा है, तो पक्का करें कि आपका Firebase पैकेज v11.13.0 या इसके बाद का हो.

  1. Xcode में, अपना ऐप्लिकेशन प्रोजेक्ट खोलकर, फ़ाइल > पैकेज की डिपेंडेंसी जोड़ें पर जाएं.

  2. जब कहा जाए, तब Firebase के Apple प्लैटफ़ॉर्म के SDK टूल का रिपॉज़िटरी जोड़ें:

    https://github.com/firebase/firebase-ios-sdk
    
  3. SDK टूल का नया वर्शन चुनें.

  4. FirebaseAI लाइब्रेरी चुनें.

प्रोसेस पूरी होने के बाद, Xcode बैकग्राउंड में आपकी डिपेंडेंसी को अपने-आप हल और डाउनलोड करना शुरू कर देगा.

Kotlin

Firebase AI Logic Android के लिए SDK टूल (firebase-ai), Gemini और Imagen मॉडल के साथ इंटरैक्ट करने के लिए, एपीआई का ऐक्सेस देता है.

अपनी मॉड्यूल (ऐप्लिकेशन-लेवल) Gradle फ़ाइल (जैसे, <project>/<app-module>/build.gradle.kts) में, Android के लिए Firebase AI Logic लाइब्रेरी की डिपेंडेंसी जोड़ें. हमारा सुझाव है कि लाइब्रेरी के वर्शन को कंट्रोल करने के लिए, 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 Android के लिए SDK टूल (firebase-ai), Gemini और Imagen मॉडल के साथ इंटरैक्ट करने के लिए, एपीआई का ऐक्सेस देता है.

अपनी मॉड्यूल (ऐप्लिकेशन-लेवल) Gradle फ़ाइल (जैसे, <project>/<app-module>/build.gradle.kts) में, Android के लिए Firebase AI Logic लाइब्रेरी की डिपेंडेंसी जोड़ें. हमारा सुझाव है कि लाइब्रेरी के वर्शन को कंट्रोल करने के लिए, Firebase Android BoM का इस्तेमाल करें.

Java के लिए, आपको दो अतिरिक्त लाइब्रेरी जोड़नी होंगी.

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 लाइब्रेरी, Gemini और Imagen मॉडल के साथ इंटरैक्ट करने के लिए एपीआई का ऐक्सेस देती है. इस लाइब्रेरी को वेब के लिए Firebase JavaScript SDK टूल के हिस्से के तौर पर शामिल किया गया है.

  1. npm का इस्तेमाल करके, वेब के लिए Firebase JS SDK टूल इंस्टॉल करें:

    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

Flutter (firebase_ai) के लिए Firebase AI Logic प्लग इन, 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 फ़ाइल में, कॉन्फ़िगरेशन फ़ाइल से एक्सपोर्ट किए गए DefaultFirebaseOptions ऑब्जेक्ट का इस्तेमाल करके Firebase को शुरू करें:

    await Firebase.initializeApp(
      options: DefaultFirebaseOptions.currentPlatform,
    );
    
  4. अपना Flutter ऐप्लिकेशन फिर से बनाएं:

    flutter run
    

Unity

Google AI क्लाइंट SDK से, Unity के लिए सहायता उपलब्ध नहीं थी.

Unity के लिए Firebase AI Logic SDK टूल का इस्तेमाल शुरू करने का तरीका जानें.

अपने ऐप्लिकेशन से पुराना 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 के लिए सहायता उपलब्ध नहीं थी.

Unity के लिए Firebase AI Logic SDK टूल का इस्तेमाल शुरू करने का तरीका जानें.

तीसरा चरण: अपने ऐप्लिकेशन में इंपोर्ट और शुरुआती प्रोसेस को अपडेट करना

अपने इंपोर्ट अपडेट करें. साथ ही, 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 के लिए सहायता उपलब्ध नहीं थी.

Unity के लिए Firebase AI Logic SDK टूल का इस्तेमाल शुरू करने का तरीका जानें.

ध्यान दें कि इस्तेमाल की जा रही सुविधा के हिसाब से, हो सकता है कि आपके पास हमेशा GenerativeModel इंस्टेंस बनाने का विकल्प न हो.

चौथा चरण: इस्तेमाल की जा रही सुविधाओं के हिसाब से कोड अपडेट करना

इस चरण में, उन बदलावों के बारे में बताया गया है जो आपके इस्तेमाल की जाने वाली सुविधाओं के आधार पर ज़रूरी हो सकते हैं.

  • Firebase AI Logic क्लाइंट SDK, कोड को लागू करने की सुविधा के साथ काम नहीं करते. अगर आपको इस सुविधा का इस्तेमाल करना है, तो पक्का करें कि आपने अपने ऐप्लिकेशन में इसे शामिल किया हो.

  • Firebase AI Logic क्लाइंट SDK टूल पर माइग्रेट करने के लिए, आपको अपने कोड में कुछ बदलाव करने पड़ सकते हैं. इन बदलावों के बारे में जानने के लिए, नीचे दी गई सूचियां देखें.

सभी भाषाओं और प्लैटफ़ॉर्म के लिए ज़रूरी है

  • फ़ंक्शन कॉलिंग
    अगर आपने इस सुविधा को लागू किया है, तो आपको अपने स्कीमा को तय करने के तरीके में अपडेट करने होंगे. हमारा सुझाव है कि फ़ंक्शन के एलान लिखने का तरीका जानने के लिए, अपडेट की गई फ़ंक्शन कॉल करने की गाइड देखें.

  • responseSchema का इस्तेमाल करके, स्ट्रक्चर्ड आउटपुट (जैसे, JSON) जनरेट करना
    अगर आपने इस सुविधा को लागू किया है, तो आपको अपने स्कीमा को तय करने के तरीके में अपडेट करने होंगे. हमारा सुझाव है कि JSON स्कीमा लिखने का तरीका जानने के लिए, स्ट्रक्चर्ड आउटपुट की नई गाइड पढ़ें.

  • टाइम आउट

    • अनुरोधों के लिए डिफ़ॉल्ट टाइम आउट को 180 सेकंड पर सेट किया गया.

प्लैटफ़ॉर्म या भाषा के हिसाब से ज़रूरी है

Swift

  • एनोमेरेशन

    • ज़्यादातर enum टाइप को स्टैटिक वैरिएबल वाले struct से बदल दिया गया. इस बदलाव से, एपीआई को बेहतर बनाने के लिए ज़्यादा विकल्प मिलते हैं. साथ ही, यह पुराने वर्शन के साथ काम करता है. switch स्टेटमेंट का इस्तेमाल करते समय, अब आपको default: केस शामिल करना होगा, ताकि अनजान या मैनेज नहीं की जा सकने वाली वैल्यू को कवर किया जा सके. इसमें, आने वाले समय में SDK में जोड़ी गई नई वैल्यू भी शामिल हैं.

    • BlockThreshold एन्यूमरेशन का नाम बदलकर HarmBlockThreshold किया गया; यह टाइप अब struct है.

    • इन सूचियों (अब struct) से unknown और unspecified के मामले हटा दिए गए हैं: HarmCategory, HarmBlockThreshold, HarmProbability, BlockReason, और FinishReason.

    • एनोटेशन ModelContent.Part को Part नाम के प्रोटोकॉल से बदला गया, ताकि नए टाइप को पुराने सिस्टम के साथ काम करने वाले तरीके से जोड़ा जा सके. इस बदलाव के बारे में ज़्यादा जानकारी, कॉन्टेंट के हिस्से सेक्शन में दी गई है.

  • कॉन्टेंट के हिस्से

    • ThrowingPartsRepresentable प्रोटोकॉल को हटा दिया गया है. साथ ही, ModelContent के लिए, कॉम्पाइलर की गड़बड़ियों से बचने के लिए, इनिशलाइज़र को आसान बनाया गया है. सही तरीके से एन्कोड न हुई इमेज का इस्तेमाल generateContent में करने पर भी गड़बड़ियां दिखेंगी.

    • ModelContent.Part केस को Part प्रोटोकॉल के मुताबिक, यहां दिए गए struct टाइप से बदल दिया गया है:

      • .text से TextPart
      • .data से InlineDataPart
      • .fileData से FileDataPart
      • .functionCall से FunctionCallPart
      • .functionResponse से FunctionResponsePart
  • नुकसान की कैटगरी

    • HarmCategory को बदला गया, ताकि वह अब SafetySetting टाइप में नेस्ट न हो. अगर आपने इसे SafetySetting.HarmCategory के तौर पर रेफ़र किया है, तो इसे HarmCategory से बदला जा सकता है.
  • सुरक्षा से जुड़ा सुझाव, शिकायत या राय देना

    • SafetyFeedback टाइप हटा दिया गया है, क्योंकि इसका इस्तेमाल किसी भी जवाब में नहीं किया गया था.
  • साइटेशन का मेटाडेटा

    • CitationMetadata में, citationSources प्रॉपर्टी का नाम बदलकर citations किया गया.
  • बिल किए जा सकने वाले कुल वर्ण

    • CountTokensResponse में totalBillableCharacters प्रॉपर्टी को वैकल्पिक के तौर पर बदला गया है, ताकि उन स्थितियों को दिखाया जा सके जहां कोई वर्ण नहीं भेजा जाता.
  • उम्मीदवार का जवाब

    • अन्य प्लैटफ़ॉर्म से मैच करने के लिए, CandidateResponse को Candidate नाम दिया गया.
  • जनरेशन कॉन्फ़िगरेशन

    • GenerationConfig की सार्वजनिक प्रॉपर्टी को internal में बदला गया. ये सभी, initializer में कॉन्फ़िगर किए जा सकते हैं.

Kotlin

  • एनोमेरेशन

    • enum क्लास और sealed क्लास को रेगुलर क्लास से बदल दिया गया. इस बदलाव से, एपीआई को पुराने सिस्टम के साथ काम करने वाले तरीके में बेहतर बनाने में मदद मिलती है.

    • BlockThreshold एनोटेशन का नाम बदलकर HarmBlockThreshold किया गया.

    • इन इन्यूमरेशन से वैल्यू हटा दी गई हैं: HarmBlockThreshold, HarmProbability, HarmSeverity, BlockReason, और FinishReason.

  • ब्लॉक के तरीके

    • जिन तरीकों के नाम में Blob शामिल था उनका नाम बदलकर, InlineData का इस्तेमाल किया गया है.
  • सुरक्षा सेटिंग

    • फ़ील्ड method को वैल्यू के बिना छोड़ने की अनुमति दी गई है.
  • अवधि की कैटगरी

    • Kotlin की Duration क्लास के सभी इस्तेमाल हटा दिए गए हैं और इसे long से बदल दिया गया है. इस बदलाव से, Java के साथ बेहतर तरीके से इंटरऑपरेट किया जा सकता है.
  • साइटेशन का मेटाडेटा

    • CitationMetadata में पहले से एलान किए गए सभी फ़ील्ड को Citation नाम की नई क्लास में रैप किया गया. CitationMetadata में citations नाम की सूची में, आपको उद्धरणों की जानकारी मिल सकती है. इस बदलाव से, सभी प्लैटफ़ॉर्म पर टाइप को बेहतर तरीके से अलाइन किया जा सकता है.
  • टोकन की गिनती करना

    • फ़ील्ड totalBillableCharacters को वैल्यू के बिना छोड़ने की अनुमति दी गई है.
  • बिल किए जा सकने वाले कुल वर्ण

    • CountTokensResponse में totalBillableCharacters प्रॉपर्टी को वैकल्पिक के तौर पर बदला गया है, ताकि उन स्थितियों को दिखाया जा सके जहां कोई वर्ण नहीं भेजा जाता.
  • मॉडल को इंस्टैंशिएट करना

    • अन्य प्लैटफ़ॉर्म के साथ अलाइन करने के लिए, requestOptions पैरामीटर को पैरामीटर सूची के आखिर में ले जाया गया.

Java

  • एनोमेरेशन

    • enum क्लास और sealed क्लास को रेगुलर क्लास से बदल दिया गया. इस बदलाव से, एपीआई को पुराने सिस्टम के साथ काम करने वाले तरीके में बेहतर बनाने में मदद मिलती है.

    • BlockThreshold एनोटेशन का नाम बदलकर HarmBlockThreshold किया गया.

    • इन इन्यूमरेशन से वैल्यू हटा दी गई हैं: HarmBlockThreshold, HarmProbability, HarmSeverity, BlockReason, और FinishReason.

  • ब्लॉक के तरीके

    • जिन तरीकों के नाम में Blob शामिल था उनका नाम बदलकर, InlineData का इस्तेमाल किया गया है.
  • सुरक्षा सेटिंग

    • फ़ील्ड method को वैल्यू के बिना छोड़ने की अनुमति दी गई है.
  • अवधि की कैटगरी

    • Kotlin की Duration क्लास के सभी इस्तेमाल हटा दिए गए हैं और इसे long से बदल दिया गया है. इस बदलाव से, Java के साथ बेहतर तरीके से इंटरऑपरेट किया जा सकता है.
  • साइटेशन का मेटाडेटा

    • CitationMetadata में पहले से एलान किए गए सभी फ़ील्ड को Citation नाम की नई क्लास में रैप किया गया. CitationMetadata में citations नाम की सूची में, आपको उद्धरणों की जानकारी मिल सकती है. इस बदलाव से, सभी प्लैटफ़ॉर्म पर टाइप को बेहतर तरीके से अलाइन किया जा सकता है.
  • टोकन की गिनती करना

    • फ़ील्ड totalBillableCharacters को वैल्यू के बिना छोड़ने की अनुमति दी गई है.
  • बिल किए जा सकने वाले कुल वर्ण

    • CountTokensResponse में totalBillableCharacters प्रॉपर्टी को वैकल्पिक के तौर पर बदला गया है, ताकि उन स्थितियों को दिखाया जा सके जहां कोई वर्ण नहीं भेजा जाता.
  • मॉडल को इंस्टैंशिएट करना

    • अन्य प्लैटफ़ॉर्म के साथ अलाइन करने के लिए, requestOptions पैरामीटर को पैरामीटर सूची के आखिर में ले जाया गया.

Web

ध्यान दें कि JavaScript के लिए Google AI क्लाइंट SDK में कई बदलाव हुए हैं. ऐसा तब से हुआ है, जब Firebase AI Logic क्लाइंट SDK टूल इससे अलग हुए थे. यहां कुछ संभावित बदलावों की सूची दी गई है. Firebase AI Logic क्लाइंट SDK पर माइग्रेट करते समय, आपको इन पर ध्यान देने की ज़रूरत पड़ सकती है.

  • एनोमेरेशन

    • इन इन्यूमरेशन से वैल्यू हटा दी गई हैं: HarmCategory, BlockThreshold, HarmProbability, HarmSeverity, BlockReason, और FinishReason.
  • ब्लॉक करने की वजह

    • PromptFeedback में blockReason को वैकल्पिक के तौर पर सेट किया गया.
  • Search Grounding

    • इस सुविधा के सभी इस्तेमाल हटा दिए गए हैं, क्योंकि यह अब तक Firebase AI Logic SDK में काम नहीं करती.
  • गड़बड़ियां

    • GoogleGenerativeAIError के सभी इस्तेमाल को हटा दिया गया है. इसके अलावा, AIError पर स्विच किया जा सकता है.

Dart

  • एनोमेरेशन

    • इन इन्यूमरेशन से वैल्यू हटा दी गई हैं: HarmCategory, HarmProbability, BlockReason, और FinishReason.
  • डेटा का हिस्सा

    • अन्य प्लैटफ़ॉर्म के साथ अलाइन करने के लिए, DataPart का नाम बदलकर InlineDataPart और static data फ़ंक्शन का नाम बदलकर inlineData किया गया.
  • अनुरोध के विकल्प

    • RequestOptions को हटा दिया गया, क्योंकि timeout काम नहीं कर रहा था. इसे आने वाले समय में फिर से जोड़ा जाएगा. हालांकि, इसे अन्य प्लैटफ़ॉर्म के हिसाब से GenerativeModel टाइप में बदल दिया जाएगा.
  • सिलसिलेवार प्रोसेस को रोकना

    • GenerationConfig में stopSequences पैरामीटर को वैकल्पिक के तौर पर बदला गया है. साथ ही, खाली कलेक्शन के बजाय, डिफ़ॉल्ट रूप से null पर सेट किया गया है.
  • उद्धरण

    • CitationMetadata में, citationSources प्रॉपर्टी का नाम बदलकर citations किया गया. अन्य प्लैटफ़ॉर्म से मैच करने के लिए, CitationSource टाइप का नाम बदलकर Citation कर दिया गया था.
  • ग़ैर-ज़रूरी सार्वजनिक टाइप, तरीके, और प्रॉपर्टी

    • अनजाने में ज़ाहिर हो गई इन टाइप, तरीकों, और प्रॉपर्टी को हटा दिया गया है: defaultTimeout, CountTokensResponseFields, parseCountTokensResponse, parseEmbedContentResponse, parseGenerateContentResponse, parseContent, BatchEmbedContentsResponse, ContentEmbedding, EmbedContentRequest, और EmbedContentResponse.
  • टोकन की गिनती करना

    • countTokens फ़ंक्शन से ऐसे अतिरिक्त फ़ील्ड हटा दिए गए हैं जिनकी अब ज़रूरत नहीं है. सिर्फ़ contents की ज़रूरत है.
  • मॉडल को इंस्टैंशिएट करना

    • अन्य प्लैटफ़ॉर्म के साथ अलाइन करने के लिए, systemInstruction पैरामीटर को पैरामीटर की सूची के आखिर में ले जाया गया.
  • एम्बेड करने की सुविधा

    • मॉडल से, एम्बेड करने की ऐसी सुविधाएं हटा दी गई हैं जो काम नहीं करतीं (embedContent और batchEmbedContents).

Unity

Google AI क्लाइंट SDK से, Unity के लिए सहायता उपलब्ध नहीं थी.

Unity के लिए Firebase AI Logic SDK टूल का इस्तेमाल शुरू करने का तरीका जानें.


Firebase AI Logic के साथ अपने अनुभव के बारे में सुझाव/राय देना या शिकायत करना