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="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) | |