آپ کو اپنے کلائنٹ کوڈ میں Gemini API کیز کیوں نہیں ڈالنا چاہئے (اور Firebase AI Logic میں اس کے ارد گرد کیسے کام کریں)

جنریٹو AI کا دھماکہ ہزاروں ویب ڈویلپرز کو اپنی ایپس میں ذہین خصوصیات شامل کرنے پر مجبور کر رہا ہے۔

پہلی جبلت عام طور پر جیمنی API کے SDK کو براہ راست براؤزر سے کال کرنا ہے۔ یہ جبلت آپ کی API کیز کو دنیا کے سامنے ظاہر کرنے کے سنگین سیکیورٹی رسک کے ساتھ آتی ہے۔

اس آرٹیکل میں، آپ سیکھیں گے کہ خام Gemini API کیز کو کلائنٹس کو دینا کیوں خطرناک ہے، Firebase AI Logic کا پراکسی فن تعمیر کیسے اسے حل کرتا ہے، اور Firebase App Check اس مسئلے کے آخری حصے کو کیسے حل کرتا ہے جو اکیلے پراکسی نہیں کر سکتے۔

آخر میں، آپ کے پاس ورکنگ پروڈکشن طرز کا سیٹ اپ ہوگا، جس میں ایک محفوظ AI منطق کلائنٹ، مناسب طریقے سے ترتیب شدہ ایپ چیک فلو (بشمول ڈیبگ ٹوکنز)، حقیقی دنیا کے استعمال کے نمونے، اسٹریمنگ، ملٹی ٹرن چیٹ، اور ساختی JSON آؤٹ پٹ شامل ہیں۔ console.log.

انڈیکس

شرائط

شروع کرنے سے پہلے، یقینی بنائیں کہ آپ کے پاس درج ذیل ہیں:

  • Node.js v18 یا اس سے زیادہ (node --version)

  • کوئی راستہ نہیں گوگل اکاؤنٹ ایک فائربیس پروجیکٹ بنائیں (مفت اسپارک پلان جیمنی ڈیولپر API کے ساتھ کام کرتا ہے)

  • جاوا اسکرپٹ کا بنیادی علم، async/awaitاور ES ماڈیول

  • کوڈ ایڈیٹر اور ٹرمینل

یہ گائیڈ آپ کو زمین سے اوپر لے جاتی ہے، لہذا آپ کو Firebase، AppCheck، یا Gemini API کے ساتھ کسی پیشگی تجربے کی ضرورت نہیں ہے۔

کلائنٹ سائیڈ API کلیدی مسئلہ

جاوا اسکرپٹ بنڈل کے اندر یا .env فائل کو براؤزر پر منتقل کرنا ایک سنگین سیکیورٹی خامی ہے اور اس کا فائدہ اٹھانا بہت آسان ہے۔ عملی طور پر یہ کیسا لگتا ہے یہاں ہے:

آئیے فرض کریں کہ آپ جیمنی API کو اپنے کلائنٹ کوڈ سے اس طرح کال کرتے ہیں:

// DON'T do this in a browser-shipped app
const genAI = new GoogleGenerativeAI("AIzaSyD4-your-real-key-here");

اسے تعمیراتی ٹول کے ساتھ بنڈل کرنے سے آؤٹ پٹ JS میں کلیدیں سادہ متن میں ظاہر ہوں گی۔ کوئی بھی خصوصی ٹولز کی ضرورت کے بغیر اسے ایک منٹ سے بھی کم وقت میں تلاش کر سکتا ہے۔

# Anyone can run this against your deployed bundle
curl -s https://your-app.com/assets/main.js | grep -oE "AIzaSy[A-Za-z0-9_-]{33}"

یہ کمانڈ miniified پروڈکشن بنڈل سے Gemini API کلید نکالتی ہے، اگر یہ موجود ہے۔ آپ کے براؤزر کے ڈویلپمنٹ ٹولز میں موجود نیٹ ورک ٹیب آپ کو باہر جانے والی تمام درخواستوں کا بہت بہتر نظارہ فراہم کرتا ہے: generativelanguage.googleapis.com کلید کو براہ راست استفسار کے سٹرنگ یا ہیڈر میں ڈسپلے کریں۔

