ما هو Chrome Prompt API؟ الذكاء الاصطناعي للمتصفح لمطوري API

Ashley Innocent

Ashley Innocent

29 أبريل 2026

ما هو Chrome Prompt API؟ الذكاء الاصطناعي للمتصفح لمطوري API

شحن كروم نموذج ذكاء اصطناعي مباشرة داخل المتصفح. Prompt API هو الواجهة البرمجية لـ JavaScript التي تستدعيها لاستخدامه. لا مفتاح API، لا رحلة ذهاب وعودة للشبكة، لا فاتورة لكل رمز. النموذج هو Gemini Nano، ويعمل على جهاز المستخدم، واعتبارًا من كروم 138، أصبح متاحًا بشكل عام للإضافات وخلف علامة لصفحات الويب. بالنسبة لمطوري API، هذا يغير ما هو معقول القيام به على العميل.

يغطي هذا الدليل ماهية Chrome Prompt API، وكيف يختلف عن Gemini API السحابي، ومتى يتناسب فعليًا مع سير عمل API، ورمز عملي لكل من الإضافات وصفحات الويب، والقيود التي ستصادفك أسرع مما تقر به الوثائق. نربطه بـ Apidog في النهاية بحيث يكون للمهام نفسها مسار احتياطي عندما لا يكون النموذج متاحًا.

زر

ملخص سريع

ما يكشفه Prompt API بالفعل

يعد Prompt API واحدًا من مجموعة صغيرة من واجهات برمجة تطبيقات "الذكاء الاصطناعي المدمج" التي بدأ Chrome في شحنها العام الماضي. الواجهات الأخرى أضيق نطاقًا: الملخص، الكاتب، إعادة الصياغة، المترجم، ومكتشف اللغة. Prompt API هو الواجهة العامة؛ أما الواجهات الأخرى فتغلفه بإعدادات افتراضية خاصة بالمهمة.

ثلاثة أساسيات مهمة:

الشكل قريب عمدًا من Gemini cloud SDK ولكنه مختصر. لا يوجد استدعاء للأدوات بعد، ولا يوجد إدخال للصور على القناة المستقرة (إنه في Origin Trial)، ونافذة السياق صغيرة (4 آلاف رمز إدخال، 1 آلاف رمز إخراج، مع توسع مرن إلى 8 آلاف رمز إجمالي).

أول استدعاء من صفحة ويب يبدو كالتالي:

if (!('LanguageModel' in window)) {
  console.warn('Prompt API not available. Falling back to cloud.');
} else {
  const status = await LanguageModel.availability();
  if (status === 'unavailable') {
    console.warn('Device does not support Gemini Nano.');
  } else {
    if (status !== 'available') {
      // Triggers a background download. Show a UI.
      await LanguageModel.create({ monitor(m) {
        m.addEventListener('downloadprogress', e => {
          console.log(`downloaded ${(e.loaded * 100).toFixed(0)}%`);
        });
      }});
    }
    const session = await LanguageModel.create({
      systemPrompt: 'You answer in three concise bullets. JSON only.',
    });
    const reply = await session.prompt(
      'Summarize this changelog in three bullets.\n\n' + changelog
    );
    console.log(reply);
  }
}

كل جزء مهم معروض في المقتطف: اكتشاف الميزات، فحص التوفر، التنزيل الاختياري، إنشاء الجلسة، موجه النظام، استدعاء الموجه.

كيف يختلف عن Gemini API السحابي

نفس العائلة، نشر مختلف. تُشكل الاختلافات ما يمكنك وما لا يمكنك بناؤه عليه.

خاصية Chrome Prompt API Gemini API (سحابي)
النموذج Gemini Nano (على الجهاز) gemini-3-flash, gemini-3-flash-preview, gemini-3-pro
التكلفة لكل استدعاء صفر فوترة حسب الرمز
وقت الاستجابة 50 إلى 300 مللي ثانية للرمز الأول عادةً 200 إلى 800 مللي ثانية للرمز الأول
الشبكة غير مطلوب بعد تنزيل النموذج مطلوب في كل استدعاء
الخصوصية المدخلات لا تغادر الجهاز أبدًا تُرسل إلى خوادم Google
نافذة السياق 4K إدخال / 1K إخراج (8K مدمجة) حتى مليون رمز
استدعاء الأدوات لا (مخطط له) نعم
متعدد الوسائط إدخال الصور في Origin Trial نعم
وضع JSON أفضل جهد عبر موجه النظام من الدرجة الأولى مع مخطط
التوفر Chrome فقط، أجهزة قادرة فقط أي عميل متصل بالشبكة

