T1 · Beginner · 7 دقيقةثابت · آخر مراجعة: 2026-08-19مسودة أولى — بنراجعها

أول Call — تنادي الموديل من كودّك

في سطر واحد · بتبعت request فيه رسايلك والـ model اللي عايزه، والـ API بيرجّعلك رد الموديل جوّه JSON — نفس فكرة أي HTTP call.

القاموس:LLMModelPromptToken
ليه ده مهم؟

ده الفرق بين إنك تلعب في الـ playground وإنك تبني منتج فعلي. كل حاجة جاية في الدومين ده مبنية على أول call ماشي صح.

زي ما تطلب أكل أونلاين: تبعت الطلب (رسايلك + الموديل)، تستنّى شوية، ييجي الرد. الـ API endpoint هو المطعم، والـ response هي الأوردر اللي رجعلك.

خلينا نفهمها بمثال

الموديل شيف موجود في مطبخ بعيد؛ إنت مش بتكلّمه صوت، بتبعتله ورقة طلب (request) وبتستنّى الطبق (response) يرجعلك.

تبعت POST فيه messages: [{role:'user', content:'رحّب بيّا'}] والموديل، فيرجّعلك JSON فيه رد assistant جوّه choices — تطلّع منه النص وتعرضه.

طيب بتحصل إزاي؟

الـ call بيتكوّن من ٣ حاجات: endpoint بتبعتله POST، وheader فيه مفتاحك (Authorization)، وbody فيه اسم الموديل ومصفوفة الـ messages. السيرفر بيشغّل inference على كلامك ويرجّعلك JSON فيه رد الموديل + بلوك usage بيعدّلك الـ tokens اللي اتصرفت. إنت بتتأكد الأول إن الـ status ناجح، وبعدين تطلّع النص من جوّه الرد وتستخدمه.

const res = await fetch("https://api.example.com/v1/chat/completions", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: `Bearer ${process.env.API_KEY}`, // never hardcode the key
  },
  body: JSON.stringify({
    model: "model-name",
    messages: [{ role: "user", content: "Say hello!" }],
  }),
});
if (!res.ok) throw new Error(`API error ${res.status}: ${await res.text()}`);
const data = await res.json();
console.log(data.choices[0].message.content);
خلينا نبنيها

🧪 جرّب بنفسك: اكتب سكريبت صغير يقرا المفتاح من env var، يبعت POST فيه رسالة واحدة، ويطبع رد الموديل + عدد الـ tokens من بلوك الـ usage. ولو الـ status مش 200، خلّيه يطبع رسالة الخطأ كاملة بدل ما يقع بصمت.

أشهر الأخطاء

(١) تكتب المفتاح جوّه الكود وترفعه على GitHub — كارثة حقيقية بتحصل كل يوم. (٢) تعمل res.json() على طول من غير ما تبصّ على الـ status — فتقعد تصارع undefined بدل ما تقرا رسالة الخطأ الحقيقية. (٣) تفتكر إن الموديل «فاكر» المحادثة — كل call مستقلة تمامًا، ولازم تبعت الـ history كله في messages كل مرة.

إمتى تستخدمها؟

أول ما تعدّي مرحلة التجريب وتيجي تبني feature حقيقية: سكريبت، endpoint في الـ backend، أو أي أتمتة محتاجة رد موديل جوّه كود.

وإمتى لأ؟

لو لسه بتجرّب صياغة prompts، الـ playground أسرع وأرخص. وعمرك ما تعمل الـ call من كود المتصفح مباشرة — المفتاح هيتسرّب؛ خلّي الـ call تعدّي على backend بتاعك.

خلينا نبنيهاالقراءة خلصت — دلوقتي ابنيها بإيدك.ابعت أول call وطلّع الرد