|
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) |
|
|