جافاسكريبت: واجهة ذكاء اصطناعي
أرسل سؤالاً إلى Gemini بـ fetch واقرأ الجواب من الكائن. المفتاح يبقى سراً.
كل الدروس · دروس جافاسكريبت: تعلّم من الصفر
الواجهة والمفتاح
لا تكتب النموذج من الصفر. الواجهة جسر بين كودك ونموذج جاهز. الكود يرسل السؤال والخادم يُرجع الجواب. للبداية يعطي Gemini مفتاحاً مجانياً ولا يطلب بطاقة. في aistudio.google.com اختر Get API key ثم Create API key. المفتاح ككلمة السر: لا تشاركه ولا تضعه على GitHub عام.
الطلب كائن
السؤال يذهب داخل كائن. نص الجواب في candidates[0].content.parts[0].text. candidates مصفوفة، لذلك تُكتب [0]. إذا نُسيت [0] كانت النتيجة undefined.
const sorguMelumati = {
contents: [
{
parts: [{ text: "JavaScript-də dəyişən nədir?" }]
}
]
};أرسله بـ fetch
POST يرسل السؤال. JSON.stringify يحوّل الكائن إلى نص كي يسافر. cavab.json() يُعيد النص القادم إلى كائن. يجب ألا يكون في أول المفتاح أو آخره فراغ. لا تضع المفتاح داخل الصفحة: من يراه يستطيع أخذه.
const apiKey = "BURAYA_OZ_API_ACARINIZI_YAZIN";
const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=${apiKey}`;
fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(sorguMelumati)
})
.then(cavab => cavab.json())
.then(melumat => {
const aiMetni = melumat.candidates[0].content.parts[0].text;
console.log(aiMetni);
});أسئلة
لماذا يظهر 400 أو 403؟ المفتاح خطأ أو حوله فراغ. داخل علامات الاقتباس يجب أن يكون المفتاح وحده.
لماذا لا يذهب body؟ لا يمكن كتابة الكائن مباشرة. يلزم JSON.stringify(sorguMelumati).
لماذا يكون الجواب undefined؟ candidates مصفوفة. يجب كتابة [0]. candidates.content خطأ.
من أين يُقرأ النص؟ melumat.candidates[0].content.parts[0].text