برمجة

جافاسكريبت: احصل على جواب JSON من الذكاء

اطلب JSON نظيفاً بـ responseMimeType وحوّله إلى كائن بـ JSON.parse.

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

ليس نصاً، بل JSON

النص يكفي للمحادثة. في اختبار وقاموس ومتجر تحتاج السؤال والخيارات والجواب الصحيح كل واحد على حدة. إخراجه من جملة طويلة صعب. responseMimeType: "application/json" داخل generationConfig يُجبر الذكاء على JSON نظيف. لا يكتب "مرحباً، تفضل". generationConfig ليس داخل contents، بل في مستواه.

const sorguMelumati = {
  contents: [{ parts: [{ text: "2 rəng adı və kodu ver." }] }],
  generationConfig: { responseMimeType: "application/json" }
};

JSON.parse واختبار

الجزء القادم ما زال نصاً لا كائناً. JSON.stringify يحوّل الكائن إلى نص كي ترسله. JSON.parse يحوّل النص إلى مصفوفة. اكتب أسماء المفاتيح في السؤال بدقة: sual وvariantlar وduzgunCavab. وإلا اخترع الذكاء اسماً مختلفاً كل مرة. ثم تقرأ testler[0].sual وtestler[0].duzgunCavab.

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

async function testYarat(movzu) {
  const telimat = `${movzu} mövzusunda 2 sual hazırla. Massiv qaytar. Hər obyektdə sual, variantlar və duzgunCavab olsun.`;
  const cavab = await fetch(url, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      contents: [{ parts: [{ text: telimat }] }],
      generationConfig: { responseMimeType: "application/json" }
    })
  });
  const melumat = await cavab.json();
  const jsonMetni = melumat.candidates[0].content.parts[0].text;
  const testler = JSON.parse(jsonMetni);
  console.log(testler[0].sual, testler[0].duzgunCavab);
}

أسئلة

لماذا يكون sual قيمة undefined؟ لم يُكتب JSON.parse. jsonMetni ما زال نصاً لا مصفوفة.

لماذا يتغير المفتاح كل مرة؟ لا أسماء في السؤال. اكتب كلمات sual وvariantlar وduzgunCavab في التعليمة.

أين يوضع generationConfig؟ بجانب contents لا داخله. قيمة responseMimeType هي application/json.

ما الفرق بين stringify وparse؟ stringify يُرسل. parse يحوّل النص القادم إلى كائن.

المؤلف: Nibras Code