שכתוב, בדיקת דקדוק, סיכום, תרגום ובדיקת העתקות ב־56 שפות, כולל עברית. REST פשוט שמוגש מהקצה של Cloudflare.
אותו מקור (Same-origin)
כרגע ה־API משרת רק בקשות מהאתר adeptwrite.com עצמו (בלי כותרות CORS). גישה חיצונית באמצעות מפתחות API מתוכננת יחד עם חבילת Pro. התיעוד מתפרסם מוקדם כדי שהחוזה יהיה פתוח ואפשר יהיה להיערך אליו.
בקצרה
ל־API של AdeptWrite בגרסה 1 יש שלוש נקודות קצה פעילות. POST /api/v1/run מקבלת JSON עם task, mode, lang ו־text (עד 6,000 תווים) ומחזירה טקסט פשוט ממודל של Cloudflare Workers AI שנבחר לפי השפה; POST /api/v1/plagiarism משווה טקסט למקורות פתוחים ומפרטת כל מקור שנסרק; GET /api/v1/health מחזירה את מצב השירות. הטקסט אינו נשמר ואינו נרשם ביומנים, ובקשות הבינה המלאכותית מוגבלות ל־30 בדקה לכל כתובת IP.
עקרונות בסיסיים
כתובת בסיס:https://adeptwrite.com/api/v1
פורמט: הבקשות והתשובות הן JSON (Content-Type: application/json, קידוד UTF-8). עברית נשלחת כ־UTF-8 רגיל, בלי טיפול מיוחד בכיווניות.
אימות: עדיין אין; הבקשות חייבות להגיע מעמודי adeptwrite.com (אותו מקור). מפתחות API יגיעו עם Pro.
פרטיות: שדה text אינו נשמר ואינו נרשם ביומנים; התשובות נשלחות עם Cache-Control: no-store.
גרסאות: הנתיב /v1/ לא ישתנה באופן שאינו תואם לאחור; שינויים שוברים ישתמשו ב־/v2/.
POST/api/v1/run
מריצה משימת בינה מלאכותית אחת על טקסט ומחזירה את התוצאה כטקסט פשוט (בלי פתיח ובלי גדרות Markdown).
בקשה
Field
Type
Required
Notes
task
string
✓
שם המשימה; ראו את רשימת המשימות בהמשך.
text
string
✓
טקסט הקלט, 1–6,000 תווים.
lang
string
✓
שפת התוצאה: אחד מ־56 קודי השפה של האתר (he, en, id, ja, pt-pt, zh-hant ועוד; תגי BCP 47 כמו pt-BR ממופים) או auto לשפת הקלט.
mode
string
—
מצב הזמין לכלי, למשל Formal, Akademik, Ringkas או Poin-poin (שמות המצבים הם תוויות הרישום באינדונזית). מתעלמים ממנו במשימות בלי מצבים.
options
object
—
אפשרויות לפי משימה: from ו־to ל־translate (מכל שפה נתמכת לכל שפה אחרת; from יכול להיות auto; sr-Cyrl מבקש סרבית בקירילית), platform (instagram / tiktok / linkedin) ל־caption, ושדות fields מתויגים אופציונליים ל־bio, ל־coverletter ול־meta. מפתחות אחרים מתעלמים מהם.
POST /api/v1/run HTTP/1.1
Content-Type: application/json
{
"task": "paraphrase",
"mode": "Formal",
"lang": "he",
"text": "כתיבה טובה חשובה מאוד לסטודנטים.",
"options": {}
}
תגובה
סטטוס 200 עם ok: true, התוצאה ב־output, המודל שבפועל ענה ב־model (הוא שונה כשמודל גיבוי נכנס לפעולה) וזמן העיבוד באלפיות שנייה. truncated: true מתווסף כשהתשובה הגיעה לתקרת האורך או לגבול הזמן ונחתכה.
curl -X POST https://adeptwrite.com/api/v1/run \
-H "Content-Type: application/json" \
-d '{"task":"grammar","lang":"he","text":"הילדים הולכות לבית הספר מחר."}'
דוגמה: JavaScript (fetch)
const res = await fetch('/api/v1/run', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ task: 'summarize', mode: 'Poin-poin', lang: 'he', text }),
});
const data = await res.json();
if (!data.ok) throw new Error(data.error.code + ': ' + data.error.message);
console.log(data.output);
POST/api/v1/plagiarism
בוחרת 4–8 ביטויים ייחודיים מהטקסט, מחפשת אותם במקורות פתוחים בשפת הטקסט (ויקיפדיה, ויקיטקסט, טקסט מלא של Internet Archive, Europe PMC, DOAJ, arXiv; ספק חיפוש ברשת רק כשהוגדר ונתבקש) ומחשבת ציון חפיפה. רק הביטויים הקצרים האלה יוצאים מהשרת.
בקשה
Field
Type
Required
Notes
text
string
✓
לפחות 30 מילים, לכל היותר 6,000 תווים.
lang
string
✓
קוד שפה של האתר או auto.
options
object
—
web: true מפעיל גם את ספק החיפוש ברשת כשהמפעיל הגדיר אחד; webSearched בתשובה מציין אם הוא באמת ענה.
סטטוס 200 עם score (מילים תואמות לחלק במספר המילים, 0–1), matches לפי מקור עם passages מסומנים (היסטים של תווים בטקסט שלכם), sourcesSearched (בדיוק המקורות שתשובותיהם נכללות בתוצאה), sourcesSkipped עם סיבה, ו־webSearched.
מדווחת אילו שירותים מופעלים. אינה מקבלת גוף בקשה ואינה נספרת במכסה.
תגובה
סטטוס 200. הערך ai הוא false כשמתג הכיבוי של הבינה המלאכותית פעיל; plagiarism מפרט את המקורות שבדיקת ההעתקות יכולה לשאול; aidetect מתאר את הניתוח המעמיק בצד השרת של גלאי ה־AI, שעדיין לא פרוס (POST /api/v1/aidetect עונה 503 disabled; הגלאי באתר רץ בדפדפן שלכם).
שירים קצרים; מצבים: Bebas (חופשי), Berima (מחורז), Akrostik (אקרוסטיכון), Haiku (הייקו).
מגבלות
אורך הטקסט
עד 6,000 תווים לבקשה (מעבר לכך: 413 too_long).
לכל כתובת IP
30 בקשות בדקה.
כללי
100 בקשות בדקה בכל השירות, ובנוסף תקרה יומית לתכונות הבינה המלאכותית.
בדיקת העתקות
5 בדיקות בדקה לכל כתובת IP ו־60 בדקה בכל השירות; מינימום 30 מילים.
פלט
תקציב אורך לכל משימה, לעולם לא יותר מ־2,048 אסימונים (tokens); תשובה שנחתכה נושאת truncated: true.
מודל
נבחר לפי שפה: אנגלית ואינדונזית רצות על @cf/aisingapore/gemma-sea-lion-v4-27b-it, וכל שפה אחרת, כולל עברית, על @cf/qwen/qwen3-30b-a3b-fp8. כשמודל עמוס, מוגבל בקצב, איטי או נכשל, הבקשה עוברת למודל הבא בשרשרת (Qwen3-30B, אחר כך @cf/google/gemma-4-26b-a4b-it, ואחר כך @cf/meta/llama-3.3-70b-instruct-fp8-fast). השדה model תמיד מציין את המודל שענה.
קודי שגיאה
סטטוס
קוד
מתי זה קורה
400
invalid_request
JSON לא תקין, שדה חובה חסר, או task או lang לא מוכרים.
413
too_long
text חורג מ־6,000 תווים.
403
forbidden
הבקשה לא הגיעה מעמוד של adeptwrite.com.
429
rate_limited
חרגתם ממגבלת הדקה לכתובת IP או מהמגבלה הכללית. המתינו את מספר השניות שב־Retry-After.
429
quota_exceeded
התקרה היומית לתכונות הבינה המלאכותית נוצלה. נסו שוב למחרת (UTC).
502
upstream
כל המודלים בשרשרת לא הצליחו לענות בזמן.
502
empty_output
המודלים ענו, אך בתוצאה ריקה.
503
disabled
המפעיל כיבה את השירות זמנית, או (ב־/api/v1/aidetect) הנקודה עדיין לא פרוסה.
מבנה השגיאות
כל שגיאה מוחזרת כ־JSON עם קוד סטטוס HTTP מתאים ובאותו מבנה:
{ "ok": false, "error": { "code": "rate_limited", "message": "Too many requests. Please try again shortly." } }
בדקו קודם את ok, ואז קראו את error.code לטיפול בקוד; error.message בטוח להצגה למשתמשים (ההודעה עצמה באנגלית).
מומלץ בפועל
שלחו טקסט בחלקים (למשל פסקה בכל בקשה) ולא מסמך ארוך בבת אחת; התוצאות חוזרות מהר יותר וקל יותר לעבור עליהן.
טפלו ב־429 בהשהיה מעריכית (exponential back-off) ולא בניסיונות חוזרים מיידיים.
אל תשלחו מידע אישי או חסוי שאינכם צריכים, גם אם איננו שומרים אותו; עקרון צמצום הנתונים עדיין חל.
פלט בינה מלאכותית עלול להיות שגוי; הציגו אותו כהצעה לבדיקה ולא כאמת סופית.
שאלות נפוצות
אפשר לקרוא ל־API מהיישום או מהדומיין שלי?
עדיין לא. ה־Worker כרגע אינו שולח כותרות CORS ומשרת רק עמודים של adeptwrite.com. גישה חיצונית באמצעות מפתחות API מתוכננת יחד עם חבילת Pro; התיעוד יתעדכן כשהיא תהיה זמינה.
האם טקסט שנשלח ל־API נשמר?
לא. הטקסט מועבר למודל כדי להפיק את התשובה ואז נמחק. היומנים כוללים מטא־נתונים בלבד (קוד סטטוס, משימה, משך). כל הפרטים במדיניות הפרטיות.
למה הפלט הוא טקסט פשוט ולא JSON מובנה?
כל משימה מפיקה טקסט אחד מוכן לשימוש, בלי פתיח ובלי גדרות Markdown, כדי שאפשר יהיה להציג אותו ישירות בעורך. מבנה נוסף (למשל רשימת שינויים) מתוכנן לגרסה מאוחרת יותר בלי לשנות את v1.
כמה עולה ה־API?
מתוך adeptwrite.com הוא חינמי, ומוגבל ל־30 בקשות בינה מלאכותית בדקה לכל כתובת IP. התמחור לגישה חיצונית יפורסם עם חבילת Pro; עד אז לא מחייבים דבר.
איזה מודל עונה לבקשה שלי?
זה תלוי בשפה: אנגלית ואינדונזית עוברות ל־SEA-LION, ושאר השפות, ובהן עברית, ל־Qwen3-30B. אם המודל עמוס או נכשל, המודל הבא בשרשרת הגיבוי עונה במקומו, והשדה model בתשובה מציין את זה שענה.