| import gradio as gr | |
| from services import ocr_with_paddle, solve_with_transformers | |
| def solve_math(img): | |
| """ | |
| Perform optical character recognition on the input image and then solve the extracted text using 🤗transformers. | |
| :param img: The input image for optical character recognition. | |
| :return: The solved text answer. | |
| """ | |
| try: | |
| text_output = ocr_with_paddle(img['composite']) | |
| text_answer = solve_with_transformers(text_output) | |
| return text_answer | |
| except Exception: | |
| raise gr.Error("Please upload an image!!!!") | |
| """ | |
| Create user interface | |
| """ | |
| def main(): | |
| with gr.Blocks() as app: | |
| gr.Markdown("### Калькулятор комплексных чисел") | |
| with gr.Row(): | |
| with gr.Column(): | |
| image_input = gr.ImageEditor(value='canvas.png', image_mode='L', interactive=True, type='filepath') | |
| process_btn = gr.Button('Решить') | |
| with gr.Column(): | |
| output_text = gr.Textbox(label="Решение") | |
| process_btn.click(fn=solve_math, inputs=image_input, outputs=output_text) | |
| app.launch() | |
| if __name__ == "__main__": | |
| main() | |