اگر Gemini API کلید اس طرح لیک ہو جاتی ہے تو حملہ آور یہ کر سکتا ہے:

  • اپنا پورا استعمال کا کوٹہ استعمال کریں۔

  • کلاؤڈ بل غیر متوقع طور پر بڑھتے ہیں (جیمنی کالز کا بل فی ٹوکن، فلیٹ ریٹ ڈیٹا بیس کے پڑھنے کے برعکس ہوتا ہے)۔

  • اگر آپ اپنی درخواستوں پر عمل درآمد کرنے کے لیے وسائل کا استعمال کرتے ہیں، تو آپ کا گوگل کلاؤڈ پروجیکٹ کسی استحصال کی وجہ سے منجمد ہو سکتا ہے۔

تاریخی طور پر، واحد حل یہ تھا کہ ایک کسٹم بیک اینڈ سرور (Node.js, Python, Go…) کو بنایا جائے، تعینات کیا جائے اور اسے برقرار رکھا جائے جو آپ کی ایپ اور Gemini API کے درمیان ایک پراکسی کے طور پر کام کرتا ہے تاکہ اس سنگل سٹرنگ کو خفیہ رکھا جا سکے۔ یہ چلانے کے لیے اصل بنیادی ڈھانچہ ہے جو ایک سادہ فنکشن ہونا چاہیے۔

مرحلہ 1 – Firebase AI Logic کا پراکسی فن تعمیر کیسے کام کرتا ہے۔

Firebase AI منطق ہم پراکسی گیٹ وے کی تعمیر یا میزبانی کی ضرورت کے بغیر ایک پراکسی گیٹ وے فراہم کرتے ہیں۔ آپ اب بھی کلائنٹ سائیڈ کوڈ لکھتے ہیں، لیکن آپ کی چابیاں کبھی بھی گوگل کے بنیادی ڈھانچے کو نہیں چھوڑتی ہیں۔

[Web Browser] ──(Authenticated Request)──> [Firebase AI Logic Proxy] ──(Key Injected Server-Side)──> [Gemini API]

آپ کی Gemini API کلید آپ کے Firebase پروجیکٹ سے منسلک ہے اور محفوظ طریقے سے اسٹور کی گئی ہے۔ کلائنٹ SDK پراکسی گیٹ وے کو ایک درخواست بھیجتا ہے، جو کلید داخل کرتا ہے اور کال کو آپ کی پسند کے "Gemini API” فراہم کنندہ کو بھیج دیتا ہے۔ کلید جے ایس بنڈل، نیٹ ورک کی درخواست، یا کسی اور چیز میں موجود نہیں ہے جس کا براؤزر معائنہ کر سکتا ہے۔

Firebase AI Logic دو فراہم کنندگان کو سپورٹ کرتی ہے، جن کا انتخاب کنسول میں سروس سیٹ اپ کرتے وقت کیا جاتا ہے۔

Gemini Developer API Agent Platform Gemini API (سابقہ ​​Vertex AI)
ادائیگی کی منصوبہ بندی مفت اسپارک پلان پر کام کرتا ہے۔ بلیز (جیسی ادائیگی کریں) پلان درکار ہے۔
کے لیے بہترین موزوں ہے۔ فوری آغاز، پروٹو ٹائپنگ، زیادہ تر ویب/موبائل ایپس ڈیٹا کی رہائش کے تقاضے، ٹیمیں پہلے سے ہی Google Cloud/Vertex AI استعمال کر رہی ہیں۔
مقامی کنٹرول محدود براہ کرم ایک مخصوص علاقہ منتخب کریں (us، eu) ماڈل تک رسائی کے لیے ماڈل پر منحصر ہے۔
رگڑ کی ترتیبات کم سے کم، بلنگ کی ضرورت نہیں ہے۔ کلاؤڈ بلنگ اکاؤنٹ کنکشن درکار ہے۔

