تاريخ النشر: 20 أيار (مايو) 2025
فيديو الشرح | الويب | الإضافات | حالة Chrome | النيّة بالشراء |
---|---|---|---|---|
Github | العرض | الهدف من التجربة |
تساعدك Rewriter API في مراجعة النص وإعادة تنظيمه. تشكّل واجهة برمجة التطبيقات هذه و Writer API جزءًا من اقتراح واجهات برمجة التطبيقات لمساعدة الكتاب.
يمكن أن تساعدك واجهات برمجة التطبيقات هذه في تحسين المحتوى الذي ينشئه المستخدمون.
حالات الاستخدام
يمكنك تحسين النص الحالي من خلال إطالته أو تقصيره أو تغيير أسلوبه. على سبيل المثال، يمكنك إجراء ما يلي:
- إعادة كتابة رسالة إلكترونية قصيرة لتبدو أكثر تهذيبًا ورسمية
- اقتراح تعديلات على مراجعات العملاء لمساعدة العملاء الآخرين في فهم الملاحظات أو إزالة المحتوى الضار
- تنسيق المحتوى لتلبية توقعات شرائح جمهور معيّنة
هل حالة الاستخدام غير متوفّرة؟ يمكنك الانضمام إلى برنامج المعاينة المبكّرة لمشاركة ملاحظاتك.
البدء
الانضمام إلى مرحلة التجربة والتقييم لواجهة برمجة التطبيقات Rewriter API، والتي تعمل في الإصدارات من Chrome 137 إلى 142
مراجعة متطلبات الأجهزة
لا تعمل واجهات برمجة التطبيقات Language Detector وTranslator API إلا على أجهزة الكمبيوتر المكتبي في Chrome.
تعمل واجهات برمجة التطبيقات Prompt API وSummarizer API وWriter API وRewriter API في Chrome عند استيفاء الشروط التالية:
- نظام التشغيل: Windows 10 أو 11 أو الإصدار 13 من نظام التشغيل macOS والإصدارات الأحدث (Ventura والإصدارات الأحدث) أو Linux لا تتوفّر واجهات برمجة التطبيقات التي توفّرها Gemini Nano لإصدارات Chrome على Android وiOS وChromeOS.
- مساحة التخزين: 22 غيغابايت على الأقل في وحدة التخزين التي تحتوي على ملفك الشخصي على Chrome
- GPU: يجب أن تكون ذاكرة الوصول العشوائي للفيديو (VRAM) أكبر من 4 غيغابايت.
- الشبكة: بيانات غير محدودة أو اتصال غير محدود
تسري هذه المتطلبات عليك في عملية التطوير وعلى المستخدمين الذين يعملون مع الميزات التي تنشئها.
الاشتراك في الفترة التجريبية للإصدار الأصلي
تتوفّر واجهة برمجة التطبيقات Rewriter API في مرحلة تجربة وتقييم مشتركة مع Writer API. لبدء استخدام واجهات برمجة التطبيقات هذه، اتّبِع الخطوات التالية:
- الموافقة على سياسة الاستخدامات المحظورة للذكاء الاصطناعي التوليدي من Google
- انتقِل إلى مرحلة التجربة والتقييم في Rewriter API.
- انقر على تسجيل واملأ النموذج. في حقل "مصدر الويب"، أدخِل المصدر أو معرّف الإضافة،
chrome-extension://YOUR_EXTENSION_ID
. - لإرسال الإضافة، انقر على تسجيل.
- انسخ الرمز المميّز المقدَّم وأضِفه إلى كل صفحة ويب مشارِكة في مصدرك أو أدرِجه في بيان إضافة Chrome.
- ابدأ استخدام واجهة برمجة التطبيقات Rewriter API.
مزيد من المعلومات حول كيفية بدء استخدام ميزة "الإصدارات التجريبية من المصدر"
إضافة إمكانية استخدام localhost
للوصول إلى Writer وRewriter API على المضيف المحلي أثناء مرحلة التجربة والتقييم، يجب تحديث Chrome إلى أحدث إصدار. ثم اتبع الخطوات التالية:
- الانتقال إلى
chrome://flags/#rewriter-api-for-gemini-nano
- اختَر مفعّل.
- انقر على إعادة التشغيل أو أعِد تشغيل Chrome.
استخدام Rewriter API
أولاً، عليك تشغيل ميزة رصد الميزات لمعرفة ما إذا كان المتصفّح متوافقًا مع واجهات برمجة التطبيقات هذه.
if ('Rewriter' in self) {
// The Rewriter API is supported.
}
يتم دمج واجهة برمجة التطبيقات Rewriter API وجميع واجهات برمجة التطبيقات الأخرى المدمجة للذكاء الاصطناعي في المتصفّح. يتم تنزيل Gemini Nano بشكل منفصل في المرة الأولى التي يستخدم فيها أي موقع إلكتروني واجهة برمجة تطبيقات تكاملية ذكاء اصطناعي. من الناحية العملية، إذا سبق للمستخدم التفاعل مع واجهة برمجة تطبيقات مدمجة، يعني ذلك أنّه قد نزّل النموذج إلى المتصفّح.
لتحديد ما إذا كان النموذج جاهزًا للاستخدام، استخدِم الدالة غير المتزامنة
Rewriter.availability()
. ويعرض السلسلة التي يمكن أن تتضمّن أربعة
قيم محتملة:
unavailable
: يتيح المتصفّح استخدام واجهة برمجة التطبيقات Rewriter API، ولكن لا يمكن استخدامها في الوقت الحالي. وقد يرجع ذلك لعدد من الأسباب، مثل عدم توفّر مساحة كافية على القرص لتنزيل النموذج.available
: يتيح المتصفّح استخدام واجهة برمجة التطبيقات Rewriter API، ويمكن استخدامه على الفور.downloadable
: يتيح المتصفّح استخدام واجهة برمجة التطبيقات Rewriter API، ولكنّه يحتاج إلى تنزيل النموذج أولاً.downloading
: يتيح المتصفّح استخدام واجهة برمجة التطبيقات Rewriter API، وهو بصدد تنزيل النموذج.
لبدء تنزيل النموذج وبدء عملية إعادة الكتابة، يمكنك استدعاء الدالة Rewriter.create()
. إذا كان الردّ على availability()
هو downloadable
، انتظِر إعلامك بحالة التحميل وأطلِع المستخدم على ذلك، لأنّ عملية التنزيل قد تستغرق بعض الوقت.
const rewriter = await Rewriter.create({
monitor(m) {
m.addEventListener("downloadprogress", e => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
وظائف واجهة برمجة التطبيقات
تتيح لك الدالة create()
ضبط عنصر إعادة كتابة جديد. يأخذ الإجراء
كائن options
اختياريًا بالمَعلمات التالية:
tone
: أسلوب الكتابة يمكن أن يشير إلى أسلوب المحتوى أو طابعه أو موقفه. يمكن ضبط القيمة علىmore-formal
أوas-is
(القيمة التلقائية) أوmore-casual
.-
format
: تنسيق الإخراج، مع القيم المسموح بهاas-is
(تلقائي)markdown
وplain-text
-
length
: طول الإخراج، مع القيم المسموح بهاshorter
as-is
(التلقائية) وlonger
sharedContext
: عند إعادة كتابة عدة أجزاء من المحتوى، يمكن أن يساعد السياق المشترَك النموذج في إنشاء محتوى متوافق بشكل أفضل مع توقعاتك.
يوضّح المثال التالي كيفية بدء عنصر rewriter
:
const options = {
sharedContext: 'This is an email to acquaintances about an upcoming event.',
tone: 'more-casual',
format: 'plain-text',
length: 'shorter',
};
const available = await Rewriter.availability();
let rewriter;
if (available === 'unavailable') {
// The Rewriter API isn't usable.
return;
}
if (available === 'available') {
// The Rewriter API can be used immediately .
rewriter = await Rewriter.create(options);
} else {
// The Rewriter can be used after the model is downloaded.
rewriter = await Rewriter.create(options);
rewriter.addEventListener('downloadprogress', (e) => {
console.log(e.loaded, e.total);
});
}
بدء إعادة الكتابة
هناك طريقتان لإخراج المحتوى من النموذج: غير البث والبث.
إخراج غير مخصّص للبث
في ميزة إعادة الكتابة غير المباشرة، يعالج النموذج الإدخال ككل ثم يُنشئ الإخراج.
للحصول على إخراج غير متوافق مع البث، استخدِم الدالة غير المتزامنة rewrite()
. يجب
تضمين النص الأوّلي الذي تريد إعادة كتابته. يمكنك إضافة context
اختياري لتقديم معلومات أساسية عن النموذج، ما قد يساعد في
تلبية توقعاتك بشأن النتيجة بشكل أفضل.
// Non-streaming
const rewriter = await Rewriter.create({
sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});
const result = await rewriter.rewrite(reviewEl.textContent, {
context: "Avoid any toxic language and be as constructive as possible."
});
إخراج إعادة كتابة البث
تقدّم ميزة البث النتائج في الوقت الفعلي. يتم تعديل الإخراج باستمرار عند إضافة المدخلات وتعديلها.
للحصول على أداة إعادة كتابة البث، يمكنك استدعاء الدالة rewriteStreaming()
وتكرّر
على المقاطع النصية المتاحة في البث. يمكنك إضافة context
اختياري لتوفير معلومات خلفية عن النموذج، ما قد يساعد النموذج في تلبية توقعاتك بشأن النتيجة بشكلٍ أفضل.
const rewriter = await Rewriter.create({
sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});
const stream = rewriter.rewriteStreaming(reviewEl.textContent, {
context: "Avoid any toxic language and be as constructive as possible.",
tone: "more-casual",
});
for await (const chunk of stream) {
composeTextbox.append(chunk);
}
مشاركة السياق لمهام متعددة
يمكنك استخدام rewriter
لإنشاء عدة أجزاء من المحتوى. في هذه
الحالة، من المفيد إضافة sharedContext
. على سبيل المثال، يمكنك مساعدة
المراجعين في تقديم ملاحظات أفضل في التعليقات.
// Shared context and per writing task context
const rewriter = await Rewriter.create({
sharedContext: "This is for publishing on [popular website name], a business and employment-focused social media platform."
});
const stream = rewriter.rewriteStreaming(
"Love all this work on generative AI at Google! So much to learn and so many new things I can do!",
{
context: "The request comes from someone working at a startup providing an e-commerce CMS solution.",
tone: "more-casual",
}
);
for await (const chunk of stream) {
composeTextbox.append(chunk);
}
إعادة استخدام خدمة إعادة كتابة
يمكنك استخدام أداة إعادة الصياغة نفسها لتعديل أجزاء متعددة من المحتوى. وقد يكون ذلك مفيداً بشكلٍ خاص عند إضافة أداة إعادة الصياغة إلى أداة لتلقّي الملاحظات أو التعليقات، وذلك لمساعدة الكتاب في تقديم ملاحظات مفيدة ومثمرة.
// Reusing a rewriter
const rewriter = await Rewriter.create({
sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});
const rewrittenReviews = await Promise.all(
Array.from(
document.querySelectorAll("#reviews > .review"),
(reviewEl) => rewriter.rewrite(reviewEl.textContent, {
context: "Avoid any toxic language and be as constructive as possible.",
tone: "more-casual",
})
),
);
إيقاف أداة إعادة الصياغة
لإنهاء عملية إعادة الكتابة، عليك إلغاء عملية التحكّم وتدمير rewriter
.
// Stop a rewriter
const controller = new AbortController();
stopButton.onclick = () => controller.abort();
const rewriter = await Rewriter.create({ signal: controller.signal });
await rewriter.rewrite(reviewEl.textContent, { signal: controller.signal });
// Destroy a rewriter
rewriter.destroy();
عرض توضيحي
التفاعل مع الملاحظات ومشاركتها
لا تزال واجهات برمجة التطبيقات Writer وRewriter قيد المناقشة وهي خاضعة للتغيير في المستقبل. إذا جرّبت واجهة برمجة التطبيقات هذه ولديك ملاحظات، يسعدنا معرفتها.
- اقرأ الشرح، واطرح الأسئلة وشارِك في المناقشة.
- راجِع عملية التنفيذ في Chrome على حالة Chrome.
- انضم إلى برنامج المعاينة المبكر للاطّلاع على واجهة برمجة التطبيقات الجديدة والوصول إلى قائمتنا البريدية.
- إذا كانت لديك ملاحظات حول تنفيذ Chrome، يُرجى إرسال تقرير عن خلل في Chromium.
استكشِف جميع واجهات برمجة التطبيقات المدمجة للذكاء الاصطناعي التي تستخدِم النماذج، بما في ذلك Gemini Nano وغيرها من النماذج المخصّصة للخبراء، في المتصفّح.