استخراج متن از تصویر فارسی

یک تصویر بفرست — متن فارسی را به صورت JSON بگیر.

🖼️ یک تصویر در هر درخواست 📄 پاسخ JSON 🟢 Bina-0.4-Koochik · مجوز OpenMDW-1.1 🟢 Bina-0.2-Rizeh · مجوز Apache-2.0

سازندهٔ درخواست

مدل OCR را انتخاب کن؛ کد زیر همان لحظه عوض میشود.

مدل:
terminal
۱
کلید بگیر: دکمهٔ «ورود» بالای صفحه ← تب «کلید API» ← «ساخت کلید». کلید فقط یک بار نمایش داده میشود — همان لحظه کپی کن.
۲
کد بالا را اجرا کن.
۳
فیلد text پاسخ را بخوان — تمام.

استفاده در Python و Node

Python

Node.js 18+

پاسخ

{
  "text": "متن شناسایی‌شده به‌صورت یک‌جا",
  "lines": ["خط اول", "خط دوم"],
  "gen_ms": 1208
}

مدل‌های OCR

Reza2kn/Bina-0.4-Koochikمجوز OpenMDW-1.1
نام مدل (query)bina-0.4-koochik
زبانفارسی
ورودییک تصویر: JPG، PNG، WebP یا GIF
خروجیJSON با text، lines و gen_ms
Reza2kn/Bina-0.2-Rizehمجوز Apache-2.0
نام مدل (query)bina-0.2-rizeh
زبانفارسی
ورودییک تصویر: JPG، PNG، WebP یا GIF
خروجیJSON با text، lines و gen_ms
مدلهای بعدی بهزودی اضافه میشوند و همینجا قابل انتخاب خواهند بود؛ فرستادن نام ناشناس model خطای 422 میدهد.

پارامترها

فیلدالزامتوضیح
fileالزامی (multipart)یک تصویر: JPG، PNG، WebP یا GIF
model (query)اختیاریپیش‌فرض bina-0.4-koochik؛ نام ناشناس → 422

محدودیت‌ها

چیچقدر
حجم تصویر۳ مگابایت — بیشتر → 413
تعداد تصویر روزانهٔ هر کلید۲۰۰ — ریست با UTC، بعدش 429 + Retry-After
سرعت هر کلید۱۰ تصویر در دقیقه
تعداد تصویر در هر درخواستفقط یک تصویر

خطاها — کامل

کدdetailمعنی / راه‌حل
401key_requiredکلید نفرستادی — Bearer + کلید
401bad_key / revoked_keyکلید نامعتبر یا باطل — کلید تازه بساز
401bad_auth_schemeقالب سربرگ درست نیست (باید Bearer <key> باشد)
403key_owner_mismatchاین کلید به حساب دیگری تعلق دارد — با کلید حساب خودت ادامه بده (کلاینت‌های بدون نشست مرورگر تحت تأثیر نیستند)
413body_too_largeتصویر بیش از ۳ مگابایت — کوچک یا برش بده
415(multipart لازم است)بدنه باید multipart/form-data با فیلد file باشد
422invalid_model / empty_bodyنام مدل ناشناس یا بدنهٔ خالی
429ocr_key_burst / ocr_key_dailyسقف سرعت یا سهمیهٔ روزانه — Retry-After را بخوان
429almas_emptyموجودی الماس حساب صفر است، برای همین درخواست کافی نیست، یا کمتر از حداقل ۱۰٬۰۰۰ الماس است — OCR بر اساس طول متن خروجی قیمت‌گذاری می‌شود و پیش از اجرا معلوم نیست، پس حداقل موجودی لازم است. هدرها: X-Almas-Left = موجودی، X-Almas-Needed = مبلغ لازم، و در حالت حداقل X-Almas-Min = ۱۰٬۰۰۰؛ بدون Retry-After. خرید بسته این موجودی را شارژ نمی‌کند؛ شارژ حساب از /upgrade#شارژ-حساب (۱۰۰٬۰۰۰ تومان → ۱۰۰٬۰۰۰ الماس · ۱٬۰۰۰٬۰۰۰ تومان → ۱٬۰۰۰٬۰۰۰ الماس)
502ocr_unreachableموتور OCR موقتاً در دسترس نیست — بعداً تلاش کن
503(freeze / شلوغ)سرویس موقتاً متوقف است — Retry-After

امتحان رایگان بدون کلید (دمو)

اگر فقط می‌خواهی امتحان کنی، POST /api/ocr-demo بدون کلید کار می‌کند — یک تصویر تا ۵۰۰ کیلوبایت، فقط یک‌بار برای هر بازدیدکننده، حداکثر ۳ بار در روز برای هر IP:

curl -X POST "https://farsihoosh.ir/api/ocr-demo?model=bina-0.4-koochik" \
  -F "file=@page.jpg"

خطاهای دمو: demo_used (سهمیهٔ رایگان تمام شد)، demo_burst، demo_daily، demo_too_large (بیش از ۵۰۰ کیلوبایت).

حریم خصوصی: تصویر فقط برای پردازش به موتور OCR می‌رود و روی سرور ذخیره نمی‌شود؛ متنِ شناسایی‌شده هم ذخیره نمی‌شود — فقط تعداد تصویر و زمان پردازش برای سهمیه شمرده می‌شود.
می‌خوای همین‌جا در مرورگر امتحان کنی؟ صفحهٔ استخراج متن از عکس یک جعبهٔ آپلود دارد؛ یک تصویر تا ۵۰۰ کیلوبایت را بدون کلید رایگان امتحان کن.