زیادہ تر ایپس کے لیے، Gemini Developer API سے شروع کریں، جسے ہم اس ٹیوٹوریل میں استعمال کرتے ہیں۔ فراہم کنندگان کو بعد میں تبدیل کرنا کنفیگریشن میں تبدیلی ہے، کوڈ کو دوبارہ لکھنا نہیں۔ کیونکہ دونوں ایک ہی عمل سے گزرتے ہیں۔ getGenerativeModel() انٹرفیس

مرحلہ 2 – Firebase ایپ اصل میں کیا چیک کرتی ہے۔

پراکسی آپ کی چابیاں چھپاتے ہیں۔ یہ خود سے نہیں رکتا۔ جو بھی فائر بیس کنفیگریشن آبجیکٹ بنانے کے لیے اس پراکسی کو کال کریں (apiKey، projectIdوغیرہ) خفیہ نہیں ہیں، انہیں عوامی ہونے کے لیے ڈیزائن کیا گیا ہے، اور وہ تمام تقسیم شدہ ایپس کے بنڈل میں ظاہر ہونے کے لیے ڈیزائن کیے گئے ہیں۔ کسی دوسری پرت کے بغیر، آپ کا بوٹ اس کنفیگریشن کو کاپی کر سکتا ہے، آپ کے پروجیکٹ کی طرف اشارہ کرنے والی اپنی Firebase ایپ کو شروع کر سکتا ہے، اور کسی حقیقی صارف کی شمولیت کے بغیر Gemini انوائسز چلانے کے لیے AI Logic پراکسی کو براہ راست کال کر سکتا ہے۔

یہ ہے فائر بیس ایپ چیک کریں۔ تصدیق کے ساتھ الجھن میں پڑنا آسان ہے، لہذا یہ سمجھنا اچھا خیال ہے کہ یہ کیا کرتا ہے۔

ایپ چیک ثبوت ہے، تصدیق نہیں۔ Firebase توثیق کا جواب "یہ صارف کون ہے؟” ایپ چیک دیگر سوالات کے جوابات دیتا ہے، جیسے: ‘کیا یہ درخواست کسی حقیقی، غیر چھیڑ چھاڑ سے آرہی ہے؟ میری ایپکیا یہ اسکرپٹ، بوٹ، یا کسی اور کی ایپ نہیں ہے جو میری کنفیگریشن کا استعمال کر رہی ہے؟’ دونوں کو ایک ساتھ استعمال کیا جا سکتا ہے اور کیا جانا چاہیے، لیکن ایپ چیک بدسلوکی سے تحفظ فراہم کرتی ہے یہاں تک کہ جب درخواست کا کوئی صارف سیاق و سباق نہ ہو۔

آئیے ایک قدم بہ قدم دیکھتے ہیں کہ بہاؤ دراصل کیسے کام کرتا ہے۔

  1. جب آپ کی ایپ ایپ چیک کو شروع کرتی ہے، SDK ثبوت چیلنج تشکیل شدہ فراہم کنندگان کے ساتھ۔ ویب پر، reCAPTCHA Enterprise ایک غیر مرئی خطرے کی تشخیص (ماؤس کی نقل و حرکت، براؤزر کے فنگر پرنٹس، نیٹ ورک سگنلز) انجام دیتا ہے اور یہ دعویٰ کرتے ہوئے ایک ٹوکن واپس کرتا ہے، "یہ براؤزر کا ایک جائز سیشن معلوم ہوتا ہے۔”

  2. آپ کی ایپ کا SDK متعلقہ reCAPTCHA ٹوکن کو Firebase کے App Check بیک اینڈ پر بھیجتا ہے، جو Firebase کے App Check بیک اینڈ کے ساتھ اس کا تبادلہ کرتا ہے۔ فائر بیس ایپ چیک ٹوکنیہ ایک مختصر مدت کے لیے دستخط شدہ JWT ہے۔

  3. وہ ایپ چیک ٹوکن مقامی طور پر کیش کیا جاتا ہے اور خود بخود آپ کی ایپ Firebase AI Logic (اور دیگر ایپ چیک انٹیگریشن سروسز، جیسے کہ Firestore یا Cloud Functions) کے بعد کی جانے والی تمام درخواستوں سے منسلک ہوتا ہے۔

  4. AI Logic پراکسی جیمنی کو درخواست بھیجنے سے پہلے ایپ چیک ٹوکن کے دستخط اور درستگی کی تصدیق کرتی ہے۔ کوئی درست ٹوکن نہیں ہے اور درخواست ماڈل تک نہیں پہنچتی ہے۔

