Firebase AI Logic का इस्तेमाल करके, एआई की मदद से काम करने वाले ऐप्लिकेशन और सुविधाएं बनाएं. हाइब्रिड अनुमान लगाने की सुविधा, डिवाइस पर मौजूद मॉडल का इस्तेमाल करके अनुमान लगाने की सुविधा चालू करती है. अगर डिवाइस पर मॉडल उपलब्ध नहीं हैं, तो यह क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करती है.
इस रिलीज़ के साथ, वेब के लिए Firebase AI Logic क्लाइंट SDK टूल का इस्तेमाल करके, हाइब्रिड अनुमान लगाने की सुविधा उपलब्ध है. साथ ही, डेस्कटॉप पर Chrome के लिए, डिवाइस पर अनुमान लगाने की सुविधा भी उपलब्ध है.
इस्तेमाल के सुझाए गए उदाहरण और काम करने की सुविधाएं
इस्तेमाल के सुझाए गए उदाहरण:
अनुमान के आधार पर ऑफ़र दिखाने के लिए, उपयोगकर्ता के डिवाइस पर सेव किए गए मॉडल का इस्तेमाल करने के लिए:
- निजता को बेहतर बनाने के लिए
- लोकल कॉन्टेक्स्ट
- बिना किसी शुल्क के अनुमान लगाना
- ऑफ़लाइन काम करने की सुविधा
हाइब्रिड फ़ंक्शन की सुविधा का इस्तेमाल करने पर:
- अपने 100% दर्शकों तक पहुंचें. भले ही, डिवाइस मॉडल पर यह सुविधा उपलब्ध हो या नहीं
डिवाइस पर अनुमान लगाने के लिए, काम करने वाली सुविधाएं और क्षमताएं:
- एक बार में कॉन्टेंट जनरेट करने की सुविधा, स्ट्रीमिंग और नॉन-स्ट्रीमिंग
- सिर्फ़ टेक्स्ट वाले इनपुट से टेक्स्ट जनरेट करना
- टेक्स्ट और इमेज इनपुट से टेक्स्ट जनरेट करना. खास तौर पर, JPEG और PNG फ़ॉर्मैट वाली इमेज
- JSON और एनम (enums) के साथ-साथ स्ट्रक्चर्ड आउटपुट जनरेट करना
शुरू करें
इस गाइड में, हाइब्रिड इंफ़रेंस करने के लिए, Firebase AI Logic वेब के लिए SDK टूल का इस्तेमाल शुरू करने का तरीका बताया गया है.
डिवाइस पर मौजूद मॉडल का इस्तेमाल करके अनुमान लगाने के लिए, Chrome के Prompt API का इस्तेमाल किया जाता है. वहीं, क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करके अनुमान लगाने के लिए, आपके चुने गए Gemini APIसेवा देने वाले (Gemini Developer API या Vertex AI Gemini API) का इस्तेमाल किया जाता है.
पहला चरण: डिवाइस पर अनुमान लगाने के लिए, Chrome और Prompt API को सेट अप करना
Chrome Dev का नया वर्शन डाउनलोड करें.
डिवाइस पर अनुमान लगाने की सुविधा, Chrome के 138 और उसके बाद के वर्शन में उपलब्ध है.
अपने Chrome इंस्टेंस के लिए Prompt API को चालू करने के लिए, ये फ़्लैग सेट करें:
chrome://flags/#optimization-guide-on-device-model
: इसे चालू है पर सेट करें.chrome://flags/#prompt-api-for-gemini-nano
: इसे चालू है पर सेट करें.
Chrome के दस्तावेज़ में, localhost पर एपीआई इस्तेमाल करने के बारे में ज़्यादा जानें. इसके अलावा, सुझाव/राय देने के लिए, Chrome के रिलीज़ होने से पहले वर्शन को आज़माने की सुविधा देने वाले कार्यक्रम (ईपीपी) में शामिल हों.
डिवाइस पर मौजूद मल्टीमोडल मॉडल को चालू करने के लिए, यह फ़्लैग सेट करें:
chrome://flags/#prompt-api-for-gemini-nano-multimodal-input
: इसे चालू है पर सेट करें.
स्थानीय तौर पर एपीआई की पुष्टि करने के लिए:
Chrome को रीस्टार्ट करें.
डेवलपर टूल > कंसोल खोलें.
ये कमांड चलाएं:
await LanguageModel.availability();
पक्का करें कि आउटपुट
available
,downloading
याdownloadable
हो. .अगर आउटपुट
downloadable
है, तोawait LanguageModel.create();
को चलाकर मॉडल डाउनलोड किया जा सकता है. ऐसा न करने पर, डिवाइस पर अनुमान लगाने के लिए किया गया पहला अनुरोध, बैकग्राउंड में मॉडल डाउनलोड करना शुरू कर देगा. इसमें कुछ मिनट लग सकते हैं.
दूसरा चरण: Firebase प्रोजेक्ट सेट अप करना और अपने ऐप्लिकेशन को Firebase से कनेक्ट करना
Firebase कंसोल में साइन इन करें. इसके बाद, अपना Firebase प्रोजेक्ट चुनें.
Firebase console में, Firebase AI Logic पेज पर जाएं.
निर्देशों वाला वर्कफ़्लो लॉन्च करने के लिए, शुरू करें पर क्लिक करें. इससे आपको अपने प्रोजेक्ट के लिए, ज़रूरी एपीआई और संसाधन सेट अप करने में मदद मिलेगी.
वह "Gemini API" सेवा देने वाली कंपनी चुनें जिसका आपको Firebase AI Logic एसडीके टूल के साथ इस्तेमाल करना है. अगर आप चाहें, तो बाद में किसी अन्य एपीआई प्रोवाइडर को सेट अप करके उसका इस्तेमाल किया जा सकता है.
Gemini Developer API — बिलिंग की सुविधा ज़रूरी नहीं है (बिना किसी शुल्क के Spark के प्लान पर उपलब्ध है)
कंसोल, ज़रूरी एपीआई चालू करेगा और आपके प्रोजेक्ट में एक Gemini एपीआई पासकोड बनाएगा.
अपने ऐप्लिकेशन के कोडबेस में इस Gemini एपीआई कुंजी को न जोड़ें. ज़्यादा जानें.अगर आपको कीमत का प्लान अपग्रेड करना है, तो बिलिंग को बाद में सेट अप किया जा सकता है.
Vertex AI Gemini API — बिलिंग की ज़रूरत है (इसके लिए, पेमेंट के हिसाब से शुल्क चुकाने वाले Blaze प्लान की ज़रूरत होती है)
Console की मदद से, बिलिंग सेट अप की जा सकती है. साथ ही, अपने प्रोजेक्ट में ज़रूरी एपीआई चालू किए जा सकते हैं.
अगर कंसोल के वर्कफ़्लो में कहा जाए, तो अपने ऐप्लिकेशन को रजिस्टर करने और उसे Firebase से कनेक्ट करने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें.
अपने ऐप्लिकेशन में SDK टूल जोड़ने के लिए, इस गाइड में अगले चरण पर जाएं.
तीसरा चरण: SDK टूल जोड़ना
Firebase लाइब्रेरी, जनरेटिव मॉडल के साथ इंटरैक्ट करने के लिए एपीआई का ऐक्सेस देती है. इस लाइब्रेरी को वेब के लिए Firebase JavaScript SDK टूल में शामिल किया गया है.
npm का इस्तेमाल करके, वेब के लिए Firebase JS SDK टूल इंस्टॉल करें.
हाइब्रिड सुविधा को किसी दूसरे npm टैग के तहत रिलीज़ किया गया है. इसलिए, इसे इंस्टॉलेशन कमांड में शामिल करना न भूलें.
npm install firebase@eap-ai-hybridinference
अपने ऐप्लिकेशन में 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);
चौथा चरण: सेवा को शुरू करना और मॉडल इंस्टेंस बनाना
इस पेज पर, सेवा देने वाली कंपनी से जुड़ा कॉन्टेंट और कोड देखने के लिए, Gemini API पर क्लिक करें. |
Gemini मॉडल को प्रॉम्प्ट भेजने से पहले, चुने गए एपीआई प्रोवाइडर के लिए सेवा शुरू करें और GenerativeModel
इंस्टेंस बनाएं.
mode
को इनमें से किसी एक पर सेट करें:
prefer_on_device
: अगर डिवाइस पर मौजूद मॉडल उपलब्ध है, तो SDK टूल को उसका इस्तेमाल करने के लिए कॉन्फ़िगर करता है. अगर डिवाइस पर मौजूद मॉडल उपलब्ध नहीं है, तो SDK टूल को क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करने के लिए कॉन्फ़िगर करता है.only_on_device
: डिवाइस पर मौजूद मॉडल का इस्तेमाल करने या अपवाद दिखाने के लिए, SDK टूल को कॉन्फ़िगर करता है.only_in_cloud
: SDK टूल को इस तरह कॉन्फ़िगर करता है कि वह डिवाइस पर मौजूद मॉडल का कभी इस्तेमाल न करे.
prefer_on_device
या only_in_cloud
का इस्तेमाल करने पर, डिफ़ॉल्ट रूप से क्लाउड पर होस्ट किया गया मॉडल gemini-2.0-flash-lite
होता है. हालांकि, डिफ़ॉल्ट सेटिंग को बदला जा सकता है.
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
// Set the mode, for example to use on-device model when possible
const model = getGenerativeModel(ai, { mode: "prefer_on_device" });
किसी मॉडल को प्रॉम्प्ट का अनुरोध भेजना
इस सेक्शन में, अलग-अलग तरह के आउटपुट जनरेट करने के लिए, अलग-अलग तरह के इनपुट भेजने के तरीके के उदाहरण दिए गए हैं. इनमें ये शामिल हैं:
- सिर्फ़ टेक्स्ट वाले इनपुट से टेक्स्ट जनरेट करना
- टेक्स्ट और इमेज (मल्टीमोडल) इनपुट से टेक्स्ट जनरेट करना
अगर आपको स्ट्रक्चर्ड आउटपुट (जैसे, JSON या एनम) जनरेट करना है, तो "टेक्स्ट जनरेट करें" के इनमें से किसी एक उदाहरण का इस्तेमाल करें. साथ ही, मॉडल को दिए गए स्कीमा के हिसाब से जवाब देने के लिए कॉन्फ़िगर करें.
सिर्फ़ टेक्स्ट वाले इनपुट से टेक्स्ट जनरेट करना
इस सैंपल को आज़माने से पहले, पक्का करें कि आपने इस गाइड का शुरू करें सेक्शन पूरा कर लिया हो. |
टेक्स्ट वाले प्रॉम्प्ट से टेक्स्ट जनरेट करने के लिए, generateContent()
का इस्तेमाल किया जा सकता है:
// Imports + initialization of FirebaseApp and backend service + creation of model instance
// Wrap in an async function so you can use await
async function run() {
// Provide a prompt that contains text
const prompt = "Write a story about a magic backpack."
// To generate text output, call `generateContent` with the text input
const result = await model.generateContent(prompt);
const response = result.response;
const text = response.text();
console.log(text);
}
run();
टेक्स्ट और इमेज (मल्टीमोडल) इनपुट से टेक्स्ट जनरेट करना
इस सैंपल को आज़माने से पहले, पक्का करें कि आपने इस गाइड का शुरू करें सेक्शन पूरा कर लिया हो. |
generateContent()
का इस्तेमाल करके, ऐसे प्रॉम्प्ट से टेक्स्ट जनरेट किया जा सकता है जिसमें टेक्स्ट और इमेज फ़ाइलें शामिल हों. इसके लिए, हर इनपुट फ़ाइल का mimeType
और फ़ाइल को शामिल करें.
डिवाइस पर अनुमान लगाने के लिए, इनपुट इमेज के तौर पर PNG और JPEG फ़ॉर्मैट का इस्तेमाल किया जा सकता है.
// Imports + initialization of FirebaseApp and backend service + creation of model instance
// Converts a File object to a Part object.
async function fileToGenerativePart(file) {
const base64EncodedDataPromise = new Promise((resolve) => {
const reader = new FileReader();
reader.onloadend = () => resolve(reader.result.split(',')[1]);
reader.readAsDataURL(file);
});
return {
inlineData: { data: await base64EncodedDataPromise, mimeType: file.type },
};
}
async function run() {
// Provide a text prompt to include with the image
const prompt = "Write a poem about this picture:";
const fileInputEl = document.querySelector("input[type=file]");
const imagePart = await fileToGenerativePart(fileInputEl.files[0]);
// To generate text output, call `generateContent` with the text and image
const result = await model.generateContent([prompt, imagePart]);
const response = result.response;
const text = response.text();
console.log(text);
}
run();
तुम और क्या कर सकती हो?
ऊपर दिए गए उदाहरणों के अलावा, आपके पास अन्य अनुमान लगाने के मोड इस्तेमाल करने, डिफ़ॉल्ट फ़ॉलबैक मॉडल को बदलने, और जवाबों को कंट्रोल करने के लिए मॉडल कॉन्फ़िगरेशन का इस्तेमाल करने का विकल्प भी है.
अनुमान लगाने के अन्य मोड का इस्तेमाल करना
ऊपर दिए गए उदाहरणों में, SDK को कॉन्फ़िगर करने के लिए prefer_on_device
मोड का इस्तेमाल किया गया है, ताकि डिवाइस पर मौजूद मॉडल का इस्तेमाल किया जा सके. हालांकि, अगर यह उपलब्ध नहीं है, तो क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल किया जा सकता है. SDK टूल, अनुमान लगाने के दो अलग-अलग मोड उपलब्ध कराता है: only_on_device
और only_in_cloud
.
only_on_device
मोड का इस्तेमाल करें, ताकि SDK टूल सिर्फ़ डिवाइस पर मौजूद मॉडल का इस्तेमाल कर सके. इस कॉन्फ़िगरेशन में, अगर डिवाइस पर कोई मॉडल उपलब्ध नहीं है, तो एपीआई गड़बड़ी का मैसेज दिखाएगा.const model = getGenerativeModel(ai, { mode: "only_on_device" });
only_in_cloud
मोड का इस्तेमाल करें, ताकि SDK टूल सिर्फ़ क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल कर सके.const model = getGenerativeModel(ai, { mode: "only_in_cloud" });
डिफ़ॉल्ट फ़ॉलबैक मॉडल को बदलना
prefer_on_device
मोड का इस्तेमाल करने पर, अगर डिवाइस पर मॉडल उपलब्ध नहीं है, तो एसडीके टूल, क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करेगा. डिफ़ॉल्ट फ़ॉलबैक के तौर पर, क्लाउड पर होस्ट किया गया मॉडल gemini-2.0-flash-lite
होता है. क्लाउड पर होस्ट किया गया यह मॉडल,only_in_cloud
मोड का इस्तेमाल करने पर भी डिफ़ॉल्ट तौर पर लागू होता है.
क्लाउड पर होस्ट किए गए डिफ़ॉल्ट मॉडल के विकल्प के तौर पर कोई दूसरा मॉडल तय करने के लिए, inCloudParams
कॉन्फ़िगरेशन विकल्प का इस्तेमाल किया जा सकता है:
const model = getGenerativeModel(ai, {
mode: 'prefer_on_device',
inCloudParams: {
model: "gemini-2.0-flash"
}
});
Gemini के साथ काम करने वाले सभी मॉडल के नाम देखें.
जवाबों को कंट्रोल करने के लिए, मॉडल कॉन्फ़िगरेशन का इस्तेमाल करना
मॉडल के हर अनुरोध में, मॉडल कॉन्फ़िगरेशन भेजा जा सकता है. इससे यह कंट्रोल किया जा सकता है कि मॉडल, जवाब कैसे जनरेट करता है. क्लाउड पर होस्ट किए गए मॉडल और डिवाइस पर मौजूद मॉडल, कॉन्फ़िगरेशन के अलग-अलग विकल्प देते हैं.
कॉन्फ़िगरेशन, इंस्टेंस के लाइफ़टाइम के लिए बनाए रखा जाता है. अगर आपको किसी दूसरे कॉन्फ़िगरेशन का इस्तेमाल करना है, तो उस कॉन्फ़िगरेशन के साथ नया GenerativeModel
इंस्टेंस बनाएं.
क्लाउड पर होस्ट किए गए मॉडल के लिए कॉन्फ़िगरेशन सेट करना
क्लाउड पर होस्ट किए गए Gemini मॉडल को कॉन्फ़िगर करने के लिए, inCloudParams
विकल्प का इस्तेमाल करें. उपलब्ध पैरामीटर के बारे में जानें.
const model = getGenerativeModel(ai, {
mode: 'prefer_on_device',
inCloudParams: {
model: "gemini-2.0-flash"
temperature: 0.8,
topK: 10
}
});
डिवाइस पर मौजूद मॉडल के लिए कॉन्फ़िगरेशन सेट करना
ध्यान दें कि डिवाइस पर मौजूद मॉडल का इस्तेमाल करके अनुमान लगाने के लिए, Chrome के Prompt API का इस्तेमाल किया जाता है.
डिवाइस पर मौजूद मॉडल को कॉन्फ़िगर करने के लिए, onDeviceParams
विकल्प का इस्तेमाल करें. उपलब्ध पैरामीटर के बारे में जानें.
const model = getGenerativeModel(ai, {
mode: 'prefer_on_device',
onDeviceParams: {
createOptions: {
temperature: 0.8,
topK: 8
}
}
});
स्ट्रक्चर्ड आउटपुट के लिए कॉन्फ़िगरेशन सेट करना
क्लाउड पर होस्ट किए गए और डिवाइस पर मौजूद, दोनों मॉडल का इस्तेमाल करके अनुमान लगाने के लिए, स्ट्रक्चर्ड आउटपुट (जैसे कि JSON और एनम) जनरेट किया जा सकता है.
हाइब्रिड इंफ़रेंस के लिए, स्ट्रक्चर्ड आउटपुट के साथ जवाब देने के लिए मॉडल को कॉन्फ़िगर करने के लिए, inCloudParams
और onDeviceParams
, दोनों का इस्तेमाल करें. अन्य मोड के लिए, सिर्फ़ लागू कॉन्फ़िगरेशन का इस्तेमाल करें.
inCloudParams
के लिए: सहीresponseMimeType
(इस उदाहरण में,application/json
) के साथ-साथ वहresponseSchema
भी बताएं जिसका इस्तेमाल मॉडल को करना है.onDeviceParams
के लिए: वहresponseConstraint
तय करें जिसका इस्तेमाल मॉडल को करना है.
JSON आउटपुट
इस उदाहरण में, हाइब्रिड अनुमान के लिए, सामान्य JSON आउटपुट के उदाहरण को अडैप्ट किया गया है:
import {
getAI,
getGenerativeModel,
Schema
} from "firebase/ai";
const jsonSchema = Schema.object({
properties: {
characters: Schema.array({
items: Schema.object({
properties: {
name: Schema.string(),
accessory: Schema.string(),
age: Schema.number(),
species: Schema.string(),
},
optionalProperties: ["accessory"],
}),
}),
}
});
const model = getGenerativeModel(ai, {
mode: 'prefer_on_device',
inCloudParams: {
model: "gemini-2.0-flash"
generationConfig: {
responseMimeType: "application/json",
responseSchema: jsonSchema
},
}
onDeviceParams: {
promptOptions: {
responseConstraint: jsonSchema
}
}
});
Enum आउटपुट
ऊपर बताए गए तरीके के मुताबिक ही, लेकिन हाइब्रिड इंफ़रेंस के लिए, एनम आउटपुट के दस्तावेज़ में बदलाव करके:
// ...
const enumSchema = Schema.enumString({
enum: ["drama", "comedy", "documentary"],
});
const model = getGenerativeModel(ai, {
// ...
generationConfig: {
responseMimeType: "text/x.enum",
responseSchema: enumSchema
},
// ...
डिवाइस पर अनुमान लगाने की सुविधा के लिए, फ़िलहाल ये सुविधाएं उपलब्ध नहीं हैं
एक्सपेरिमेंट के तौर पर रिलीज़ किए गए इस वर्शन में, डिवाइस पर अनुमान लगाने के लिए, Web SDK की सभी सुविधाएं उपलब्ध नहीं हैं. यहां दी गई सुविधाएं, डिवाइस पर अनुमान लगाने की सुविधा के लिए फ़िलहाल उपलब्ध नहीं हैं. हालांकि, ये आम तौर पर क्लाउड पर अनुमान लगाने की सुविधा के लिए उपलब्ध हैं.
JPEG और PNG के अलावा, इमेज फ़ाइल के इनपुट टाइप से टेक्स्ट जनरेट करना
- क्लाउड पर होस्ट किए गए मॉडल पर फ़ॉलबैक किया जा सकता है;
हालांकि,
only_on_device
मोड में गड़बड़ी का मैसेज दिखेगा.
- क्लाउड पर होस्ट किए गए मॉडल पर फ़ॉलबैक किया जा सकता है;
हालांकि,
ऑडियो, वीडियो, और दस्तावेज़ों (जैसे, PDF) के इनपुट से टेक्स्ट जनरेट करना
- क्लाउड पर होस्ट किए गए मॉडल पर फ़ॉलबैक किया जा सकता है;
हालांकि,
only_on_device
मोड में गड़बड़ी का मैसेज दिखेगा.
- क्लाउड पर होस्ट किए गए मॉडल पर फ़ॉलबैक किया जा सकता है;
हालांकि,
Gemini या Imagen मॉडल का इस्तेमाल करके इमेज जनरेट करना
- क्लाउड पर होस्ट किए गए मॉडल पर फ़ॉलबैक किया जा सकता है;
हालांकि,
only_on_device
मोड में गड़बड़ी का मैसेज दिखेगा.
- क्लाउड पर होस्ट किए गए मॉडल पर फ़ॉलबैक किया जा सकता है;
हालांकि,
अलग-अलग तरीकों से किए जाने वाले अनुरोधों में, यूआरएल का इस्तेमाल करके फ़ाइलें उपलब्ध कराना. आपको डिवाइस पर मौजूद मॉडल के लिए, फ़ाइलों को इनलाइन डेटा के तौर पर देना होगा.
एक से ज़्यादा बार की गई चैट
- क्लाउड पर होस्ट किए गए मॉडल पर फ़ॉलबैक किया जा सकता है;
हालांकि,
only_on_device
मोड में गड़बड़ी का मैसेज दिखेगा.
- क्लाउड पर होस्ट किए गए मॉडल पर फ़ॉलबैक किया जा सकता है;
हालांकि,
Gemini Live API की मदद से, दोनों तरफ़ से स्ट्रीमिंग करना
- ध्यान दें कि यह सुविधा, वेब के लिए Firebase AI Logic क्लाइंट SDK टूल के साथ काम नहीं करती. यहां तक कि क्लाउड पर होस्ट किए गए मॉडल के लिए भी.
फ़ंक्शन कॉल करना
- जल्द आ रहा है!
टोकन की गिनती करना
- हमेशा गड़बड़ी का मैसेज दिखाता है. क्लाउड पर होस्ट किए गए और डिवाइस पर मौजूद मॉडल के बीच, गिनती अलग-अलग होगी. इसलिए, कोई आसान फ़ॉलबैक नहीं है.
डिवाइस पर अनुमान लगाने के लिए, Firebase console में एआई मॉनिटरिंग.
- ध्यान दें कि क्लाउड पर होस्ट किए गए मॉडल का इस्तेमाल करके किए गए किसी भी अनुमान की निगरानी, Firebase AI Logic वेब के लिए क्लाइंट SDK टूल का इस्तेमाल करके किए गए अन्य अनुमान की तरह ही की जा सकती है.
Firebase AI Logic के साथ अपने अनुभव के बारे में सुझाव/राय दें या शिकायत करें