Basata / app.py
samvb1002's picture
Update app.py
eabd726 verified
raw
history blame
1.67 kB
import gradio as gr
from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
import pytesseract
# Use a pipeline as a high-level helper
from transformers import pipeline
# Initialize tokenizer and model
tokenizer = AutoTokenizer.from_pretrained("sambanovasystems/SambaLingo-Arabic-Chat")
model = AutoModelForCausalLM.from_pretrained("sambanovasystems/SambaLingo-Arabic-Chat")
# Chat function
def chat_fn(history, user_input):
conversation = {"history": history, "user": user_input}
# Generate a response using the model
input_ids = tokenizer.encode(user_input, return_tensors="pt")
response = model.generate(input_ids=input_ids, max_length=50)
conversation["bot"] = tokenizer.decode(response[0], skip_special_tokens=True)
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()