Spaces:
Sleeping
Sleeping
| 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="RJIqm5OvwoMvLeWrFdv5JBx26tLsSSK") | |
| 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"), | |
| outputs="text" | |
| ).launch(share=True, show_error=True) | |