| import gradio as gr | |
| import requests | |
| request_method_map = { | |
| '同步': 'sync', | |
| '异步': 'async', | |
| } | |
| tasks_map = { | |
| '关键词提取': 'keywords', | |
| 'ocr': 'ocr', | |
| '表格': 'ocr_table', | |
| } | |
| subtask_map = { | |
| '身份证': 'id_card', | |
| '信息表': 'inform_table', | |
| '营业执照': 'bus_lic', | |
| '银行卡信息': 'bank_info', | |
| '用户信息采集表': 'user_info_collect', | |
| } | |
| def ocr_task(request_method, tasks, subtask, file, url): | |
| """ | |
| :param request_method: | |
| :param tasks: | |
| :param subtask: | |
| :param file: | |
| :param url: | |
| :return: | |
| """ | |
| res = requests.post(url, data={ | |
| 'file': file, | |
| 'request_method': request_method_map.get(request_method), | |
| 'tasks': tasks_map.get(tasks), | |
| 'subtask': subtask_map.get(subtask), | |
| 'angle': 0, | |
| }) | |
| return str(res.json()) | |
| def ocr_tab(): | |
| with gr.Tab("ocr 识别"): | |
| gr.Markdown('ocr 工具') | |
| with gr.Accordion("说明", open=False): | |
| gr.Markdown(""" | |
| # Hello World! | |
| 嘤嘤嘤 | |
| 嘻嘻嘻 | |
| """) | |
| with gr.Column(): | |
| url_input = gr.Textbox(label='接口链接') | |
| with gr.Row(): | |
| request_method = gr.Dropdown(choices=list(request_method_map.keys()), label='运行方式') | |
| tasks = gr.Dropdown(choices=list(tasks_map.keys()), label='模式') | |
| subtask = gr.Dropdown(choices=list(subtask_map.keys()), label='文件类型') | |
| file = gr.File(type='file') | |
| text_output = gr.Textbox(label="结果", lines=10) | |
| text_button = gr.Button('识别') | |
| text_button.click(ocr_task, inputs=[request_method, tasks, subtask, file, url_input], outputs=text_output) | |