الفبا
الفبا، یک 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
لینک فایل ورودی
-
type
Value: general عمومی ID-card کارتهای شناسایی excel جداول
نوع فایل ورودی. مقدار پیشفرض:
general.
-
fix_orientation
Value: true
اگر
true باشد، اعوجاج و کجی تصاویر اصلاح میشود. مقدار پیشفرض: false.
-
word_positions
Value: true
اگر
true باشد، استخراج به شکل کلمهبهکلمه و به همراه موقعیت مکانی هر کلمه صورت میگیرد. مقدار پیشفرض: false.
-
wait
Value: true
اگر
true باشد، تا زمانی که پردازشِ فایل کامل نشده باید منتظرِ پاسخ بمانید. اگر نمیخواهید معطل بمانید این پارامتر را false کنید و هر از گاهی با فرخوانی تابع «بررسی وضعیت پردازش»، میزان پیشرفتِ کار را چک کنید. خوب که پردازش تمام شد، مجدداً درخواست بدهید تا نتیجهٔ پردازش را ببینید. مقدار پیشفرض: true.
-
priority
Value: 3
اولویت پردازش را مشخص میکند.
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
لینک فایل ورودی
-
type
Value: general عمومی ID-card کارتهای شناسایی excel جداول
نوع فایل ورودی. مقدار پیشفرض:
general
-
fix_orientation
Value: true
اگر
true باشد، اعوجاج و کجی تصاویر، اصلاح میشود. مقدار پیشفرض: false.
-
word_positions
Value: true
اگر
true باشد، استخراج به شکل کلمهبهکلمه و به همراه موقعیت مکانی هر کلمه صورت میگیرد. مقدار پیشفرض: false.
-
wait
Value: true
اگر
true باشد، تا زمانی که پردازشِ فایل کامل نشده باید منتظرِ پاسخ بمانید. اگر نمیخواهید معطل بمانید این پارامتر را false کنید و هر از گاهی با فرخوانی تابع «بررسی وضعیت پردازش»، میزان پیشرفتِ کار را چک کنید. خوب که پردازش تمام شد، مجدداً درخواست پردازش فایل بدهید تا نتیجهٔ پردازش را ببینید. مقدار پیشفرض: true.
-
priority
Value: 3
اولویت پردازش را مشخص میکند.
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
شناسهٔ پردازش
-
wait
Value: true
توضیح این پارامتر در شرح این متد آمده است
مثال: ارسال مستقیم فایل
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
فایل ورودی
-
type
Value: general عمومی ID-card کارتهای شناسایی excel جداول
نوع فایل ورودی. مقدار پیشفرض:
general
-
fix_orientation
Value: true
اگر
true باشد، اعوجاج و کجی تصاویر، اصلاح میشود. مقدار پیشفرض: false.
-
word_positions
Value: true
اگر
true باشد، استخراج به شکل کلمهبهکلمه و به همراه موقعیت مکانی هر کلمه صورت میگیرد. مقدار پیشفرض: false.
-
wait
Value: true
اگر
true باشد، تا زمانی که پردازشِ فایل کامل نشده باید منتظرِ پاسخ بمانید. اگر نمیخواهید معطل بمانید این پارامتر را false کنید و هر از گاهی با فرخوانی تابع «بررسی وضعیت پردازش»، میزان پیشرفتِ کار را چک کنید. خوب که پردازش تمام شد، مجدداً درخواست پردازش فایل بدهید تا نتیجهٔ پردازش را ببینید. مقدار پیشفرض: true.
-
priority
Value: 3
اولویت پردازش را مشخص میکند.
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, ]
لینک صفحات.
-
type
Value: general عمومی ID-card کارتهای شناسایی excel جداول
نوع فایل ورودی. مقدار پیشفرض:
general
-
fix_orientation
Value: true
اگر
true باشد، اعوجاج و کجی تصاویر، اصلاح میشود. مقدار پیشفرض: false.
-
word_positions
Value: true
اگر
true باشد، استخراج به شکل کلمهبهکلمه و به همراه موقعیت مکانی هر کلمه صورت میگیرد. مقدار پیشفرض: false.
-
wait
Value: true
اگر
true باشد، تا زمانی که پردازشِ فایل کامل نشده باید منتظرِ پاسخ بمانید. اگر نمیخواهید معطل بمانید این پارامتر را false کنید و هر از گاهی با فرخوانی تابع «بررسی وضعیت پردازش»، میزان پیشرفتِ کار را چک کنید. خوب که پردازش تمام شد، مجدداً درخواست پردازش فایل بدهید تا نتیجهٔ پردازش را ببینید. مقدار پیشفرض: true.
-
priority
Value: 3
اولویت پردازش را مشخص میکند.
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, ]
لینک فایلها
دریافت لینک صفحات سند
پیش از پردازش فایل ابتدا تمام صفحات آن استخراج میشود. این تابع با دریافت لینک فایل، لینک صفحات آن را به شما تحویل میدهد.
مثال
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
لینک فایل ورودی
دریافت فایل ورد
این تابع، نتیجهٔ پردازش را در قالب یک فایل ورد به شما تحویل میدهد. در این فایل، قالب سند حفظ شده است و اجزایی چون خطوط، پاراگرافها و جداول بهشکل صحیح درج میشود. دقت داشته باشید فایلی که میخواهید نسخهٔ وردِ آن را دریافت کنید ابتدا باید با تابع «ارسال لینک مستقیم فایل» پردازش شده باشد. شما نمیتوانید فایلی که قبلاً پردازش نشده را به ورد تبدیل کنید.
مثال
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
لینک فایل ورودی
دریافت فایل اکسل
این تابع، نتیجهٔ پردازش را در قالب یک فایل اکسل به شما تحویل میدهد. دقت داشته باشید فایلی که میخواهید نسخهٔ اکسلِ آن را دریافت کنید ابتدا باید با تابع «ارسال لینک مستقیم فایل» پردازش شده باشد و حتماً پارامتر 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
لینک فایل ورودی
دریافت 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
لینک فایل ورودی
-
quality
Value: 100
مقدار dpi فایل خروجی. بین
0 تا 100. مقدار پیشفرض: 100.
-
color
Value: false
اگر
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
لینک فایل ورودی
دریافت نتیجهٔ پردازش از طریق کالبک
به کمک این تابع میتوانید فایل موردنظر را بههمراه یک کالبک ارسال کنید تا هروقت پردازش کامل شد نتیجه به آن کالبک ارسال شود. با این روش دیگر نیازی نیست منتظر پردازش فایل بمانید یا دیگر لازم نیست از طریق تابع «بررسی وضعیت پردازش»، میزان پیشرفت پردازش را چک کنید.
مثال
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
لینک فایل ورودی
-
callback_url(required)
Value: URL
لینک کالبک برای ارسال نتیجه
بررسی وضعیت سلامت ایپیآی
وضعیت سلامت ایپیآی را بررسی میکند. در صورتی که سالم باشد پاسخی با کد ۲۰۰ و متن 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/