File size: 1,589 Bytes
4f3c848
f945901
88bccf2
4f3c848
f945901
 
 
9d3c8fc
6c565b9
f945901
eba41fe
88bccf2
 
ad578b5
f945901
 
88bccf2
 
 
 
 
ad578b5
4f3c848
 
88bccf2
 
ad578b5
 
88bccf2
ad578b5
88bccf2
ad578b5
 
88bccf2
ad578b5
 
88bccf2
ad578b5
88bccf2
ad578b5
 
 
 
18c9167
500768c
ad578b5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
import pytesseract

# Load the tokenizer and model
tokenizer = AutoTokenizer.from_pretrained("sambanovasystems/SambaLingo-Arabic-Chat")
model = AutoModelForCausalLM.from_pretrained("sambanovasystems/SambaLingo-Arabic-Chat")

# Use a pipeline as a high-level helper
chat_model = pipeline("text-generation", model=model, tokenizer=tokenizer)

# Chat function
def chat_fn(history, user_input):
    conversation = {"history": history, "user": user_input}
    response = chat_model(user_input, max_length=50, num_return_sequences=1)
    conversation["bot"] = response[0]['generated_text']
    history.append((user_input, conversation["bot"]))
    return history, ""

# OCR function
def ocr(image):
    text = pytesseract.image_to_string(image)
    return text

# Gradio interface
with gr.Blocks() as demo:
    gr.Markdown("### الصور والدردشة")

    # Image OCR section
    with gr.Tab("استخراج النصوص من الصور"):
        with gr.Row():
            image_input = gr.Image(type="pil")
            ocr_output = gr.Textbox()
        submit_button = gr.Button("Submit")
        submit_button.click(ocr, inputs=image_input, outputs=ocr_output)

    # Chat section
    with gr.Tab("المحادثة"):
        chatbot = gr.Chatbot()
        msg = gr.Textbox(label="اكتب رسالتك")
        clear = gr.Button("Clear")
        msg.submit(chat_fn, [chatbot, msg], [chatbot, msg])
        clear.click(lambda: None, None, chatbot)

# Launch the Gradio interface
demo.launch()