منو

    الفبا

    الفبا، یک OCR API بسیار کم‌خطا برای استخراج متن‌های فارسی، عربی و انگلیسی از تصاویر است.

    برای دسترسی به ای‌پی‌آی، به یک TOKEN_KEY نیاز دارید که می‌توانید از طریق ایمیلِ [email protected] درخواست دهید.

    استخراج متن یک فایل

    این تابع، یک فایل تصویری (jpg, png, pdf و...) را به عنوان ورودی می‌گیرد و در پاسخ، متنِ آن را به تفکیک صفحات، پاراگراف‌ها و سطرها به‌همراه اندازه و موقعیت مکانی هریک، به شکل JSON تحویل می‌دهد. الفبا فرق بین جداول و تصاویر و متن‌ها را می‌فهمد و هر یک از این انواع را به شکل مناسب در خروجی ارائه می‌دهد.

    در پاسخ دریافتی، height و width یعنی ارتفاع و عرض صفحه به پیکسل، direction یعنی جهت متن، probability یعنی دقت تشخیص ( مقدارش بین ۰ و ۱ است؛ ۱ یعنی دقت تشخیص ۱۰۰٪). box یعنی موقعیت مکانی و اندازهٔ محدودهٔ تشخیص؛ مثلاً "449 1711 305 209" یعنی ۲۰۹ پیکسل فاصله از چپ، ۳۰۵ پیکسل فاصله از بالا، ۱۷۱۱ عرض باکس و 449 ارتفاع باکس.

    مثال: ارسال لینک فایل به‌شکل همگام

    Request

    {
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf",
        "fix_orientation": true,
        "word_positions": false,
        "type": "general",
        "wait": true,
        "priority": 3
    }
    
    curl  --request POST \ 
          --header "Content-Type: application/json" --header "Authorization: Token TOKEN_KEY" \
          --data-binary '{
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf",
        "fix_orientation": true,
        "word_positions": false,
        "type": "general",
        "wait": true,
        "priority": 3
    }' \
          https://alefba.roshan-ai.ir/api/read_document/
    
    import requests
    
    values = {
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf",
        "fix_orientation": True,
        "word_positions": False,
        "type": "general",
        "wait": True,
        "priority": 3
    }
    
    headers = {
      'Authorization': 'Token TOKEN_KEY',
    }
    response = requests.post('https://alefba.roshan-ai.ir/api/read_document/', data=values, headers=headers)
    
    print(response.json())
    

    Response

    {
      "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf",
      "pages": [{
        "page_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf@page=1",
        "width": 2125,
        "height": 2750,
        "angle": 0.0,
        "text": "بوته\n\nدرس‌های دانشگاهی معمولا با پروژه‌هابی همراه هستند که سهم قابل‌توجهی از آموزش را بر عهده دارند. این پروژه‌ها\n...",
        "parts": [
          {
            "type": "text",
            "direction": "rtl",
            "box": "209 305 1711 449",
            "text": "درس‌های دانشگاهی معمولا با پروژه‌هابی همراه هستند که سهم قابل‌توجهی از آموزش را بر عهده دارند. این پروژه‌ها\n...",
            "lines": [
              {
                "label": 13,
                "is_bold": false,
                "probability": 1.0,
                "box": "211 305 1707 57",
                "text": "درس‌های دانشگاهی معمولا با پروژه‌هایی همراه هستند که سهم قابل‌توجهی از آموزش را بر عهده دارند. این پروژه‌ها"
              },
              ...
            ]
          },
          ...
        ]
      },{
        "page_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf@page=2",
        "width": 2125,
        "height": 2750,
        "angle": 0.0,
        "text": "انجام این کار البته چندان هم آسان نیست؛ نه برای دانشجوها و نه برای کمک‌استادها، اما حاصل بسیار شیرین\n...",
        "parts": [
          {
            "type": "text",
            "direction": "rtl",
            "box": "210 110 1714 294",
            "text": "انجام این کار البته چندان هم آسان نیست؛ نه برای دانشجوها و نه برای کمک‌استادها، اما حاصل بسیار شیرین\n...",
            "lines": [
              {
                "probability": 1.0,
                "label": 12,
                "is_bold": false,
                "box": "210 110 1706 58",
                "text": "انجام این کار البته چندان هم آسان نیست؛ نه برای دانشجوها و نه برای کمک‌استادها، اما حاصل بسیار شیرین"
              },
              ...
            ],
          },
          ...
        ]
      }]
    }
    
    

    منظور از ارسال همگام این است که تا آماده‌شدن نتیجه منتظر بمانید. برای این منظور باید مقدار پارامتر wait در درخواست ارسالی برابر true‌ قرار گیرد که البته مقدار پیش‌فرض نیز همین است. در پاسخ ارسالی، نتیجهٔ پردازش ارائه می‌شود.

    POST /api/read_document/
    document_url(required)

    Value: URL

    vector لینک فایل ورودی



    type

    Value: general عمومی ID-card کارت‌های شناسایی excel جداول

    vector نوع فایل ورودی. مقدار پیش‌فرض: general.



    fix_orientation

    Value: true

    vector اگر true باشد، اعوجاج و کجی تصاویر اصلاح می‌شود. مقدار پیش‌فرض: false.



    word_positions

    Value: true

    vector اگر true باشد، استخراج به شکل کلمه‌به‌کلمه و به همراه موقعیت مکانی هر کلمه صورت می‌گیرد. مقدار پیش‌فرض: false.



    wait

    Value: true

    vector اگر true باشد، تا زمانی که پردازشِ فایل کامل نشده باید منتظرِ پاسخ بمانید. اگر نمی‌خواهید معطل بمانید این پارامتر را false کنید و هر از گاهی با فرخوانی تابع «بررسی وضعیت پردازش»، میزان پیشرفتِ کار را چک کنید. خوب که پردازش تمام شد، مجدداً درخواست بدهید تا نتیجهٔ پردازش را ببینید. مقدار پیش‌فرض: true.



    priority

    Value: 3

    vector اولویت پردازش را مشخص می‌کند. 1 یعنی خیلی زیاد، 2 یعنی زیاد، 3 یعنی معمولی، 4 یعنی کم. فقط همین چهار مقدار. مقدار پیش‌فرض: 1.



    مثال: ارسال لینک فایل به‌شکل ناهمگام

    Request

    {
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf",
        "fix_orientation": true,
        "word_positions": false,
        "type": "general",
        "wait": false,
        "priority": 3
    }
    
    curl  --request POST \ 
          --header "Content-Type: application/json" --header "Authorization: Token TOKEN_KEY" \
          --data-binary '{
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf",
        "fix_orientation": true,
        "word_positions": false,
        "type": "general",
        "wait": false,
        "priority": 3
    }' \
          https://alefba.roshan-ai.ir/api/read_document/
    
    import requests
    
    values = {
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf",
        "fix_orientation": True,
        "word_positions": False,
        "type": "general",
        "wait": False,
        "priority": 3
    }
    
    headers = {
      'Authorization': 'Token TOKEN_KEY',
    }
    response = requests.post('https://alefba.roshan-ai.ir/api/read_document/', data=values, headers=headers)
    
    print(response.json())
    

    Response

      {
        "state":"PENDING",
        "task_ids": "..."
      }
    
    
    

    منظور از ارسال ناهمگام این است که منتظر نتیجه نمانید. درعوض خودتان با تابع «بررسی وضعیت پردازش» میزان پیشرفت را چک کنید و بعد از کامل‌شدن نتیجه، درخواست مجدد بدهید و نتیجه را ببینید. برای این منظور باید مقدار پارامتر wait در درخواست ارسالی برابر false قرار گیرد. با این کار، بلافاصله بعد از ارسال درخواست، پاسخی با دو پارامتر state (وضعیت پردازش) و task_ids (شناسهٔ پردازش) دریافت می‌کنید که بعداً می‌توانید با تابع «دریافت نتیجهٔ به‌شکل ناهمگام»، خروجی نهایی را با ارائهٔ این شناسه دریافت کنید.

    POST /api/read_document/
    document_url(required)

    Value: URL

    vector لینک فایل ورودی



    type

    Value: general عمومی ID-card کارت‌های شناسایی excel جداول

    vector نوع فایل ورودی. مقدار پیش‌فرض: general



    fix_orientation

    Value: true

    vector اگر true باشد، اعوجاج و کجی تصاویر، اصلاح می‌شود. مقدار پیش‌فرض: false.



    word_positions

    Value: true

    vector اگر true باشد، استخراج به شکل کلمه‌به‌کلمه و به همراه موقعیت مکانی هر کلمه صورت می‌گیرد. مقدار پیش‌فرض: false.



    wait

    Value: true

    vector اگر true باشد، تا زمانی که پردازشِ فایل کامل نشده باید منتظرِ پاسخ بمانید. اگر نمی‌خواهید معطل بمانید این پارامتر را false کنید و هر از گاهی با فرخوانی تابع «بررسی وضعیت پردازش»، میزان پیشرفتِ کار را چک کنید. خوب که پردازش تمام شد، مجدداً درخواست پردازش فایل بدهید تا نتیجهٔ پردازش را ببینید. مقدار پیش‌فرض: true.



    priority

    Value: 3

    vector اولویت پردازش را مشخص می‌کند. 1 یعنی خیلی زیاد، 2 یعنی زیاد، 3 یعنی معمولی، 4 یعنی کم. فقط همین چهار مقدار. مقدار پیش‌فرض: 1.



    مثال: دریافت نتیجه با دادن شناسهٔ پردازش

    Request

    {
        "task_id": "...",
        "wait": false
    }
    
    curl  --request POST \ 
          --header "Content-Type: application/json" --header "Authorization: Token TOKEN_KEY" \
          --data-binary '{
        "task_id": "...",
        "wait": false
    }' \
          https://alefba.roshan-ai.ir/api/read_document/
    
    import requests
    
    values = {
        "task_id": "...",
        "wait": False
    }
    
    headers = {
      'Authorization': 'Token TOKEN_KEY',
    }
    response = requests.post('https://alefba.roshan-ai.ir/api/read_document/', data=values, headers=headers)
    
    print(response.json())
    

    Response

      {
        "state":"started",
        "task_id": "..."
      }
    
    
    

    در درخواست به‌شکل ناهمگام (یعنی wait=false)، به شما یک task_id داده می‌شود که شناسهٔ پردازش است. برای دریافت نتیجهٔ پردازش، این شناسه را در پارامتر task_id قرار دهید و درخواست خود را ارسال کنید. اینجا نیز می‌توانید در درخواست خود، پارامتر wait را مقداردهی کنید. اگر wait برابر true باشد (مقدار پیش‌فرض) دوحالت پیش می‌آید. یا پردازش کامل شده که نتیجه برمی‌گردد، یا تمام نشده که باید منتظر بمانید. اگر wait را برابر false قرار دهید دوحالت پیش می‌آید. یا پردازش کامل شده که نتیجه برمی‌گردد یا کامل نیست که پاسخی با پارامتر state برمی‌گردد. state بیانگر وضعیت پردازش است.

    POST /api/read_document/
    task_id(required)

    Value: 0

    vector شناسهٔ پردازش



    wait

    Value: true

    vector توضیح این پارامتر در شرح این متد آمده است



    مثال: ارسال مستقیم فایل

    Request

    "--{boundary value}\nContent-Disposition: form-data; name='document'; filename='FILE NAME'\nContent-Type: text/plain (according to the type of the uploaded file)\n\n{file content}\n--{boundary value}\n"
    
    curl -X
            POST --header "Authorization: Token TOKEN_KEY"
            -F "[email protected]"
            http://alefba.roshan-ai.ir/api/read_document
    
    import requests
    
    headers = {'Authorization': 'Token TOKEN_KEY',}
    files = {'document': ('FILE NAME', open('YOUR FILE PATH', 'rb')),}
    response = requests.post('https://alefba.roshan-ai.ir/api/read_document/', headers=headers, files=files)
    print(response)
    

    Response

        {
          "pages": [{
            "page_url": "http://alefba.roshan-ai.ir/media/files/96/84/859267728361-boute.pdf@page=1",
            "width": 2125,
            "height": 2750,
            "text": "بوته\n\nدرس‌های دانشگاهی معمولا با پروژه‌هابی همراه هستند که سهم قابل‌توجهی از آموزش را بر عهده دارند. این پروژه‌ها\n...",
            "parts": [
              {
                "type": "text",
                "direction": "rtl",
                "box": "209 305 1711 449",
                "text": "درس‌های دانشگاهی معمولا با پروژه‌هابی همراه هستند که سهم قابل‌توجهی از آموزش را بر عهده دارند. این پروژه‌ها\n...",
                "lines": [
                  {
                    "probability": 1.0,
                    "box": "211 305 1707 57",
                    "text": "درس‌های دانشگاهی معمولا با پروژه‌هایی همراه هستند که سهم قابل‌توجهی از آموزش را بر عهده دارند. این پروژه‌ها"
                  },
                  ...
                ]
              },
              ...
            ]
          },{
            "page_url":"http://alefba.roshan-ai.ir/media/files/96/84/859267728361-boute.pdf@page=2",
            "width": 2125,
            "height": 2750,
            "text": "انجام این کار البته چندان هم آسان نیست؛ نه برای دانشجوها و نه برای کمک‌استادها، اما حاصل بسیار شیرین\n...",
            "parts": [
              {
                "type": "text",
                "direction": "rtl",
                "box": "210 110 1714 294",
                "text": "انجام این کار البته چندان هم آسان نیست؛ نه برای دانشجوها و نه برای کمک‌استادها، اما حاصل بسیار شیرین\n...",
                "lines": [
                  {
                    "probability": 1.0,
                    "box": "210 110 1706 58",
                    "text": "انجام این کار البته چندان هم آسان نیست؛ نه برای دانشجوها و نه برای کمک‌استادها، اما حاصل بسیار شیرین"
                  },
                  ...
                ],
              },
              ...
            ]
          }],
          "document_url":"http://alefba.roshan-ai.ir/media/files/96/84/859267728361-boute.pdf"
        }
    
    
    
    POST /api/read_document/
    document(required)

    Value: file in binary

    vector فایل ورودی



    type

    Value: general عمومی ID-card کارت‌های شناسایی excel جداول

    vector نوع فایل ورودی. مقدار پیش‌فرض: general



    fix_orientation

    Value: true

    vector اگر true باشد، اعوجاج و کجی تصاویر، اصلاح می‌شود. مقدار پیش‌فرض: false.



    word_positions

    Value: true

    vector اگر true باشد، استخراج به شکل کلمه‌به‌کلمه و به همراه موقعیت مکانی هر کلمه صورت می‌گیرد. مقدار پیش‌فرض: false.



    wait

    Value: true

    vector اگر true باشد، تا زمانی که پردازشِ فایل کامل نشده باید منتظرِ پاسخ بمانید. اگر نمی‌خواهید معطل بمانید این پارامتر را false کنید و هر از گاهی با فرخوانی تابع «بررسی وضعیت پردازش»، میزان پیشرفتِ کار را چک کنید. خوب که پردازش تمام شد، مجدداً درخواست پردازش فایل بدهید تا نتیجهٔ پردازش را ببینید. مقدار پیش‌فرض: true.



    priority

    Value: 3

    vector اولویت پردازش را مشخص می‌کند. 1 یعنی خیلی زیاد، 2 یعنی زیاد، 3 یعنی معمولی، 4 یعنی کم. فقط همین چهار مقدار. مقدار پیش‌فرض: 1.



    استخراج متن صفحات مشخصی از یک فایل

    درست همانند تابع «ارسال لینک مستقیم فایل» است با این تفاوت که اینجا به جای لینک کاملِ فایل، لینک صفحات مشخصی از فایل را می‌دهید. برای این منظور به انتهای لینک فایل، شمارهٔ صفحه را اضافه کنید. برای مثال وقتی آرایهٔ page_urls برابر "dl.com/book.pdf@page=1‌ و dl.com/book.pdf@page=5" است، صفحات ۱ و ۵ از book.pdf پردازش شده و متنِ آن تحویل داده می‌شود.

    مثال

    Request

    {
        "page_urls": [
            "http://bayanbox.ir/view/5067853395275628881/boute.pdf@page=1"
        ],
        "fix_orientation": true,
        "word_positions": false,
        "wait": true,
        "priority": 3
    }
    
    curl  --request POST \ 
          --header "Content-Type: application/json" --header "Authorization: Token TOKEN_KEY" \
          --data-binary '{
        "page_urls": [
            "http://bayanbox.ir/view/5067853395275628881/boute.pdf@page=1"
        ],
        "fix_orientation": true,
        "word_positions": false,
        "wait": true,
        "priority": 3
    }' \
          https://alefba.roshan-ai.ir/api/read_pages/
    
    import requests
    
    values = {
        "page_urls": [
            "http://bayanbox.ir/view/5067853395275628881/boute.pdf@page=1"
        ],
        "fix_orientation": True,
        "word_positions": False,
        "wait": True,
        "priority": 3
    }
    
    headers = {
      'Authorization': 'Token TOKEN_KEY',
    }
    response = requests.post('https://alefba.roshan-ai.ir/api/read_pages/', data=values, headers=headers)
    
    print(response.json())
    

    Response

    [{
      "page_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf@page=1",
      "width": 2125,
      "height": 2750,
      "angle": 0.0,
      "text": "بوته\n\nدرس‌های دانشگاهی معمولا با پروژه‌هابی همراه هستند که سهم قابل‌توجهی از آموزش را بر عهده دارند. این پروژه‌ها\n...",
      "parts": [
        {
          "type": "text",
          "direction": "rtl",
          "box": "209 305 1711 449",
          "text": "درس‌های دانشگاهی معمولا با پروژه‌هابی همراه هستند که سهم قابل‌توجهی از آموزش را بر عهده دارند. این پروژه‌ها\n...",
          "lines": [
            {
              "label": 12,
              "is_bold": false,
              "probability": 1.0,
              "box": "211 305 1707 57",
              "text": "درس‌های دانشگاهی معمولا با پروژه‌هایی همراه هستند که سهم قابل‌توجهی از آموزش را بر عهده دارند. این پروژه‌ها"
            },
            ...
          ]
        },
        ...
      ]
    }]
    
    
    POST /api/read_pages/
    page_urls(required)

    Value: [URL, ]

    vector لینک صفحات.



    type

    Value: general عمومی ID-card کارت‌های شناسایی excel جداول

    vector نوع فایل ورودی. مقدار پیش‌فرض: general



    fix_orientation

    Value: true

    vector اگر true باشد، اعوجاج و کجی تصاویر، اصلاح می‌شود. مقدار پیش‌فرض: false.



    word_positions

    Value: true

    vector اگر true باشد، استخراج به شکل کلمه‌به‌کلمه و به همراه موقعیت مکانی هر کلمه صورت می‌گیرد. مقدار پیش‌فرض: false.



    wait

    Value: true

    vector اگر true باشد، تا زمانی که پردازشِ فایل کامل نشده باید منتظرِ پاسخ بمانید. اگر نمی‌خواهید معطل بمانید این پارامتر را false کنید و هر از گاهی با فرخوانی تابع «بررسی وضعیت پردازش»، میزان پیشرفتِ کار را چک کنید. خوب که پردازش تمام شد، مجدداً درخواست پردازش فایل بدهید تا نتیجهٔ پردازش را ببینید. مقدار پیش‌فرض: true.



    priority

    Value: 3

    vector اولویت پردازش را مشخص می‌کند. 1 یعنی خیلی زیاد، 2 یعنی زیاد، 3 یعنی معمولی، 4 یعنی کم. فقط همین چهار مقدار. مقدار پیش‌فرض: 1.



    بررسی وضعیت پردازش

    این تابع برای هریک از لینک‌های ورودی مشخص می‌کند که چه تعداد از صفحات آن‌ها پردازش شده است. در پاسخ ارسالی، برای هر لینک، سه پارامتر processed_pages به معنی تعداد صفحات پردازش‌شده، all_pages تعداد کل صفحات و analyzed ارائه می‌شود که پارامتر آخر تنها زمانی true می‌شود که پردازش همهٔ صفحات تمام شده باشد.

    مثال

    Request

    {
        "document_urls": [
            "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
        ]
    }
    
    curl  --request POST \ 
          --header "Content-Type: application/json" --header "Authorization: Token TOKEN_KEY" \
          --data-binary '{
        "document_urls": [
            "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
        ]
    }' \
          https://alefba.roshan-ai.ir/api/document_status/
    
    import requests
    
    values = {
        "document_urls": [
            "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
        ]
    }
    
    headers = {
      'Authorization': 'Token TOKEN_KEY',
    }
    response = requests.post('https://alefba.roshan-ai.ir/api/document_status/', data=values, headers=headers)
    
    print(response.json())
    

    Response

    {
      "http://bayanbox.ir/view/5067853395275628881/boute.pdf": {
        "analyzed": true,
        "processed_pages": 2,
        "all_pages": 2
      }
    }
    
    
    POST /api/document_status/
    document_urls(required)

    Value: [URL, ]

    vector لینک فایل‌ها



    دریافت لینک صفحات سند

    پیش از پردازش فایل ابتدا تمام صفحات آن استخراج می‌شود. این تابع با دریافت لینک فایل، لینک صفحات آن را به شما تحویل می‌دهد.

    مثال

    Request

    {
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
    }
    
    curl  --request POST \ 
          --header "Content-Type: application/json" --header "Authorization: Token TOKEN_KEY" \
          --data-binary '{
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
    }' \
          https://alefba.roshan-ai.ir/api/document_pages/
    
    import requests
    
    values = {
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
    }
    
    headers = {
      'Authorization': 'Token TOKEN_KEY',
    }
    response = requests.post('https://alefba.roshan-ai.ir/api/document_pages/', data=values, headers=headers)
    
    print(response.json())
    

    Response

    {
      "document_url":"http://bayanbox.ir/view/5067853395275628881/boute.pdf",
      "pages": [
        "http://bayanbox.ir/view/5067853395275628881/boute.pdf@page=1",
        "http://bayanbox.ir/view/5067853395275628881/boute.pdf@page=2"
      ]
    }
    
    
    POST /api/document_pages/
    document_url(required)

    Value: URL

    vector لینک فایل ورودی



    دریافت فایل ورد

    این تابع، نتیجهٔ پردازش را در قالب یک فایل ورد به شما تحویل می‌دهد. در این فایل، قالب سند حفظ شده است و اجزایی چون خطوط، پاراگراف‌ها و جداول به‌شکل صحیح درج می‌شود. دقت داشته باشید فایلی که می‌خواهید نسخهٔ وردِ آن را دریافت کنید ابتدا باید با تابع «ارسال لینک مستقیم فایل» پردازش شده باشد. شما نمی‌توانید فایلی که قبلاً پردازش نشده را به ورد تبدیل کنید.

    مثال

    Request

    {
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
    }
    
    curl  --request POST \ 
          --header "Content-Type: application/json" --header "Authorization: Token TOKEN_KEY" \
          --data-binary '{
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
    }' \
          https://alefba.roshan-ai.ir/api/download_word/
    
    import requests
    
    values = {
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
    }
    
    headers = {
      'Authorization': 'Token TOKEN_KEY',
    }
    response = requests.post('https://alefba.roshan-ai.ir/api/download_word/', data=values, headers=headers)
    
    print(response.json())
    

    Response

    boute.docx file
    
    
    POST /api/download_word/
    document_url(required)

    Value: URL

    vector لینک فایل ورودی



    دریافت فایل اکسل

    این تابع، نتیجهٔ پردازش را در قالب یک فایل اکسل به شما تحویل می‌دهد. دقت داشته باشید فایلی که می‌خواهید نسخهٔ اکسلِ آن را دریافت کنید ابتدا باید با تابع «ارسال لینک مستقیم فایل» پردازش شده باشد و حتماً پارامتر type آن برابر مقدار excel باشد.

    مثال

    Request

    {
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
    }
    
    curl  --request POST \ 
          --header "Content-Type: application/json" --header "Authorization: Token TOKEN_KEY" \
          --data-binary '{
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
    }' \
          https://alefba.roshan-ai.ir/api/download_excel/
    
    import requests
    
    values = {
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
    }
    
    headers = {
      'Authorization': 'Token TOKEN_KEY',
    }
    response = requests.post('https://alefba.roshan-ai.ir/api/download_excel/', data=values, headers=headers)
    
    print(response.json())
    

    Response

    boute.xlsx file
    
    
    POST /api/download_excel/
    document_url(required)

    Value: URL

    vector لینک فایل ورودی



    دریافت PDF قابل جستجو

    در حالت عادی بسیاری از فایل‌های پی‌دی‌افِ فارسی قابل جستجو نیستند. این تابع نتیجهٔ فایل پردازش‌شده را در قالب یک پی‌دی‌افِ قابل جستجو تحویل می دهد. به این ترتیب با هر یک از نرم‌افزارهای پی‌دی‌اف‌خوانِ رایج می‌توانید کلمات موردنظر را در متن پی‌دی‌اف جستجو کنید. دقت داشته باشید قبل از استفاده از این تابع ابتدا باید با تابع «ارسال لینک مستقیم فایل»، فایل موردنظر را پردازش کرده باشید.

    مثال

    Request

    {
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf",
        "quality": 100,
        "img_format": "png",
        "color": false
    }
    
    curl  --request POST \ 
          --header "Content-Type: application/json" --header "Authorization: Token TOKEN_KEY" \
          --data-binary '{
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf",
        "quality": 100,
        "img_format": "png",
        "color": false
    }' \
          https://alefba.roshan-ai.ir/api/download_pdf/
    
    import requests
    
    values = {
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf",
        "quality": 100,
        "img_format": "png",
        "color": False
    }
    
    headers = {
      'Authorization': 'Token TOKEN_KEY',
    }
    response = requests.post('https://alefba.roshan-ai.ir/api/download_pdf/', data=values, headers=headers)
    
    print(response.json())
    

    Response

    boute.pdf file
    
    
    POST /api/download_pdf/
    document_url(required)

    Value: URL

    vector لینک فایل ورودی



    quality

    Value: 100

    vector مقدار dpi فایل خروجی. بین 0 تا 100. مقدار پیش‌فرض: 100.



    color

    Value: false

    vector اگر true باشد، فایل خروجی رنگی خواهد بود. مقدار پیش‌فرض: true.



    حذف فایل

    با این تابع می‌توانید فایلی را که قبلاً از طریق تابع «ارسال لینک مستقیم فایل» ارسال کرده‌اید حذف کنید. کافی است دوباره همان لینک را از طریق این تابع ارسال کنید.

    مثال

    Request

    {
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
    }
    
    curl  --request POST \ 
          --header "Content-Type: application/json" --header "Authorization: Token TOKEN_KEY" \
          --data-binary '{
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
    }' \
          https://alefba.roshan-ai.ir/api/delete_document/
    
    import requests
    
    values = {
        "document_url": "http://bayanbox.ir/view/5067853395275628881/boute.pdf"
    }
    
    headers = {
      'Authorization': 'Token TOKEN_KEY',
    }
    response = requests.post('https://alefba.roshan-ai.ir/api/delete_document/', data=values, headers=headers)
    
    print(response.json())
    

    Response

    {
      "message":"Document deleted successfully."
    }
    
    
    POST /api/delete_document/
    document_url(required)

    Value: URL

    vector لینک فایل ورودی



    دریافت نتیجهٔ پردازش از طریق کال‌بک

    به کمک این تابع می‌توانید فایل موردنظر را به‌همراه یک کال‌بک ارسال کنید تا هروقت پردازش کامل شد نتیجه به آن کال‌بک ارسال شود. با این روش دیگر نیازی نیست منتظر پردازش فایل بمانید یا دیگر لازم نیست از طریق تابع «بررسی وضعیت پردازش»، میزان پیشرفت پردازش را چک کنید.

    مثال

    Request

    {
        "document_url": "http://alefba.roshan-ai.ir/media/files/46/00/166072370361-internship.pdf",
        "callback_url": "http://192.168.254.3:5013/alefba_post"
    }
    
    curl  --request POST \ 
          --header "Content-Type: application/json" --header "Authorization: Token TOKEN_KEY" --header "Content-Type: application/json" \
          --data-binary '{
        "document_url": "http://alefba.roshan-ai.ir/media/files/46/00/166072370361-internship.pdf",
        "callback_url": "http://192.168.254.3:5013/alefba_post"
    }' \
          https://alefba.roshan-ai.ir/api/read_document/
    
    import requests
    
    values = {
        "document_url": "http://alefba.roshan-ai.ir/media/files/46/00/166072370361-internship.pdf",
        "callback_url": "http://192.168.254.3:5013/alefba_post"
    }
    
    headers = {
      'Authorization': 'Token TOKEN_KEY',
    }
    response = requests.post('https://alefba.roshan-ai.ir/api/read_document/', data=values, headers=headers)
    
    print(response.json())
    

    Response

    {
      "state":"processing",
      "document_url":"http://192.168.254.3:5013/static/2021-10-12%20%281%29.png"
    }
    
    
    POST /api/read_document/
    document_url(required)

    Value: URL

    vector لینک فایل ورودی



    callback_url(required)

    Value: URL

    vector لینک کال‌بک برای ارسال نتیجه



    بررسی وضعیت سلامت ای‌پی‌آی

    وضعیت سلامت ای‌پی‌آی را بررسی می‌کند. در صورتی که سالم باشد پاسخی با کد ۲۰۰ و متن Server is up and ready برمی‌گردد.

    مثال

    Request

    ""
    
    curl  --request GET \ 
          --header "Content-Type: application/json" --header "Authorization: Token {your_api_token}" \
          --data-binary '""' \
          https://alefba.roshan-ai.ir/api/healthcheck/
    
    import requests
    
    values = ""
    
    headers = {
      'Authorization': 'Token {your_api_token}',
    }
    response = requests.get('https://alefba.roshan-ai.ir/api/healthcheck/', data=values, headers=headers)
    
    print(response.json())
    

    Response

    {
        "status": "ok",
        "message": "Server is up and ready"
    }
    
    
    GET /api/healthcheck/