النموذج الموجود على الجهاز أصغر بمقدار مرتبتين تقريبًا من gemini-3-flash. استخدمه للمهام القصيرة حيث كنت ستستخدم تعبيرًا عاديًا (regex) أو مصنف موجه مضبوط يدويًا. لا تستخدمه كبديل مباشر لـ Gemini السحابي.

أين يتناسب بالفعل في سير عمل مطور API

أربع حالات استخدام تغطي تكلفة التكامل. بخلاف هذه الحالات، لا يزال API السحابي هو الخيار الصحيح.

1. تحليل وإعادة تشكيل مدخلات المستخدم من جانب العميل. خذ استعلامًا حرًا وحوّله إلى عامل تصفية منظم لـ API الخاص بك. يكتب المستخدم "رسوم Stripe تزيد عن 100 دولار الأسبوع الماضي"؛ يحوله Prompt API إلى { "amount_gt": 100, "since": "2026-04-22", "provider": "stripe" } قبل استدعاء نقطة نهاية البحث الخاصة بك. يوفر رحلة ذهاب وعودة ويحمي خصوصية المستخدم.

2. تلخيص استجابات API للواجهة الرسومية. تستدعي API الخاص بك، وتستقبل 40 سجلًا، وتحتاج إلى ملخص من سطر واحد لعرضه في بطاقة. إرسال السجلات إلى نموذج سحابي يضيف وقت استجابة وتكلفة. يعمل Prompt API محليًا ويعيد النتائج في أقل من 200 مللي ثانية.

3. إصلاح شكل JSON. غالبًا ما تصل استجابات LLM مشوهة بشكل كافٍ لتكون مشكلة. قم بتشغيل تمريرة إصلاح لمرة واحدة عبر Gemini Nano: "هنا JSON غير صالح. أعد فقط JSON صالحًا بنفس الحقول." رخيص، سريع، بدون تكلفة.

4. التمويه المحلي (stubbing) أثناء التطوير. أثناء توصيل نقطة نهاية جديدة والخلفية نصف مبنية، قم بإنشاء هياكل استجابة معقولة أثناء التنفيذ. لن تكون الأشكال صحيحة للإنتاج، ولكنها تفتح المجال لعمل الواجهة الأمامية. اجمعها مع خادم Apidog الوهمي لإعداد هجين حيث تأتي نقاط النهاية الهامة من أمثلة محفوظة وتأتي نقاط النهاية الاستكشافية من Prompt API.

بناؤه كإضافة

تحصل الإضافات على Prompt API على القناة المستقرة من Chrome 138 فصاعدًا. تقوم بالإعلان عن الإذن وتستدعي chrome.languageModel.

manifest.json:

{
  "manifest_version": 3,
  "name": "Endpoint Summarizer",
  "version": "1.0.0",
  "permissions": ["languageModel"],
  "action": { "default_popup": "popup.html" }
}

popup.js:

const status = await chrome.languageModel.availability();
if (status === 'unavailable') {
  document.getElementById('out').textContent =
    'Device does not support on-device AI.';
  return;
}

const session = await chrome.languageModel.create({
  systemPrompt: [
    'You summarize HTTP responses in three short bullets.',
    'Mention status, the most-changed field, and any error keys.',
  ].join(' '),
  temperature: 0.3,
  topK: 3,
});

document.getElementById('go').addEventListener('click', async () => {
  const tab = await chrome.tabs.query({ active: true, currentWindow: true });
  const [{ result }] = await chrome.scripting.executeScript({
    target: { tabId: tab[0].id },
    func: () => document.body.innerText.slice(0, 4000),
  });
  const stream = session.promptStreaming(result);
  const out = document.getElementById('out');
  out.textContent = '';
  for await (const chunk of stream) {
    out.textContent += chunk;
  }
});

شيئان يستحقان الإشارة إليهما. temperature وtopK هما مفتاحا أخذ العينات الوحيدان اللذان يكشفهما API؛ لا يتم دعم topP على القناة المستقرة. التدفق هو مكرر غير متزامن (async iterator)، وليس أحداثًا مرسلة من الخادم (server-sent events)، لذا فإن نمط الاستهلاك هو for await بدلاً من قارئ SSE الذي كنت ستكتبه لـ Gemini السحابي.

بناؤه في صفحة ويب

تحتاج صفحات الويب إلى قيام المستخدم بقلب علامة أو أن يكون مصدرك مسجلاً في Origin Trial. يذهب رمز التجربة في علامة meta.

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="origin-trial" content="YOUR_TRIAL_TOKEN_HERE" />
</head>
<body>
  <textarea id="in" placeholder="Paste an API response..."></textarea>
  <button id="go">Summarize</button>
  <pre id="out"></pre>
  <script type="module">
    if (!('LanguageModel' in window)) {
      document.getElementById('out').textContent =
        'Prompt API not available in this browser.';
    } else {
      const session = await LanguageModel.create({
        systemPrompt: 'Reply in JSON: { "summary": "...", "tags": [...] }',
        temperature: 0.2,
      });
      document.getElementById('go').onclick = async () => {
        const text = document.getElementById('in').value;
        const reply = await session.prompt(text);
        try {
          document.getElementById('out').textContent =
            JSON.stringify(JSON.parse(reply), null, 2);
        } catch {
          document.getElementById('out').textContent = reply;
        }
      };
    }
  </script>
