import gradio as gr import base64 import mimetypes import json from mistralai import Mistral, ImageURLChunk from PIL import Image import io client = Mistral(api_key="RJIqm5OvwoMvLeWrFdv5JBx26tLsSSK7") def process_image(image): try: # نحول الصورة من PIL إلى base64 buffered = io.BytesIO() image.save(buffered, format="JPEG") encoded = base64.b64encode(buffered.getvalue()).decode() mime_type = "image/jpeg" data_url = f"data:{mime_type};base64,{encoded}" response = client.ocr.process( document=ImageURLChunk(image_url=data_url), model="mistral-ocr-latest" ) response_dict = json.loads(response.model_dump_json()) json_string = json.dumps(response_dict, indent=4, ensure_ascii=False) return json_string except Exception as e: return {"error": str(e)} gr.Interface( fn=process_image, inputs=gr.Image(type="pil"), # بدل filepath بـ pil outputs="text" ).launch(share=True, show_error=True)