یہ کیوں اہمیت رکھتا ہے۔ خاص طور پر عام CRUD بیک اینڈز کے مقابلے جنریٹیو AI کے لیے لاگت کی شکل زیادہ اہم ہے۔ بلاک شدہ فائر اسٹور ریڈز کے لیے کوئی قیمت نہیں ہے۔ اگر مسدود نہیں کیا گیا ہے تو، بلاک شدہ جیمنی کالز آپ کو فی درخواست حقیقی رقم خرچ کر سکتی ہیں، اور پیمانے پر، اسکرپٹڈ ابیوز لوپس آپ کے ماہانہ بجٹ کو چند گھنٹوں میں کھا سکتے ہیں۔ ایپ چیک اس بات کو یقینی بنانے کا گیٹ وے ہے کہ آپ کا خرچ صرف حقیقی ایپس پر چلتا ہے۔

احتیاط: گوگل نے ایپ چیک کے نفاذ کا اعلان کر دیا۔ 2 نومبر 2026 سے Firebase AI Logic کے لیے درکار ہے۔. جولائی 2026 سے، نئے AI منطق کے انضمام کے لیے ایپ کی جانچ پہلے ہی Firebase کنسول میں گائیڈڈ سیٹ اپ ورک فلو کے ذریعے خود بخود فعال ہو چکی ہے۔ مؤثر تاریخ کے بعد کسی بھی غیر مصدقہ درخواستوں کو مسترد کر دیا جائے گا، لہذا ہم بعد میں گھبرانے کی بجائے ابھی رابطہ کرنے کی تجویز کرتے ہیں۔

مرحلہ 3 – اپنا Firebase پروجیکٹ ترتیب دیں۔

  1. Firebase کنسول پر جائیں اور ایک نیا پروجیکٹ بنائیں یا ایک موجودہ پروجیکٹ کھولیں۔

  2. بائیں سائڈبار میں، کھولیں: تحریر پھر اے آئی منطق، پھر کلک کریں۔ شروع کرنا. منتخب کریں Gemini Developer API آپ بلنگ سیٹ اپ کیے بغیر بطور فراہم کنندہ حصہ لے سکتے ہیں۔

  3. دوبارہ پروجیکٹ کی ترتیباتپر جائیں۔ جنرل پھر آپ کی ایپ. اگر آپ نے پہلے سے اپنی ویب ایپ کو رجسٹر نہیں کرایا ہے تو اسے رجسٹر کریں اور Firebase کنفیگریشن آبجیکٹ کو کاپی کریں۔ اگلے مرحلے میں آپ کو اس کی ضرورت ہوگی۔

ایپ چیک کی ترتیبات کو خود ہی دریافت کرنے کی ضرورت ہے، لہذا ہم انہیں اگلے مرحلے کے لیے اکیلا چھوڑ دیں گے۔

مرحلہ 4 – فائر بیس ایپ چیک انٹیگریشن

اپنی ایپ کو reCAPTCHA انٹرپرائز کے ساتھ رجسٹر کریں۔

Firebase کنسول میں، اس پر جائیں: تحریر پھر ایپ چیک کریں۔ایک ویب ایپ منتخب کریں۔ reCAPTCHA انٹرپرائز بطور سپلائر۔ فائر بیس سائٹ کی کلید ایپ ڈومین سے منسلک ہے۔ اسے کاپی کریں جیسا کہ ہم اسے نیچے کوڈ میں منتقل کریں گے۔

SDK انسٹال کریں۔

npm install firebase

یہ واحد پیکیج ہے جس کی آپ کو ضرورت ہے۔ ReCaptchaEnterpriseProvider اندرونی شپنگ firebase/app-checkایک ہی حصہ firebase پیکج علیحدہ reCAPTCHA SDK انسٹال کرنے کی ضرورت نہیں ہے۔

Scroll to Top