Download app.py from samvb1002/Basata: direct link, hf CLI and curl.
- Browser
- Download file 1.67 kB
-
https://huggingface.co/spaces/samvb1002/Basata/resolve/main/app.py
- Command line
-
hf download hf://spaces/samvb1002/Basata/app.py
-
curl -L -o app.py https://huggingface.co/spaces/samvb1002/Basata/resolve/main/app.py
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() |