demo / tabs /ocr.py
lvyb
修改样式
8a0dac3
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)