برمجة

جافاسكريبت: systemInstruction، قاعدة مخفية

قل للذكاء من هو وماذا يرفض عبر systemInstruction.

كل الدروس · دروس جافاسكريبت: تعلّم من الصفر

قاعدة مخفية

تعليمة النظام قاعدة لا يراها المستخدم. يكتبها المبرمج. contents هو سؤال المستخدم. تقول القاعدة للذكاء من هو، وكم يكون طول الجواب، وأي موضوع يرفض.

const sorguMelumati = {
  systemInstruction: {
    parts: [{ text: "Sən Nibras Code müəllimisən. Yalnız qısa cümlə ilə cavab ver." }]
  },
  contents: [
    { parts: [{ text: "JavaScript nədir?" }] }
  ]
};

يتغير الدور لا الكود

في الدالة نفسها يتغير نص systemInstruction فقط. المعلّم يرفض السؤال الخارج عن الموضوع. معلّم العربية يكتب الكلمة بالحركات وجملة واحدة بلا شرح إضافي. المفتاح يأتي من process.env.

const apiKey = process.env.GEMINI_API_KEY;
const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=${apiKey}`;

async function muellimBot(istifadeciSuali) {
  const sorguMelumati = {
    systemInstruction: {
      parts: [{
        text: "Sən JavaScript müəllimisən. Yalnız proqramlaşdırma sualına cavab ver. Başqa mövzuda belə yaz: Üzr istəyirəm, mən yalnız proqramlaşdırma üzrə kömək edə bilərəm."
      }]
    },
    contents: [{ parts: [{ text: istifadeciSuali }] }]
  };
  const cavab = await fetch(url, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(sorguMelumati)
  });
  const melumat = await cavab.json();
  console.log(melumat.candidates[0].content.parts[0].text);
}

أسئلة

كيف يُكتب الاسم؟ systemInstruction. systeminstruction وsystem_instruction خطأ. حرف I كبير.

لماذا تُكسر القاعدة؟ التعليمة تناقض نفسها. لا تطلب شرحاً طويلاً وجملة واحدة معاً. اكتبها قصيرة وواضحة.

هل أضع القاعدة داخل contents؟ يعمل، لكنه يُنسى في حديث طويل. القاعدة مكانها systemInstruction.

ماذا في التعليمة القوية؟ الهوية والطول والمنع وشكل الناتج. الأربعة يجب ألا تناقض بعضها.

المؤلف: Nibras Code