File size: 1,752 Bytes
c3a1883
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8a0dac3
c3a1883
8a0dac3
 
 
 
 
c3a1883
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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)