פורסם: 20 במאי 2025
הסבר | פיתוח אתרים | תוספים | הסטטוס של Chrome | כוונת רכישה |
---|---|---|---|---|
GitHub | תצוגה | הבעת כוונות לניסוי |
ה-API של הכתיבה מחדש עוזר לכם לשנות את הטקסט ולשפר את המבנה שלו. ה-API הזה ו-Writer API הם חלק מההצעה ל-APIs של עזרה בכתיבה.
ממשקי ה-API האלה יכולים לעזור לכם לשפר את התוכן שנוצר על ידי משתמשים.
תרחישים לדוגמה
לשפר טקסט קיים על ידי הארכה או קיצור שלו, או שינוי הטון. לדוגמה, אפשר:
- תשכתב אימייל קצר כך שהוא יישמע מנומס ורשמי יותר.
- להציע עריכות לביקורות של לקוחות כדי לעזור ללקוחות אחרים להבין את המשוב או להסיר תוכן רעיל.
- לעצב את התוכן כך שיתאים לציפיות של קהלים מסוימים.
תרחיש השימוש שלכם לא מופיע? כדי לשתף משוב, אפשר להצטרף לתוכנית הגישה המוקדמת.
שנתחיל?
הצטרפות לגרסת המקור לניסיון של Rewriter API, שפועלת ב-Chrome מגרסה 137 עד 142.
בדיקת דרישות החומרה
הדרישות הבאות חלות על מפתחים ועל משתמשים שמפעילים תכונות באמצעות ממשקי ה-API האלה ב-Chrome. בדפדפנים אחרים עשויות להיות דרישות הפעלה שונות.
ממשקי ה-API של כלי זיהוי השפה והתרגום פועלים ב-Chrome במחשב. ממשקי ה-API האלה לא פועלים במכשירים ניידים. ממשקי Prompt API, Summarizer API, Writer API ו-Rewriter API פועלים ב-Chrome כשמתקיימים התנאים הבאים:
- מערכת הפעלה: Windows 10 או 11; macOS מגרסה 13 ואילך (Ventura ואילך); או Linux. Chrome ל-Android, ל-iOS ול-ChromeOS עדיין לא נתמך על ידי ממשקי ה-API שמשתמשים ב-Gemini Nano.
- אחסון: לפחות 22 GB בכרך שמכיל את פרופיל Chrome.
- מעבד גרפי (GPU): יותר מ-4 GB של VRAM.
- רשת: נתונים ללא הגבלה או חיבור ללא מדידה.
הגודל המדויק של Gemini Nano עשוי להשתנות מעט. כדי לראות את הגודל הנוכחי, נכנסים אל chrome://on-device-internals
ועוברים אל Model status (סטטוס המודל).
פותחים את נתיב הקובץ שמופיע ברשימה כדי לקבוע את גודל המודל.
הרשמה לתקופת ניסיון של תכונה חדשה
ממשק Rewriter API זמין בגרסת מקור לניסיון משותפת עם Writer API. כדי להתחיל להשתמש בממשקי ה-API האלה:
- אישור המדיניות של Google בנושא שימוש אסור ב-AI גנרטיבי.
- עוברים אל גרסת המקור לניסיון של Rewriter API.
- לוחצים על הרשמה וממלאים את הטופס. בשדה Web origin (מקור האינטרנט), מציינים את המקור או את מזהה התוסף,
chrome-extension://YOUR_EXTENSION_ID
. - כדי לשלוח, לוחצים על הרשמה.
- מעתיקים את האסימון שסופק ומוסיפים אותו לכל דף אינטרנט משתתף במקור או כוללים אותו במניפסט של התוסף.
- מתחילים להשתמש ב-Rewriter API.
איך מתחילים להשתמש בתקופות ניסיון של מקורות
הוספת תמיכה ב-localhost
כדי לגשת לממשקי ה-API של Writer ו-Rewriter ב-localhost במהלך תקופת הניסיון של מקור, צריך לעדכן את Chrome לגרסה העדכנית. לאחר מכן, בצע פעולות אלה:
- לעבור אל
chrome://flags/#rewriter-api-for-gemini-nano
. - בוחרים באפשרות מופעל.
- לוחצים על הפעלה מחדש או מפעילים מחדש את Chrome.
שימוש ב-Rewriter API
קודם מריצים זיהוי תכונות כדי לראות אם הדפדפן תומך בממשקי ה-API האלה.
if ('Rewriter' in self) {
// The Rewriter API is supported.
}
ממשק Rewriter API וכל ממשקי ה-AI API המובנים האחרים משולבים בדפדפן. Gemini Nano מוריד בנפרד בפעם הראשונה שאתר כלשהו משתמש ב-API מובנה של AI. בפועל, אם משתמש כבר יצר אינטראקציה עם API מובנה, הוא הוריד את המודל לדפדפן שלו.
כדי לקבוע אם המודל מוכן לשימוש, מפעילים את הפונקציה האסינכרונית 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}%`);
});
}
});
פונקציות API
הפונקציה 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();
הדגמה (דמו)
השתתפות ושיתוף משוב
ממשקי ה-API של Writer ו-Rewriter נמצאים כרגע בתהליכי דיון ופיתוח, ויכול להיות שהם ישתנו בעתיד. אם תנסו את ה-API הזה ויהיה לכם משוב, נשמח לשמוע אותו.
- לקרוא את ההסבר, לשאול שאלות ולהשתתף בדיון.
- אפשר לבדוק את ההטמעה ב-Chrome בסטטוס של Chrome.
- הצטרפות לתוכנית ההפצה המקדימה כדי לקבל הצצה מוקדמת לממשקי API חדשים וגישה לרשימת התפוצה שלנו.
- אם יש לכם משוב על ההטמעה של Chrome, אתם יכולים לדווח על באג ב-Chromium.
בדפדפן אפשר למצוא את כל ממשקי ה-API המובנים של AI שמבוססים על מודלים, כולל Gemini Nano ומודלים נוספים של מומחים.