تقدير طول الرسالة بالكلمات والصفحات حسب الفصل
يسهل التخطيط لطول الرسالة عندما يُبنى الإجمالي من أهداف واضحة لكل فصل بدل الاعتماد على رقم نهائي ضخم. أدخلوا عدد الكلمات المخطط لكل فصل، واختاروا تباعد الأسطر المعتاد، ثم أضيفوا صفحات المقدمات والمراجع والملاحق. تجمع الحاسبة الكلمات وتقدّر صفحات كل فصل وتعرض طول المخطوط كاملاً. كما تُظهر الافتراضات المستخدمة لكي تقارنوها بقواعد التنسيق المعتمدة في مؤسستكم.
شغّل الأداة مجانًا
حوّلوا مخطط الرسالة إلى خطة قابلة للقياس
أدرجوا الفصول التي تتوقعون تسليمها فعلاً، حتى إن كانت عناوينها مؤقتة. خصصوا لكل فصل هدفاً يناسب وظيفته؛ فالمقدمة تعرض السؤال والإسهام، ومراجعة الأدبيات تجمع البحوث السابقة، وفصل المنهج يشرح طريقة العمل. يكشف التفصيل مبكراً مراجعةً تستحوذ على مساحة مفرطة أو مناقشةً لا تحظى بمساحة كافية. اتخذوا النتيجة أساساً أولياً، ثم عدّلوا الأهداف بعد ملاحظات المشرف أو إتمام قسم. يمكن وضع صفر لفصل لم يُحدد هدفه بعد، لكن ينبغي أن تكون أسماء الفصول فريدة حتى تظل المقارنات اللاحقة واضحة.
افهموا كيفية تحويل الكلمات إلى صفحات
يتأثر عدد الصفحات بالخط والهوامش والفقرات والعناوين والاقتباسات والجداول والأشكال، لذلك لا يمكن لأي تحويل أن يتنبأ تماماً بالشكل النهائي. تستخدم الأداة قواعد تخطيط معلنة: 250 كلمة للصفحة ذات التباعد المزدوج، و350 للتباعد 1.5، و500 للتباعد المفرد. يُقرّب كل فصل إلى الأعلى على حدة لأنه يبدأ عادة في صفحة جديدة. قارنوا قيمة الكلمات لكل صفحة الظاهرة في النتيجة بمتطلبات جامعتكم المتعلقة بالخط والهوامش والتباعد والحواشي قبل اعتمادها هدفاً للتسليم.
أضيفوا الصفحات التي لا يشملها عد الكلمات
تضم الرسالة أيضاً صفحة العنوان والإقرارات والملخص والشكر والفهرس وقوائم الأشكال والمراجع والملاحق. قد تشغل هذه العناصر صفحات كثيرة من دون أن تضيف كلمات كثيرة إلى المتن. أدخلوا الصفحات التمهيدية كعدد صفحات، وخصصوا قيمة أخرى للمراجع والملاحق؛ فتضاف القيمتان بعد تقدير الفصول. راجعوا رسالة حديثة مقبولة في البرنامج نفسه للحصول على تقدير أولي، ثم حدّثوا الاحتياط عندما تكبر قائمة المصادر أو الملاحق. لا تُحسب الجداول والأشكال داخل الفصول منفصلة، لذا تعاملوا مع الإجمالي بوصفه مؤشراً للتخطيط لا وعداً بطول نهائي.
حالات الاستخدام
إعداد مقترح الرسالة
حوّلوا المخطط وأهداف الفصول الأولية إلى تقدير واضح لاجتماع مناقشة المقترح.
موازنة أحجام الفصول
قارنوا الأطوال المتوقعة واكتشفوا الأقسام المفرطة أو المختصرة قبل الكتابة.
متابعة تقدم الكتابة
أعيدوا الحساب مع تطور الفصول والمراجع ومتطلبات الملاحق.
الأسئلة الشائعة
كم كلمة تفترض الحاسبة في الصفحة؟
تستخدم 250 كلمة للتباعد المزدوج، و350 للتباعد 1.5، و500 للتباعد المفرد، وتظهر القيمة المختارة في النتيجة.
لماذا تُقرّب صفحات كل فصل منفردة؟
لأن كل فصل يبدأ عادة في صفحة جديدة، وبذلك يبقى تقدير الفصل مفيداً بمفرده.
هل تزيد الصفحات التمهيدية والمراجع مجموع الكلمات؟
لا. تزيد مخصصاتها مجموع الصفحات فقط ولا تغيّر مجموع كلمات الفصول.
هل يطابق التقدير الرسالة المنسقة تماماً؟
لا. يؤثر الخط والهوامش والعناوين والحواشي والأشكال والقواعد المحلية في الصفحات؛ راجعوا دليل مؤسستكم.
ما تكلفة الحساب عبر API؟
تكلف كل مطالبة عبر API مبلغ $0.002. ويمكن تشغيل الحاسبة الحتمية نفسها في المتصفح أيضاً.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/edu/thesis-length-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"chapters":[{"name":"Introduction","word_count":3000},{"name":"Literature Review","word_count":8000},{"name":"Methodology","word_count":5000},{"name":"Results","word_count":7000},{"name":"Discussion","word_count":6000},{"name":"Conclusion","word_count":2000}]}'const res = await fetch("https://api.kit.forhosting.com/edu/thesis-length-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"chapters": [
{
"name": "Introduction",
"word_count": 3000
},
{
"name": "Literature Review",
"word_count": 8000
},
{
"name": "Methodology",
"word_count": 5000
},
{
"name": "Results",
"word_count": 7000
},
{
"name": "Discussion",
"word_count": 6000
},
{
"name": "Conclusion",
"word_count": 2000
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/thesis-length-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"chapters": [
{
"name": "Introduction",
"word_count": 3000
},
{
"name": "Literature Review",
"word_count": 8000
},
{
"name": "Methodology",
"word_count": 5000
},
{
"name": "Results",
"word_count": 7000
},
{
"name": "Discussion",
"word_count": 6000
},
{
"name": "Conclusion",
"word_count": 2000
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/thesis-length-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"chapters":[{"name":"Introduction","word_count":3000},{"name":"Literature Review","word_count":8000},{"name":"Methodology","word_count":5000},{"name":"Results","word_count":7000},{"name":"Discussion","word_count":6000},{"name":"Conclusion","word_count":2000}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"chapters":[{"name":"Introduction","word_count":3000},{"name":"Literature Review","word_count":8000},{"name":"Methodology","word_count":5000},{"name":"Results","word_count":7000},{"name":"Discussion","word_count":6000},{"name":"Conclusion","word_count":2000}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/thesis-length-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"chapters": [
{
"name": "Introduction",
"word_count": 3000
},
{
"name": "Literature Review",
"word_count": 8000
},
{
"name": "Methodology",
"word_count": 5000
},
{
"name": "Results",
"word_count": 7000
},
{
"name": "Discussion",
"word_count": 6000
},
{
"name": "Conclusion",
"word_count": 2000
}
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.thesis_length_estimate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_items | 100 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |