Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -38,26 +38,26 @@ def get_json(mahalle, il, sokak, apartman):
|
|
| 38 |
return dump
|
| 39 |
|
| 40 |
|
| 41 |
-
def
|
| 42 |
-
eval_result = str(ast.literal_eval(input)["
|
| 43 |
|
| 44 |
return eval_result
|
| 45 |
|
| 46 |
|
| 47 |
-
def
|
| 48 |
-
eval_result = str(ast.literal_eval(input)["
|
| 49 |
|
| 50 |
return eval_result
|
| 51 |
|
| 52 |
|
| 53 |
-
def
|
| 54 |
-
eval_result = str(ast.literal_eval(input)["
|
| 55 |
|
| 56 |
return eval_result
|
| 57 |
|
| 58 |
|
| 59 |
-
def
|
| 60 |
-
eval_result = str(ast.literal_eval(input)["
|
| 61 |
|
| 62 |
return eval_result
|
| 63 |
|
|
@@ -74,46 +74,35 @@ def text_dict_tel(input):
|
|
| 74 |
return eval_result
|
| 75 |
|
| 76 |
|
| 77 |
-
def
|
| 78 |
-
eval_result = str(ast.literal_eval(input)["
|
| 79 |
return eval_result
|
| 80 |
|
| 81 |
|
| 82 |
-
def
|
| 83 |
-
eval_result = str(ast.literal_eval(input)["
|
| 84 |
|
| 85 |
return eval_result
|
| 86 |
|
| 87 |
-
def
|
| 88 |
-
eval_result = str(ast.literal_eval(input)["
|
| 89 |
-
|
| 90 |
-
return eval_result
|
| 91 |
-
|
| 92 |
-
def text_dict_diskapi(input):
|
| 93 |
-
eval_result = str(ast.literal_eval(input)["diskapi_no"])
|
| 94 |
|
| 95 |
return eval_result
|
| 96 |
|
| 97 |
|
|
|
|
| 98 |
def openai_response(ocr_input):
|
| 99 |
-
prompt = f"""Tabular Data Extraction
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
Output: [{{'Tabular': '{{'il': 'İstanbul', 'ilçe': 'Beşiktaş', 'mahalle': 'Yıldız Mahallesi', 'sokak': 'Cumhuriyet Caddesi', 'apartman': 'tuna çamlık evler sitesi', 'diskapi_no': 35, 'ickapi_no': 8, 'tel': 5551231256, 'isim_soyisim': 'Ahmet Yılmaz', 'adres': 'İstanbul, Beşiktaş, Yıldız Mahallesi, Cumhuriyet Caddesi No: 35'}}' }}]
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
Input: {ocr_input}
|
| 114 |
-
Output:
|
| 115 |
-
|
| 116 |
-
"""
|
| 117 |
|
| 118 |
response = openai.Completion.create(
|
| 119 |
model="text-davinci-003",
|
|
@@ -127,7 +116,21 @@ Output:
|
|
| 127 |
)
|
| 128 |
resp = response["choices"][0]["text"]
|
| 129 |
resp = eval(resp.replace("'{", "{").replace("}'", "}"))
|
| 130 |
-
resp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 131 |
return resp
|
| 132 |
|
| 133 |
|
|
@@ -144,42 +147,34 @@ with gr.Blocks() as demo:
|
|
| 144 |
submit_button = gr.Button(label="Yükle")
|
| 145 |
with gr.Column():
|
| 146 |
with gr.Row():
|
| 147 |
-
|
| 148 |
-
|
| 149 |
with gr.Row():
|
| 150 |
-
|
| 151 |
-
|
| 152 |
with gr.Row():
|
| 153 |
tel = gr.Textbox(label="Telefon")
|
| 154 |
with gr.Row():
|
| 155 |
-
|
| 156 |
-
|
| 157 |
with gr.Row():
|
| 158 |
-
|
| 159 |
-
|
| 160 |
|
| 161 |
submit_button.click(get_parsed_address, inputs = img_area, outputs = open_api_text, api_name="upload_image")
|
| 162 |
|
| 163 |
ocr_result.change(openai_response, ocr_result, open_api_text, api_name="upload-text")
|
| 164 |
|
| 165 |
-
open_api_text.change(
|
| 166 |
-
open_api_text.change(
|
| 167 |
-
open_api_text.change(
|
| 168 |
-
open_api_text.change(
|
| 169 |
-
open_api_text.change(
|
| 170 |
open_api_text.change(text_dict_tel, [open_api_text], tel)
|
| 171 |
-
open_api_text.change(
|
| 172 |
-
open_api_text.change(
|
| 173 |
-
open_api_text.change(text_dict_ickapi, [open_api_text], ickapi_no)
|
| 174 |
|
| 175 |
|
| 176 |
-
# json_out = gr.Textbox()
|
| 177 |
-
# csv_out = gr.Textbox()
|
| 178 |
-
|
| 179 |
-
# adres_submit = gr.Button()
|
| 180 |
-
# adres_submit.click(get_json, [mahalle, il, sokak, apartman], json_out)
|
| 181 |
-
# adres_submit.click(save_csv, [mahalle, il, sokak, apartman], csv_out)
|
| 182 |
-
|
| 183 |
|
| 184 |
if __name__ == "__main__":
|
| 185 |
-
demo.launch()
|
|
|
|
| 38 |
return dump
|
| 39 |
|
| 40 |
|
| 41 |
+
def text_dict_city(input):
|
| 42 |
+
eval_result = str(ast.literal_eval(input)["city"])
|
| 43 |
|
| 44 |
return eval_result
|
| 45 |
|
| 46 |
|
| 47 |
+
def text_dict_neighbourhood(input):
|
| 48 |
+
eval_result = str(ast.literal_eval(input)["neighbourhood"])
|
| 49 |
|
| 50 |
return eval_result
|
| 51 |
|
| 52 |
|
| 53 |
+
def text_dict_distinct(input):
|
| 54 |
+
eval_result = str(ast.literal_eval(input)["distinct"])
|
| 55 |
|
| 56 |
return eval_result
|
| 57 |
|
| 58 |
|
| 59 |
+
def text_dict_street(input):
|
| 60 |
+
eval_result = str(ast.literal_eval(input)["street"])
|
| 61 |
|
| 62 |
return eval_result
|
| 63 |
|
|
|
|
| 74 |
return eval_result
|
| 75 |
|
| 76 |
|
| 77 |
+
def text_dict_name(input):
|
| 78 |
+
eval_result = str(ast.literal_eval(input)["name_surname"])
|
| 79 |
return eval_result
|
| 80 |
|
| 81 |
|
| 82 |
+
def text_dict_address(input):
|
| 83 |
+
eval_result = str(ast.literal_eval(input)["address"])
|
| 84 |
|
| 85 |
return eval_result
|
| 86 |
|
| 87 |
+
def text_dict_no(input):
|
| 88 |
+
eval_result = str(ast.literal_eval(input)["no"])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 89 |
|
| 90 |
return eval_result
|
| 91 |
|
| 92 |
|
| 93 |
+
|
| 94 |
def openai_response(ocr_input):
|
| 95 |
+
prompt = f"""Tabular Data Extraction You are a highly intelligent and accurate tabular data extractor from
|
| 96 |
+
plain text input and especially from emergency text that carries address information, your inputs can be text
|
| 97 |
+
of arbitrary size, but the output should be in [{{'tabular': {{'entity_type': 'entity'}} }}] JSON format Force it
|
| 98 |
+
to only extract keys that are shared as an example in the examples section, if a key value is not found in the
|
| 99 |
+
text input, then it should be ignored. Have only city, distinct, neighbourhood,
|
| 100 |
+
street, no, tel, name_surname, address Examples: Input: Deprem sırasında evimizde yer alan adresimiz: İstanbul,
|
| 101 |
+
Beşiktaş, Yıldız Mahallesi, Cumhuriyet Caddesi No: 35, cep telefonu numaram 5551231256, adim Ahmet Yilmaz
|
| 102 |
+
Output: {{'city': 'İstanbul', 'distinct': 'Beşiktaş', 'neighbourhood': 'Yıldız Mahallesi', 'street': 'Cumhuriyet Caddesi', 'no': '35', 'tel': '5551231256', 'name_surname': 'Ahmet Yılmaz', 'address': 'İstanbul, Beşiktaş, Yıldız Mahallesi, Cumhuriyet Caddesi No: 35'}}
|
| 103 |
+
Input: {ocr_input}
|
| 104 |
+
Output:
|
| 105 |
+
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 106 |
|
| 107 |
response = openai.Completion.create(
|
| 108 |
model="text-davinci-003",
|
|
|
|
| 116 |
)
|
| 117 |
resp = response["choices"][0]["text"]
|
| 118 |
resp = eval(resp.replace("'{", "{").replace("}'", "}"))
|
| 119 |
+
resp["input"] = ocr_input
|
| 120 |
+
dict_keys = [
|
| 121 |
+
'city',
|
| 122 |
+
'distinct',
|
| 123 |
+
'neighbourhood',
|
| 124 |
+
'street',
|
| 125 |
+
'no',
|
| 126 |
+
'tel',
|
| 127 |
+
'name_surname',
|
| 128 |
+
'address',
|
| 129 |
+
'input',
|
| 130 |
+
]
|
| 131 |
+
for key in dict_keys:
|
| 132 |
+
if key not in resp.keys():
|
| 133 |
+
resp[key] = ''
|
| 134 |
return resp
|
| 135 |
|
| 136 |
|
|
|
|
| 147 |
submit_button = gr.Button(label="Yükle")
|
| 148 |
with gr.Column():
|
| 149 |
with gr.Row():
|
| 150 |
+
city = gr.Textbox(label="İl")
|
| 151 |
+
distinct = gr.Textbox(label="İlçe")
|
| 152 |
with gr.Row():
|
| 153 |
+
neighbourhood = gr.Textbox(label="Mahalle")
|
| 154 |
+
street = gr.Textbox(label="Sokak/Cadde/Bulvar")
|
| 155 |
with gr.Row():
|
| 156 |
tel = gr.Textbox(label="Telefon")
|
| 157 |
with gr.Row():
|
| 158 |
+
name_surname = gr.Textbox(label="İsim Soyisim")
|
| 159 |
+
address = gr.Textbox(label="Adres")
|
| 160 |
with gr.Row():
|
| 161 |
+
no = gr.Textbox(label="Kapı No")
|
| 162 |
+
|
| 163 |
|
| 164 |
submit_button.click(get_parsed_address, inputs = img_area, outputs = open_api_text, api_name="upload_image")
|
| 165 |
|
| 166 |
ocr_result.change(openai_response, ocr_result, open_api_text, api_name="upload-text")
|
| 167 |
|
| 168 |
+
open_api_text.change(text_dict_city, [open_api_text], city)
|
| 169 |
+
open_api_text.change(text_dict_distinct, [open_api_text], distinct)
|
| 170 |
+
open_api_text.change(text_dict_neighbourhood, [open_api_text], neighbourhood)
|
| 171 |
+
open_api_text.change(text_dict_street, [open_api_text], street)
|
| 172 |
+
open_api_text.change(text_dict_address, [open_api_text], address)
|
| 173 |
open_api_text.change(text_dict_tel, [open_api_text], tel)
|
| 174 |
+
open_api_text.change(text_dict_name, [open_api_text], name_surname)
|
| 175 |
+
open_api_text.change(text_dict_no, [open_api_text], no)
|
|
|
|
| 176 |
|
| 177 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 178 |
|
| 179 |
if __name__ == "__main__":
|
| 180 |
+
demo.launch()
|