إضافة مساعد محادثة إلى تطبيق من أشهر الأفكار حاليًا. وهنا أيضًا يرتكب كثير من المطورين المبتدئين خطأ مكلفًا: يلصقون مفتاح API الخاص بالذكاء الاصطناعي مباشرة في كود JavaScript.
يمكن لأي شخص فتح ملف APK وقراءة الملفات بداخله. إذا كان مفتاحك هناك، فسيجده أحد وستدفع ثمن استخدامه. إليك الطريقة الصحيحة.
القاعدة: المفتاح لا يوضع في التطبيق أبدًا
يجب أن يتحدث تطبيقك مع خادمك. يحتفظ خادمك بالمفتاح ويتحدث مع مزوّد الذكاء الاصطناعي. لا يرى التطبيق المفتاح إطلاقًا.
Phone app → your small proxy → AI provider
(holds the key)
يمكن أن يكون هذا الوسيط صغيرًا جدًا. دالة بلا خادم على Cloudflare Workers مثلًا لا تتجاوز بضعة عشرات من الأسطر ولها طبقة مجانية سخية.
وسيط بسيط
// Cloudflare Worker. The key is stored as a secret, not in code. export default { async fetch(req, env) { if (req.method !== 'POST') return new Response('Not allowed', { status: 405 }); const { message } = await req.json(); if (!message || message.length > 2000) return new Response('Bad request', { status: 400 }); // Call your AI provider here with env.AI_KEY and return its answer. } };
خزّن المفتاح بميزة الأسرار في المنصة حتى لا يظهر في كودك أو مستودعك.
قيّد ما يستطيع الوسيط فعله
- حدّد حجم الإدخال. ارفض الرسائل الضخمة قبل أن تصل إلى الذكاء الاصطناعي.
- ثبّت النموذج والإعدادات على الخادم. لا تدع التطبيق يختار نموذجًا باهظًا.
- حد الطلبات. بضعة طلبات في الدقيقة لكل مستخدم تكفي تمامًا لميزة محادثة.
- ضع حدًا للإنفاق لدى مزوّد الذكاء الاصطناعي، حتى لا يتحول أي خطأ برمجي إلى فاتورة ضخمة.
الاستدعاء من تطبيقك
من تطبيق HTML الخاص بك، يكفي استدعاء fetch عادي إلى وسيطك. اعرض مؤشر كتابة أثناء الانتظار، وتعامل مع الأخطاء بلطف: قد يفقد الهاتف الإشارة، وقد تكون خدمة الذكاء الاصطناعي مشغولة.
تذكّر قواعد المتجر
يخضع التطبيق الذي يولّد نصوصًا بالذكاء الاصطناعي لسياسة Google Play للمحتوى المولّد بالذكاء الاصطناعي. تحتاج إلى طريقة يبلّغ بها المستخدمون عن المخرجات المسيئة، ويجب أن تذكر سياسة الخصوصية ونموذج أمان البيانات أن الرسائل تُرسل إلى خدمة طرف ثالث. نغطي الأمرين في دليلنا للسياسة وفي الخصوصية في تطبيقات الذكاء الاصطناعي.