Mistral का नवीनतम OCR मॉडल, Mistral OCR 3, असाधारण निष्ठा के साथ विविध प्रकार के दस्तावेज़ों से पाठ और एंबेडेड छवियाँ निकालने में सक्षम है।
इस लेख में, मैं आपको Mistral OCR 3 का अधिकतम लाभ उठाना सिखाऊँगा—उनके AI Studio और Python के साथ उनकी API, दोनों का उपयोग करके। हम एक छोटा ऐप बनाएँगे जो मेन्यू की फोटो को एक इंटरैक्टिव वेबसाइट में बदल देता है।
यदि आप API के साथ काम करके AI-संचालित टूल बनाना सीखने के इच्छुक हैं, तो मैं यह कोर्स देखने की सलाह दूँगा Working with the OpenAI API.
Mistral OCR क्या है?
OCR का अर्थ Optical Character Recognition है और इसका उद्देश्य दस्तावेज़ों को पाठ में बदलना है। उदाहरण के लिए, यह हस्तलिखित नोट की फोटो को पाठ में बदल सकता है या PDF में मौजूद तालिका को वास्तविक टेक्स्ट तालिका में, जिसे खोजा और संपादित किया जा सके।
Mistral OCR 3, Mistral AI का नवीनतम दस्तावेज़ समझ मॉडल है, जो वास्तविक दुनिया के दस्तावेज़ों के लिए अत्याधुनिक सटीकता और दक्षता प्रदान करता है। यह उच्च निष्ठा के साथ पाठ और एंबेडेड छवियाँ निकालता है और HTML-आधारित टेबल पुनर्निर्माण के साथ मार्कडाउन आउटपुट के जरिए संरचना को संरक्षित रखता है, साथ ही वैकल्पिक संरचित JSON का समर्थन करता है।
Mistral OCR 3 व्यापक बेंचमार्क्स में सभी प्रतिस्पर्धियों से बेहतर प्रदर्शन करता है:
Mistral OCR 2 की तुलना में, यह फॉर्म्स, स्कैन्ड दस्तावेज़ों, जटिल तालिकाओं और हस्तलेखन पर 74% समग्र जीत दर प्राप्त करता है, और कम-गुणवत्ता वाले स्कैन तथा घने लेआउट पर उल्लेखनीय बढ़त दिखाता है।
आइए देखें कि AI Studio के साथ Mistral OCR 3 का उपयोग करने के लिए सेटअप कैसे करें।
खाता सेटअप
Mistral OCR 3, उनके AI स्टूडियो पर उपयोग के लिए उपलब्ध है। इसे आज़माने का यह सबसे आसान तरीका है क्योंकि यह एक उपयोगकर्ता-अनुकूल इंटरफ़ेस प्रदान करता है।
साइन अप करने पर, सबसे पहले हमें एक संगठन बनाने के लिए कहा जाता है:
शुरुआत में, Mistral OCR 3 लॉक रहेगा, और इसे अनलॉक करने के लिए हमें कोई प्लान चुनना होगा:
एक निःशुल्क प्लान चुनना संभव है, जो उनके द्वारा अपनी सेवाएँ सुधारने हेतु उपयोग डेटा एकत्र करने की अनुमति देने के बदले Mistral OCR 3 के उपयोग की अनुमति देता है। वैकल्पिक रूप से, हम क्रेडिट कार्ड विवरण दर्ज कर सकते हैं और उपयोग के आधार पर शुल्क लिया जाएगा।
कोई सब्सक्रिप्शन शुल्क नहीं है, लेकिन हमसे प्रति 1,000 पृष्ठों पर $2 या $1 लिया जाता है, इस पर निर्भर करते हुए कि हम बैच अनुरोधों का उपयोग करते हैं या नहीं।
हमारा पहला दस्तावेज़ पार्स करना
एक बार खाता सेट हो जाने के बाद, हम AI Studio पर "Document AI" टैब खोलकर Mistral OCR 3 के साथ प्रयोग कर सकते हैं।
शुरू करने के लिए, हम वह दस्तावेज़ या छवि अपलोड करते हैं जिस पर हमें OCR करना है। मेरे मामले में, मैंने कागज़ पर कुछ टेक्स्ट और एक तालिका लिखी और उसे अपलोड किया। मेरी हैंडराइटिंग काफ़ी खराब है, इसलिए मैं जानना चाहता था कि क्या Mistral OCR 3 इसे समझ पाएगा।
फ़ाइल चुनने पर, हमें यह तय करने के विकल्प मिलते हैं कि उसे कैसे प्रोसेस किया जाए। इस पहले उदाहरण में, मैंने डिफ़ॉल्ट विकल्प ही छोड़े और दाएँ ऊपर कोने में "Run" बटन पर क्लिक कर दिया।
यह रहा परिणाम:
नतीजा काफ़ी अच्छा है, पर परफेक्ट नहीं:
पहले वाक्य में दो गलतियाँ हैं: "homd" की जगह "hand" और "tarnible" की जगह "terrible"।
तालिका कुल मिलाकर अच्छी है, पर यह कॉलम नामों की सही पहचान नहीं कर पाई। तालिका का नाम "OCR Benchmark Multilingual Chinese" और "Result" कॉलम आपस में मिल गए।
मैं प्रभावित था कि यह मेरे द्वारा काटे गए शब्दों/त्रुटियों को कैसे संभाल सका। हालांकि, यदि मैं इसे अपने नोट्स पार्स करने के लिए उपयोग कर रहा होता, तो मैं चाहता कि ऐसी प्रविष्टियाँ पहचानी जाएँ और छोड़ दी जाएँ।
अंत में, मैंने पारंपरिक चीनी में एक वाक्य लिखा, और यह उसका अधिकांश भाग पहचान सका। "好" अक्षर को दो अलग अक्षरों "女" और "子" के रूप में पार्स किया गया, कॉमा को "g" अक्षर समझा गया, और अंत में भी एक गलती है।
पार्स विकल्पों का अन्वेषण
Mistral OCR 3 की एक अच्छी विशेषता यह है कि हम डेटा पार्स करने के लिए JSON संरचना निर्दिष्ट कर सकते हैं। यह विशेषकर तालिकाएँ पार्स करने में उपयोगी है—हम कॉलम नाम और उनके डेटा प्रकार निर्दिष्ट कर सकते हैं ताकि पंक्तियाँ JSON डिक्शनरी के रूप में मिलें।
आइए पिछले उदाहरण की तालिका को JSON स्कीमा निर्दिष्ट करके फिर से पार्स करने की कोशिश करें।
JSON स्कीमा देने के लिए, OCR चलाने से पहले हमें टेक्स्ट मोड की बजाय JSON schema चुनना होगा।
इसके बाद हम स्कीमा को या तो कोड के जरिए देते हैं या "Visual Builder" यूज़र इंटरफ़ेस से। जब हम मॉडल को मैनुअल रूप से उपयोग कर रहे हों, तो मैं दूसरा विकल्प सुझाता हूँ क्योंकि यह सरल है।
फ़ील्ड जोड़ते समय, हम निर्दिष्ट करते हैं:
नाम
विवरण
डेटा प्रकार
फ़ील्ड अनिवार्य है या नहीं
इस मामले में, मैंने दो फ़ील्ड निर्दिष्ट किए—एक मॉडल के नाम के लिए और दूसरा बेंचमार्क परिणाम के लिए:
अब हम "Run" पर क्लिक कर सकते हैं और परिणाम देख सकते हैं। दुर्भाग्यवश, यह उदाहरण काम नहीं किया। परिणामों में केवल वही स्कीमा लौटा जो मैंने दिया था, वास्तविक डेटा नहीं।
मुझे लगा शायद मैंने इसका उपयोग ग़लत किया हो, इसलिए पक्का करने के लिए मैंने विकिपीडिया से एक नमूना तालिका का स्क्रीनशॉट लिया और फिर से प्रयास किया।
मैंने चार कॉलम निर्दिष्ट किए, अंतिम को वैकल्पिक छोड़ते हुए:
इस बार यह अच्छे से काम किया। लगता है कि जब पार्सिंग विफल होती है, तो JSON परिणाम केवल दिया गया स्कीमा ही लौटाता है। इसका मतलब यह भी है कि Mistral OCR 3 मेरे हस्तलिखित टेबल को JSON के रूप में पार्स करने में विफल रहा, जबकि वह इसे टेक्स्ट के रूप में रेंडर कर सका।
Python के साथ Mistral OCR 3 का उपयोग
इस खंड में, हम Python का उपयोग करके Mistral OCR 3 API से इंटरेक्ट करना सीखेंगे। यह हमें कहीं अधिक लचीलापन देता है—उदाहरण के लिए, हम आउटपुट को अन्य AI मॉडलों के साथ मिलाकर निकाले गए डेटा को आगे प्रोसेस कर सकते हैं।
जब हम AI Studio पर फ़ाइल अपलोड करते हैं, तो "Run" बटन के बगल में एक "Code" बटन होता है। इस पर क्लिक करके, हम देख सकते हैं कि API का उपयोग करके यही ऑपरेशन करने के लिए कौन-सा कोड चाहिए होगा।
यहाँ एक उदाहरण है:
हालाँकि, दिया गया Python कोड पूरी तरह सटीक नहीं है। उदाहरण के लिए, यह encode_file नामक फ़ंक्शन परिभाषित करता है, लेकिन फिर encode नामक फ़ंक्शन को कॉल करता है। ये छोटी असंगतियाँ हैं, पर इनसे कोड बॉक्स से बाहर निकालते ही काम नहीं करता।
चिंता न करें, हम विस्तार से बताएँगे कि API का उपयोग कैसे करें। API के बारे में अधिक जानने के लिए, यह देखें आधिकारिक प्रलेखन।
API सेटअप
सबसे पहले हमें "API Keys" टैब में एक API कुंजी बनानी है और उस कुंजी को Python स्क्रिप्ट वाले फ़ोल्डर में स्थित .env नामक नई फ़ाइल में कॉपी करना है।
यहाँ एक Python स्क्रिप्ट है जो एक स्थानीय JPEG छवि लोड करती है, उस पर OCR चलाती है, और परिणाम को एक मार्कडाउन फ़ाइल में सहेजती है:
import sys
import base64
import os
from mistralai import Mistral
from dotenv import load_dotenv
# Load the API key from the .env file
load_dotenv()# Initialize the Mistral client
api_key = os.environ["MISTRAL_API_KEY"]
client = Mistral(api_key=api_key)# Load a file as base 64defencode_file(file_path):withopen(file_path,"rb")as pdf_file:return base64.b64encode(pdf_file.read()).decode('utf-8')# Perform OCR on and imagedefprocess_image_ocr(file_path):
base64_file = encode_file(file_path)
ocr_response = client.ocr.process(
model="mistral-ocr-latest",
document={"type":"image_url","image_url":f"data:image/jpeg;base64,{base64_file}"},
include_image_base64=True)for index, page inenumerate(ocr_response.pages):withopen(f"page{index}.md","wt")as f:
f.write(page.markdown)if __name__ =="__main__":# Load the input file from the arguments
file_path = sys.argv[1]
process_image_ocr(file_path)संचालित द्वारा
किसी PDF पर OCR करना
जब इनपुट छवि की बजाय PDF हो, तो केवल document फ़ील्ड में दिया गया मान बदलता है। JPEG छवि के लिए, हमने यह उपयोग किया था:
document={"type":"image_url","image_url":f"data:image/jpeg;base64,{base64_file}"},संचालित द्वारा
PDF के लिए, हम इसके बजाय यह उपयोग करते हैं:
document={
"type": "document_url",
"document_url": f"data:application/pdf;base64,{base64_file}"
},संचालित द्वारा
यहाँ एक पूरी फ़ंक्शन है जिसका उपयोग हम PDF प्रोसेस करने के लिए कर सकते हैं:
PDF और JPEG फ़ाइलों को प्रोसेस करने के लिए दो अलग-अलग फ़ंक्शन होना थोड़ा झंझट भरा है और सर्वोत्तम प्रथा भी नहीं, क्योंकि दोनों में बहुत-सा साझा कोड है।
इसे टालने के लिए, हमने एक नया, बेहतर फ़ंक्शन लिखा जो mimetypes पैकेज का उपयोग करके दी गई फ़ाइल के प्रकार की पहचान करता है और उसी के अनुसार API अनुरोध बनाता है। हमने कोड को यह सुनिश्चित करने हेतु भी अपडेट किया कि दस्तावेज़ में पहचानी गई छवियाँ सहेजी जाएँ।
यह रहा अंतिम संस्करण:
import sys
import os
import base64
import mimetypes
import datauri
from mistralai import Mistral
from dotenv import load_dotenv
# Load the API key from the .env file
load_dotenv()# Initialize the Mistral client
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])# List the supported image types
SUPPORTED_IMAGE_TYPES ={"image/jpeg","image/png","image/webp","image/tiff",}
PDF_MIME ="application/pdf"# Load a file as base 64defencode_file(file_path:str)->str:withopen(file_path,"rb")as f:return base64.b64encode(f.read()).decode("utf-8")# Build the document payload depending on the type of data contained in the filedefbuild_document_payload(file_path:str)->dict:
mime_type, _ = mimetypes.guess_type(file_path)ifnot mime_type:raise ValueError(f"Could not determine MIME type for {file_path}")
base64_file = encode_file(file_path)if mime_type == PDF_MIME:return{"type":"document_url","document_url":f"data:{mime_type};base64,{base64_file}",}if mime_type in SUPPORTED_IMAGE_TYPES:return{"type":"image_url","image_url":f"data:{mime_type};base64,{base64_file}",}raise ValueError(f"Unsupported file type: {mime_type}")# Generic function to process OCR on a filedefprocess_ocr(file_path:str, output_filename:str="output.md"):
document = build_document_payload(file_path)
ocr_response = client.ocr.process(
model="mistral-ocr-latest",
document=document,
include_image_base64=True,)
process_pages(ocr_response, output_filename)# Save an image to a local filedefsave_image(image):
parsed = datauri.parse(image.image_base64)withopen(image.id,"wb")as f:
f.write(parsed.data)# Process all pages from the OCR responsedefprocess_pages(ocr_response, output_filename:str):withopen(output_filename,"wt")as f:for page in ocr_response.pages:
f.write(page.markdown)for image in page.images:
save_image(image)if __name__ =="__main__":iflen(sys.argv)<2:print("Usage: python ocr.py <file>")
sys.exit(1)
process_ocr(sys.argv[1])संचालित द्वारा
इस संस्करण का उपयोग करने के लिए Mistral OCR 3 द्वारा पहचानी गई छवि सहेजने हेतु datauri पैकेज चाहिए, जिसे इस प्रकार इंस्टॉल किया जा सकता है:
हमने ऊपर सीखा कि Mistral OCR 3 हमें डेटा पार्स करने के लिए JSON स्कीमा देने देता है। यह सुविधा API के जरिए उपयोग करने पर भी उपलब्ध है।
ऐसा करने के लिए, हमें अनुरोध करते समय JSON स्कीमा को document_annotation_format पैरामीटर में देना होता है। नीचे हस्तलिखित तालिका उदाहरण के अनुरूप दो कॉलम model और result के लिए एक JSON स्कीमा का उदाहरण है।
document_annotation_format={
"name": "response_schema",
"schemaDefinition": {
"properties": {
"model": {
"type": "string",
"description": "The name of the model"
},
"result": {
"type": "number",
"description": "The benchmark result"
}
},
"required": [
"model"
]
}
}संचालित द्वारा
संरचना हमेशा समान रहती है। हमें properties फ़ील्ड में प्रत्येक कॉलम के लिए एक प्रविष्टि जोड़नी होती है, जिसमें डेटा प्रकार की जानकारी और मॉडल को डेटा पहचानने में मदद के लिए एक विवरण शामिल हो।
फिर हम सभी अनिवार्य फ़ील्ड्स को required फ़ील्ड के तहत सूचीबद्ध करते हैं।
इसे कोड के साथ उपयोग करने का सबसे आसान तरीका यह है कि स्कीमा को एक JSON फ़ाइल में रखें और json पैकेज का उपयोग करके उसे लोड करें।
Mistral OCR 3 परियोजना विचार
API के साथ Mistral OCR 3 का उपयोग करने के मुख्य लाभों में से एक है इसके ऊपर निर्माण करने की क्षमता। इस खंड में, हम कुछ परियोजना विचार प्रस्तुत करते हैं जिन पर आप आगे निर्माण कर सकते हैं।
खर्च ट्रैकर ऐप
हमने सीखा कि किसी छवि पर OCR कैसे करें। इसका उपयोग करके हम एक ऐसा ऐप बना सकते हैं जो शॉपिंग रसीद की फोटो ले, फिर Mistral OCR 3 का उपयोग करके छवि में मौजूद डेटा प्रोसेस करे और रसीद पर मौजूद वस्तुओं और उनकी कीमतों की सूची वाला JSON डिक्शनरी निकाले।
इसके बाद इन खर्चों को स्वतः श्रेणीबद्ध कर के डेटाबेस में जोड़ दिया जा सकता है, जिससे उपयोगकर्ता अपने खर्च का हिसाब रख सके।
दस्तावेज़ ऑडियो रीडर
हम Mistral OCR 3 को किसी टेक्स्ट-टू-स्पीच AI के साथ जोड़कर दस्तावेज़ ऑडियो रीडर बना सकते हैं। उपयोगकर्ता एक टेक्स्ट PDF चुन सकता है और उसे प्रोसेसिंग के लिए Mistral OCR 3 को भेज सकता है। फिर प्राप्त टेक्स्ट को OpenAI Audio API या Eleven Labs जैसे टेक्स्ट-टू-स्पीच AI मॉडल को भेजा जाए।
क्योंकि Mistral OCR 3 छवियों के साथ भी काम करता है, इसे फ़ोटो के साथ भी उपयोग किया जा सकता है—उपयोगकर्ता दस्तावेज़ की फोटो लेकर चलते-फिरते उसे सुन सकते हैं।
टेक्स्ट-टू-स्पीच के बारे में अधिक जानने के लिए, मैं निम्न में से किसी एक को देखने की सलाह दूँगा:
Mistral OCR 3, वास्तविक दुनिया के दस्तावेज़ों को उपयोगी टेक्स्ट और संरचित डेटा में बदलने के लिए एक सक्षम और व्यावहारिक टूल है—चाहे आप AI Studio में प्रयोग कर रहे हों या Python के जरिए इंटीग्रेट कर रहे हों।
यह स्कैन्ड पेज, फॉर्म्स और टेबल्स पर चमकता है, मार्कडाउन और छवियों के साथ लेआउट को सुरक्षित रखता है, और जब संरचना चाहिए हो तो JSON स्कीमा का समर्थन करता है। हालांकि, जैसा हमने देखा, अव्यवस्थित हस्तलेखन और अस्पष्ट हेडर इसे अब भी उलझा सकते हैं, और असफल स्कीमा पार्स में केवल स्कीमा ही लौट आता है।
API मामूली असंगतियाँ सुलझाने के बाद सीधी-सादी है, और एक जेनेरिक फ़ाइल हैंडलर के साथ, छवियाँ सहेजने की क्षमता जोड़ने से इसे छोटे ऐप्स या पाइपलाइनों में इंटीग्रेट करना आसान हो जाता है। यदि आप बस आज़मा रहे हैं, तो Studio सबसे तेज़ रास्ता है। प्रोडक्शन उपयोग के लिए, लागत मॉडल पर विचार करें, जहाँ संभव हो बैच करें, और एज केस के लिए वैलिडेशन जोड़ें।
इसके बाद, आप पुनरावृत्ति कर सकते हैं; स्कीमा ट्यून करें, आउटपुट को अन्य मॉडलों के साथ संयोजित करें, और रिसीट पार्सर या ऑडियो रीडर जैसी केंद्रित उपयोगिताएँ बनाएँ—जहाँ मॉडल भारी काम करे और आप विश्वसनीयता व UX संभालें।
Mistral OCR 3 FAQs
Mistral OCR 3 की लागत कितनी है?⌄
Mistral OCR 3, प्रति-टोकन (जो LLMs में आम है) के बजाय प्रति-पृष्ठ भुगतान मॉडल पर कार्य करता है।
स्टैंडर्ड API:1,000 पृष्ठों पर $2।
बैच API:1,000 पृष्ठों पर $1 (उच्च-वॉल्यूम कार्यों के लिए सर्वोत्तम, जहाँ तुरंत प्रोसेसिंग आवश्यक न हो)।
फ्री टियर: "Free" प्लान पर मॉडल तक पहुँचने के लिए कोई सब्सक्रिप्शन शुल्क नहीं है, लेकिन इस टियर पर उपयोग डेटा Mistral द्वारा उनके मॉडलों को प्रशिक्षित करने में इस्तेमाल किया जा सकता है। डेटा को निजी रखना हो तो आपको पेड प्लान चुनना होगा।
कौन-से फ़ाइल फ़ॉर्मैट और भाषाएँ समर्थित हैं?⌄
Mistral OCR 3 मूल रूप से बहुभाषी है और अंग्रेज़ी से आगे जटिल लिपियों को संभालने में सक्षम है।
फ़ाइल फ़ॉर्मैट: यह मुख्य रूप से PDFs और सामान्य इमेज फ़ॉर्मैट जैसे JPEG, PNG, TIFF, WEBP और AVIF का समर्थन करता है। प्रलेखन में document_url इनपुट के माध्यम से DOCX और PPTX जैसे दस्तावेज़ फ़ॉर्मैट के समर्थन का भी उल्लेख है।
भाषाएँ: यह बॉक्स से बाहर ही 35+ भाषाओं का समर्थन करता है, जिनमें लैटिन-आधारित भाषाएँ (अंग्रेज़ी, फ़्रेंच, स्पेनिश), सिरिलिक, अरबी, हिंदी, और चीनी (पारंपरिक और सरलीकृत) शामिल हैं।
Mistral OCR 3, GPT-4o जैसे Vision LLMs की तुलना में कैसा है?⌄
हालाँकि सामान्य Vision LLMs (जैसे GPT-4o) छवियाँ "पढ़" सकते हैं, Mistral OCR 3 एक विशेष मॉडल है जो खास तौर पर दस्तावेज़ पार्सिंग के लिए अनुकूलित है।
संरचना बनाम सामग्री: Mistral OCR 3 लेआउट संरचना को संरक्षित रखने में उत्कृष्ट है, जटिल तालिकाओं को सीधे HTML/Markdown में बदल देता है और एंबेडेड छवियाँ अलग से निकालता है। Vision LLMs अक्सर सख्त टेबल ज्यामिति बनाए रखने में संघर्ष करते हैं या घनी स्प्रेडशीट पार्स करते समय भ्रमपूर्ण आउटपुट दे देते हैं।
लागत कुशलता: शुद्ध दस्तावेज़ प्रोसेसिंग (जैसे 10,000 इनवॉइस पार्स करना) के लिए, Mistral OCR 3 आम तौर पर काफी सस्ता पड़ता है क्योंकि आप प्रति पृष्ठ भुगतान करते हैं, जबकि Vision LLMs प्रति टोकन (इनपुट इमेज टोकन + आउटपुट टेक्स्ट टोकन) शुल्क लेते हैं, जो घने टेक्स्ट के लिए जल्दी महँगा हो सकता है।
क्या Mistral OCR 3 हस्तलेखन संभालता है?⌄
हाँ, लेकिन सीमाएँ हैं। इसने हैंडराइटिंग बेंचमार्क पर अपने पूर्ववर्ती के मुकाबले 74% जीत दर हासिल की है और कर्सिव तथा मिश्रित एनोटेशन (जैसे, प्रिंटेड फॉर्म पर लिखी गई टिप्पणियाँ) को संभाल सकता है। हालाँकि, आपके प्रयोगों में देखा गया कि यह बहुत गंदी हैंडराइटिंग या विशेष रूप से काटे गए पाठ के साथ अब भी जूझ सकता है, कभी-कभी मैनुअल सुधारों को सक्रिय टेक्स्ट के रूप में गलत समझ लेता है।
यदि JSON extraction विफल हो जाए तो क्या होता है?⌄
Mistral OCR 3 की अनोखी विशेषताओं में से एक है Structured OCR, जहाँ आप JSON स्कीमा (जैसे कॉलम नाम और डेटा प्रकार) परिभाषित कर सकते हैं। यदि मॉडल, उदाहरण के लिए अस्पष्ट हेडर या मिले-जुले कॉलम के कारण, दस्तावेज़ सामग्री को आपके सख्त स्कीमा से मैप करने में विफल रहता है, तो यह आमतौर पर मनगढ़ंत डेटा लौटाने के बजाय स्वयं स्कीमा पर या एक मानक टेक्स्ट पार्स पर वापस चला जाता है। यह "फेल-सेफ" व्यवहार डाउनस्ट्रीम एप्लिकेशन को चुपचाप अमान्य डेटा प्रोसेस करने से बचाने में मदद करता है।
Full-stack इंजीनियर एवं संस्थापक, CheapGPT पर। पढ़ाना हमेशा से मेरा जुनून रहा है। विद्यार्थी जीवन से ही मैं उत्साहपूर्वक ट्यूशन देने और अन्य विद्यार्थियों की सहायता करने के अवसर तलाशता रहा हूँ। इसी जुनून ने मुझे पीएचडी करने के लिए प्रेरित किया, जहाँ मैंने अपने शैक्षणिक प्रयासों के साथ शिक्षण सहायक के रूप में भी काम किया। उन वर्षों में पारंपरिक कक्षा-परिवेश में काम करना, संबंध बनाना और सीखने को आसान बनाना मुझे अत्यंत संतोष देता था। लेकिन ऑनलाइन लर्निंग प्लेटफ़ॉर्म के आगमन के साथ, मैंने डिजिटल शिक्षा की रूपांतरकारी क्षमता को पहचाना। वास्तव में, हमारी ही विश्वविद्यालय में ऐसे एक प्लेटफ़ॉर्म के विकास में मैं सक्रिय रूप से शामिल था। मैं पारंपरिक शिक्षण सिद्धांतों को नवोन्मेषी डिजिटल पद्धतियों के साथ जोड़ने के लिए गहराई से प्रतिबद्ध हूँ। मेरा उद्देश्य ऐसे पाठ्यक्रम बनाना है जो न केवल रोचक और सूचनाप्रद हों, बल्कि इस डिजिटल युग के शिक्षार्थियों के लिए सुगम भी हों।
Mistral का नवीनतम OCR मॉडल, Mistral OCR 3, असाधारण निष्ठा के साथ विविध प्रकार के दस्तावेज़ों से पाठ और एंबेडेड छवियाँ निकालने में सक्षम है।
इस लेख में, मैं आपको Mistral OCR 3 का अधिकतम लाभ उठाना सिखाऊँगा—उनके AI Studio और Python के साथ उनकी API, दोनों का उपयोग करके। हम एक छोटा ऐप बनाएँगे जो मेन्यू की फोटो को एक इंटरैक्टिव वेबसाइट में बदल देता है।
यदि आप API के साथ काम करके AI-संचालित टूल बनाना सीखने के इच्छुक हैं, तो मैं यह कोर्स देखने की सलाह दूँगा Working with the OpenAI API.
Mistral OCR क्या है?
OCR का अर्थ Optical Character Recognition है और इसका उद्देश्य दस्तावेज़ों को पाठ में बदलना है। उदाहरण के लिए, यह हस्तलिखित नोट की फोटो को पाठ में बदल सकता है या PDF में मौजूद तालिका को वास्तविक टेक्स्ट तालिका में, जिसे खोजा और संपादित किया जा सके।
Mistral OCR 3, Mistral AI का नवीनतम दस्तावेज़ समझ मॉडल है, जो वास्तविक दुनिया के दस्तावेज़ों के लिए अत्याधुनिक सटीकता और दक्षता प्रदान करता है। यह उच्च निष्ठा के साथ पाठ और एंबेडेड छवियाँ निकालता है और HTML-आधारित टेबल पुनर्निर्माण के साथ मार्कडाउन आउटपुट के जरिए संरचना को संरक्षित रखता है, साथ ही वैकल्पिक संरचित JSON का समर्थन करता है।
Mistral OCR 3 व्यापक बेंचमार्क्स में सभी प्रतिस्पर्धियों से बेहतर प्रदर्शन करता है:
Mistral OCR 2 की तुलना में, यह फॉर्म्स, स्कैन्ड दस्तावेज़ों, जटिल तालिकाओं और हस्तलेखन पर 74% समग्र जीत दर प्राप्त करता है, और कम-गुणवत्ता वाले स्कैन तथा घने लेआउट पर उल्लेखनीय बढ़त दिखाता है।
OCR और Mistral के पिछले मॉडल के बारे में अधिक जानने के लिए, यह लेख देखें: Mistral OCR: व्यावहारिक उदाहरणों के साथ एक गाइड.
Mistral AI Studio पर Mistral OCR 3 का उपयोग
आइए देखें कि AI Studio के साथ Mistral OCR 3 का उपयोग करने के लिए सेटअप कैसे करें।
खाता सेटअप
Mistral OCR 3, उनके AI स्टूडियो पर उपयोग के लिए उपलब्ध है। इसे आज़माने का यह सबसे आसान तरीका है क्योंकि यह एक उपयोगकर्ता-अनुकूल इंटरफ़ेस प्रदान करता है।
साइन अप करने पर, सबसे पहले हमें एक संगठन बनाने के लिए कहा जाता है:
शुरुआत में, Mistral OCR 3 लॉक रहेगा, और इसे अनलॉक करने के लिए हमें कोई प्लान चुनना होगा:
एक निःशुल्क प्लान चुनना संभव है, जो उनके द्वारा अपनी सेवाएँ सुधारने हेतु उपयोग डेटा एकत्र करने की अनुमति देने के बदले Mistral OCR 3 के उपयोग की अनुमति देता है। वैकल्पिक रूप से, हम क्रेडिट कार्ड विवरण दर्ज कर सकते हैं और उपयोग के आधार पर शुल्क लिया जाएगा।
कोई सब्सक्रिप्शन शुल्क नहीं है, लेकिन हमसे प्रति 1,000 पृष्ठों पर $2 या $1 लिया जाता है, इस पर निर्भर करते हुए कि हम बैच अनुरोधों का उपयोग करते हैं या नहीं।
हमारा पहला दस्तावेज़ पार्स करना
एक बार खाता सेट हो जाने के बाद, हम AI Studio पर "Document AI" टैब खोलकर Mistral OCR 3 के साथ प्रयोग कर सकते हैं।
शुरू करने के लिए, हम वह दस्तावेज़ या छवि अपलोड करते हैं जिस पर हमें OCR करना है। मेरे मामले में, मैंने कागज़ पर कुछ टेक्स्ट और एक तालिका लिखी और उसे अपलोड किया। मेरी हैंडराइटिंग काफ़ी खराब है, इसलिए मैं जानना चाहता था कि क्या Mistral OCR 3 इसे समझ पाएगा।
फ़ाइल चुनने पर, हमें यह तय करने के विकल्प मिलते हैं कि उसे कैसे प्रोसेस किया जाए। इस पहले उदाहरण में, मैंने डिफ़ॉल्ट विकल्प ही छोड़े और दाएँ ऊपर कोने में "Run" बटन पर क्लिक कर दिया।
यह रहा परिणाम:
नतीजा काफ़ी अच्छा है, पर परफेक्ट नहीं:
पार्स विकल्पों का अन्वेषण
Mistral OCR 3 की एक अच्छी विशेषता यह है कि हम डेटा पार्स करने के लिए JSON संरचना निर्दिष्ट कर सकते हैं। यह विशेषकर तालिकाएँ पार्स करने में उपयोगी है—हम कॉलम नाम और उनके डेटा प्रकार निर्दिष्ट कर सकते हैं ताकि पंक्तियाँ JSON डिक्शनरी के रूप में मिलें।
आइए पिछले उदाहरण की तालिका को JSON स्कीमा निर्दिष्ट करके फिर से पार्स करने की कोशिश करें।
JSON स्कीमा देने के लिए, OCR चलाने से पहले हमें टेक्स्ट मोड की बजाय JSON schema चुनना होगा।
इसके बाद हम स्कीमा को या तो कोड के जरिए देते हैं या "Visual Builder" यूज़र इंटरफ़ेस से। जब हम मॉडल को मैनुअल रूप से उपयोग कर रहे हों, तो मैं दूसरा विकल्प सुझाता हूँ क्योंकि यह सरल है।
फ़ील्ड जोड़ते समय, हम निर्दिष्ट करते हैं:
इस मामले में, मैंने दो फ़ील्ड निर्दिष्ट किए—एक मॉडल के नाम के लिए और दूसरा बेंचमार्क परिणाम के लिए:
अब हम "Run" पर क्लिक कर सकते हैं और परिणाम देख सकते हैं। दुर्भाग्यवश, यह उदाहरण काम नहीं किया। परिणामों में केवल वही स्कीमा लौटा जो मैंने दिया था, वास्तविक डेटा नहीं।
मुझे लगा शायद मैंने इसका उपयोग ग़लत किया हो, इसलिए पक्का करने के लिए मैंने विकिपीडिया से एक नमूना तालिका का स्क्रीनशॉट लिया और फिर से प्रयास किया।
मैंने चार कॉलम निर्दिष्ट किए, अंतिम को वैकल्पिक छोड़ते हुए:
इस बार यह अच्छे से काम किया। लगता है कि जब पार्सिंग विफल होती है, तो JSON परिणाम केवल दिया गया स्कीमा ही लौटाता है। इसका मतलब यह भी है कि Mistral OCR 3 मेरे हस्तलिखित टेबल को JSON के रूप में पार्स करने में विफल रहा, जबकि वह इसे टेक्स्ट के रूप में रेंडर कर सका।
Python के साथ Mistral OCR 3 का उपयोग
इस खंड में, हम Python का उपयोग करके Mistral OCR 3 API से इंटरेक्ट करना सीखेंगे। यह हमें कहीं अधिक लचीलापन देता है—उदाहरण के लिए, हम आउटपुट को अन्य AI मॉडलों के साथ मिलाकर निकाले गए डेटा को आगे प्रोसेस कर सकते हैं।
जब हम AI Studio पर फ़ाइल अपलोड करते हैं, तो "Run" बटन के बगल में एक "Code" बटन होता है। इस पर क्लिक करके, हम देख सकते हैं कि API का उपयोग करके यही ऑपरेशन करने के लिए कौन-सा कोड चाहिए होगा।
यहाँ एक उदाहरण है:
हालाँकि, दिया गया Python कोड पूरी तरह सटीक नहीं है। उदाहरण के लिए, यह
encode_fileनामक फ़ंक्शन परिभाषित करता है, लेकिन फिरencodeनामक फ़ंक्शन को कॉल करता है। ये छोटी असंगतियाँ हैं, पर इनसे कोड बॉक्स से बाहर निकालते ही काम नहीं करता।चिंता न करें, हम विस्तार से बताएँगे कि API का उपयोग कैसे करें। API के बारे में अधिक जानने के लिए, यह देखें आधिकारिक प्रलेखन।
API सेटअप
सबसे पहले हमें "API Keys" टैब में एक API कुंजी बनानी है और उस कुंजी को Python स्क्रिप्ट वाले फ़ोल्डर में स्थित
.envनामक नई फ़ाइल में कॉपी करना है।इसके बाद, आवश्यक डिपेंडेंसी इंस्टॉल करें:
किसी छवि पर OCR करना
यहाँ एक Python स्क्रिप्ट है जो एक स्थानीय JPEG छवि लोड करती है, उस पर OCR चलाती है, और परिणाम को एक मार्कडाउन फ़ाइल में सहेजती है:
किसी PDF पर OCR करना
जब इनपुट छवि की बजाय PDF हो, तो केवल
documentफ़ील्ड में दिया गया मान बदलता है। JPEG छवि के लिए, हमने यह उपयोग किया था:PDF के लिए, हम इसके बजाय यह उपयोग करते हैं:
यहाँ एक पूरी फ़ंक्शन है जिसका उपयोग हम PDF प्रोसेस करने के लिए कर सकते हैं:
एक जेनेरिक संस्करण बनाना
PDF और JPEG फ़ाइलों को प्रोसेस करने के लिए दो अलग-अलग फ़ंक्शन होना थोड़ा झंझट भरा है और सर्वोत्तम प्रथा भी नहीं, क्योंकि दोनों में बहुत-सा साझा कोड है।
इसे टालने के लिए, हमने एक नया, बेहतर फ़ंक्शन लिखा जो
mimetypesपैकेज का उपयोग करके दी गई फ़ाइल के प्रकार की पहचान करता है और उसी के अनुसार API अनुरोध बनाता है। हमने कोड को यह सुनिश्चित करने हेतु भी अपडेट किया कि दस्तावेज़ में पहचानी गई छवियाँ सहेजी जाएँ।यह रहा अंतिम संस्करण:
इस संस्करण का उपयोग करने के लिए Mistral OCR 3 द्वारा पहचानी गई छवि सहेजने हेतु
datauriपैकेज चाहिए, जिसे इस प्रकार इंस्टॉल किया जा सकता है:JSON स्कीमा प्रदान करना
हमने ऊपर सीखा कि Mistral OCR 3 हमें डेटा पार्स करने के लिए JSON स्कीमा देने देता है। यह सुविधा API के जरिए उपयोग करने पर भी उपलब्ध है।
ऐसा करने के लिए, हमें अनुरोध करते समय JSON स्कीमा को
document_annotation_formatपैरामीटर में देना होता है। नीचे हस्तलिखित तालिका उदाहरण के अनुरूप दो कॉलमmodelऔरresultके लिए एक JSON स्कीमा का उदाहरण है।संरचना हमेशा समान रहती है। हमें
propertiesफ़ील्ड में प्रत्येक कॉलम के लिए एक प्रविष्टि जोड़नी होती है, जिसमें डेटा प्रकार की जानकारी और मॉडल को डेटा पहचानने में मदद के लिए एक विवरण शामिल हो।फिर हम सभी अनिवार्य फ़ील्ड्स को
requiredफ़ील्ड के तहत सूचीबद्ध करते हैं।इसे कोड के साथ उपयोग करने का सबसे आसान तरीका यह है कि स्कीमा को एक JSON फ़ाइल में रखें और
jsonपैकेज का उपयोग करके उसे लोड करें।Mistral OCR 3 परियोजना विचार
API के साथ Mistral OCR 3 का उपयोग करने के मुख्य लाभों में से एक है इसके ऊपर निर्माण करने की क्षमता। इस खंड में, हम कुछ परियोजना विचार प्रस्तुत करते हैं जिन पर आप आगे निर्माण कर सकते हैं।
खर्च ट्रैकर ऐप
हमने सीखा कि किसी छवि पर OCR कैसे करें। इसका उपयोग करके हम एक ऐसा ऐप बना सकते हैं जो शॉपिंग रसीद की फोटो ले, फिर Mistral OCR 3 का उपयोग करके छवि में मौजूद डेटा प्रोसेस करे और रसीद पर मौजूद वस्तुओं और उनकी कीमतों की सूची वाला JSON डिक्शनरी निकाले।
इसके बाद इन खर्चों को स्वतः श्रेणीबद्ध कर के डेटाबेस में जोड़ दिया जा सकता है, जिससे उपयोगकर्ता अपने खर्च का हिसाब रख सके।
दस्तावेज़ ऑडियो रीडर
हम Mistral OCR 3 को किसी टेक्स्ट-टू-स्पीच AI के साथ जोड़कर दस्तावेज़ ऑडियो रीडर बना सकते हैं। उपयोगकर्ता एक टेक्स्ट PDF चुन सकता है और उसे प्रोसेसिंग के लिए Mistral OCR 3 को भेज सकता है। फिर प्राप्त टेक्स्ट को OpenAI Audio API या Eleven Labs जैसे टेक्स्ट-टू-स्पीच AI मॉडल को भेजा जाए।
क्योंकि Mistral OCR 3 छवियों के साथ भी काम करता है, इसे फ़ोटो के साथ भी उपयोग किया जा सकता है—उपयोगकर्ता दस्तावेज़ की फोटो लेकर चलते-फिरते उसे सुन सकते हैं।
टेक्स्ट-टू-स्पीच के बारे में अधिक जानने के लिए, मैं निम्न में से किसी एक को देखने की सलाह दूँगा:
निष्कर्ष
Mistral OCR 3, वास्तविक दुनिया के दस्तावेज़ों को उपयोगी टेक्स्ट और संरचित डेटा में बदलने के लिए एक सक्षम और व्यावहारिक टूल है—चाहे आप AI Studio में प्रयोग कर रहे हों या Python के जरिए इंटीग्रेट कर रहे हों।
यह स्कैन्ड पेज, फॉर्म्स और टेबल्स पर चमकता है, मार्कडाउन और छवियों के साथ लेआउट को सुरक्षित रखता है, और जब संरचना चाहिए हो तो JSON स्कीमा का समर्थन करता है। हालांकि, जैसा हमने देखा, अव्यवस्थित हस्तलेखन और अस्पष्ट हेडर इसे अब भी उलझा सकते हैं, और असफल स्कीमा पार्स में केवल स्कीमा ही लौट आता है।
API मामूली असंगतियाँ सुलझाने के बाद सीधी-सादी है, और एक जेनेरिक फ़ाइल हैंडलर के साथ, छवियाँ सहेजने की क्षमता जोड़ने से इसे छोटे ऐप्स या पाइपलाइनों में इंटीग्रेट करना आसान हो जाता है। यदि आप बस आज़मा रहे हैं, तो Studio सबसे तेज़ रास्ता है। प्रोडक्शन उपयोग के लिए, लागत मॉडल पर विचार करें, जहाँ संभव हो बैच करें, और एज केस के लिए वैलिडेशन जोड़ें।
इसके बाद, आप पुनरावृत्ति कर सकते हैं; स्कीमा ट्यून करें, आउटपुट को अन्य मॉडलों के साथ संयोजित करें, और रिसीट पार्सर या ऑडियो रीडर जैसी केंद्रित उपयोगिताएँ बनाएँ—जहाँ मॉडल भारी काम करे और आप विश्वसनीयता व UX संभालें।