</body>
</html>

إذا كنت ترغب في اختبار الصفحة بدون رمز Origin Trial، فافتح chrome://flags/#prompt-api-for-gemini-nano، اضبطه على "ممكّن"، وأعد تشغيل Chrome. كانت هذه العلامة مستقرة عبر الإصدارات الستة الأخيرة ولكن لا يُعد بأن تبقى للأبد؛ استخدم مسار Origin Trial إذا كنت تريد سلوكًا يمكن التنبؤ به.

القيود والمزالق التي لا تركز عليها الوثائق بما يكفي

ستة أشياء ستوقعك في المشاكل.

  1. السياق صغير. 4 آلاف رمز إدخال، 1 آلاف رمز إخراج. قم بالتقطيع بقوة. لا تلصق مستند JSON بحجم 50 ألف رمز وتتوقع إجابة مفيدة.
  2. دعم الأجهزة غير متساوٍ. يحتاج النموذج إلى حوالي 4 غيغابايت من ذاكرة VRAM أو الذاكرة الموحدة ويعمل فقط على Chrome 138+ على أنظمة Windows و macOS و Linux و ChromeOS الحديثة. لا يتم دعم Chrome للجوال وقت كتابة هذا النص.
  3. التحميل الأول بطيء. يحدث تنزيل الـ 2 غيغابايت في الخلفية ولكنه يحظر الجلسة الأولى. اعرض دائمًا واجهة مستخدم لتقدم التنزيل.
  4. لا يوجد استدعاء للأدوات. إذا كانت مهمتك تتطلب من النموذج استدعاء API الخاص بك، فافعل ذلك على العميل بنفسك؛ النموذج يقرر فقط ما سيستدعيه.
  5. انحراف موجه النظام. يتبع النموذج الموجود على الجهاز موجهات النظام بشكل أقل صرامة من المتغيرات السحابية. ثبّت التنسيق بأمثلة لمرة واحدة في موجه النظام.
  6. الأذونات مهمة. تحتاج الإضافات إلى "languageModel" في permissions. إذا نسيتها، يعيد API بصمت unavailable.

جهز مسارًا احتياطيًا سحابيًا قبل النشر

يصل تطبيقك إلى المستخدمين الذين ليس لديهم النموذج. قم دائمًا بتجهيز مسار احتياطي. النمط قصير:

async function summarize(text) {
  if ('LanguageModel' in window) {
    const status = await LanguageModel.availability();
    if (status === 'available') {
      const session = await LanguageModel.create({
        systemPrompt: 'Reply with one bullet summary, max 12 words.',
      });
      return session.prompt(text);
    }
  }
  // Fallback: call your server, which calls cloud Gemini or your own model.
  const r = await fetch('/api/summarize', {
    method: 'POST', body: JSON.stringify({ text }),
  });
  return (await r.json()).summary;
}

الخصوصية وما يجب إخباره للمستخدمين

نقطة البيع لـ Prompt API هي أن المدخلات لا تغادر الجهاز أبدًا. هذا صحيح اليوم وهو القصد التصميمي الصريح لمبادرة الذكاء الاصطناعي المدمج. مؤهلان يستحقان المعرفة:

بالنسبة لمعظم تطبيقات المستهلكين، هذه قصة خصوصية قوية يمكنك وضعها في واجهة المستخدم الخاصة بك دون مراجعة قانونية. بالنسبة لأعباء العمل الخاضعة للتنظيم (HIPAA، PCI)، تأكد مع المستشار القانوني قبل الاعتماد عليها.

متى تتخطى Prompt API

اختر Gemini API السحابي بدلاً من ذلك عندما:

بالنسبة لزاوية الأوزان المفتوحة، يغطي كيفية تشغيل DeepSeek V4 محليًا تشغيل نموذج أكبر بكثير على جهاز مطور دون مغادرة الشبكة المحلية.

الأسئلة الشائعة

بالنسبة للفرق التي تدير بالفعل سير عمل LLM من جانب السحابة جنبًا إلى جنب مع هذا، فإن منشور ما هو GPT-5.5 يغطي المقايضات من جانب السحابة بمزيد من العمق، ويتولى Apidog التمويه وتوصيل المسار الاحتياطي دون الحاجة إلى أداة اختبار منفصلة.

زر

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات