ArseniyPerchik commited on
Commit
d10b4dc
·
1 Parent(s): 958e867
.gitignore ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ __pycache__
3
+ venv
4
+ env
5
+ .env
6
+ .venv
7
+ .pytest_cache
8
+ .coverage
9
+ .idea
10
+ .vscode
11
+ lightning_logs
12
+ .ipynb_checkpoints
13
+ .ckpt
14
+ example.ckpt
15
+ .neptune
16
+ logs_for_plots
17
+ logs_for_heuristics
18
+ logs_for_graphs
19
+ logs_for_freedom_maps
20
+ logs_for_experiments
21
+ heuristic_tables
22
+ stats
23
+ videos
24
+ algs_RL/stasts
25
+ .DS_Store
26
+ saved_replays
27
+ my_folder
28
+ results
29
+ test-trainer
30
+ .gradio
31
+ secrets.txt
app.py CHANGED
@@ -1,8 +1,155 @@
1
  import gradio as gr
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
- def greet(name):
4
- return "Hello " + name + "!!"
5
 
6
- demo = gr.Interface(fn=greet, inputs="text", outputs="text")
7
  demo.launch()
 
 
 
8
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
+ import googlemaps
3
+ from dotenv import load_dotenv
4
+ import requests
5
+ import pyperclip
6
+ import os
7
+ from PIL import Image
8
+ from io import BytesIO
9
+ from transformers import pipeline
10
+
11
+ from messages import *
12
+
13
+ # ---------------------------------------------------------------------------- #
14
+ # ---------------------------------------------------------------------------- #
15
+ # ---------------------------------------------------------------------------- #
16
+ # PREPARATIONS
17
+ # ---------------------------------------------------------------------------- #
18
+ # ---------------------------------------------------------------------------- #
19
+ # ---------------------------------------------------------------------------- #
20
+
21
+ # prepare Google Maps API
22
+ load_dotenv()
23
+ API_KEY = os.getenv("GOOGLE_MAPS_API_KEY")
24
+ gmaps = googlemaps.Client(key=API_KEY)
25
+
26
+ # prepare the HF model
27
+ save_path = "./saved_model"
28
+ oracle = pipeline('question-answering', tokenizer=save_path, model=save_path)
29
+
30
+ # ---------------------------------------------------------------------------- #
31
+ # ---------------------------------------------------------------------------- #
32
+ # ---------------------------------------------------------------------------- #
33
+ # FUNCTIONS
34
+ # ---------------------------------------------------------------------------- #
35
+ # ---------------------------------------------------------------------------- #
36
+ # ---------------------------------------------------------------------------- #
37
+ def extract_func(text, question_input, prev_addresses):
38
+ oracle_output = oracle(question=question_input, context=text)
39
+ answer = oracle_output['answer']
40
+ prev_addresses += f'{answer}\n'
41
+ return prev_addresses
42
+
43
+ def get_address(address):
44
+
45
+ geocode_result = gmaps.geocode(address)
46
+ formatted_address = geocode_result[0].get('formatted_address', address)
47
+ # encoded_address = urllib.parse.quote(formatted_address)
48
+ return formatted_address
49
+
50
+ def undo_func(addresses):
51
+ new_addresses = [line for line in addresses.splitlines()]
52
+ return_value = '\n'.join(new_addresses[0:-1])
53
+ return_value += '\n'
54
+ return return_value
55
+
56
+ def get_static_map(addresses, zoom=13):
57
+ adr_list = []
58
+ adr_str = ''
59
+ line_id = 1
60
+ for line in addresses.splitlines():
61
+ if len(line) < 2:
62
+ continue
63
+ address = get_address(line)
64
+ adr_list.append(address)
65
+ adr_str += f'&markers=color:red|label:{line_id}|{address}'
66
+ line_id += 1
67
+
68
+ url = (
69
+ "https://maps.googleapis.com/maps/api/staticmap"
70
+ "?size=900x900"
71
+ f"&zoom={zoom}"
72
+ f"{adr_str}"
73
+ f"&key={API_KEY}"
74
+ )
75
+ response = requests.get(url)
76
+ image = Image.open(BytesIO(response.content))
77
+ return image
78
+
79
+ # ---------------------------------------------------------------------------- #
80
+ # ---------------------------------------------------------------------------- #
81
+ # ---------------------------------------------------------------------------- #
82
+ # MAIN
83
+ # ---------------------------------------------------------------------------- #
84
+ # ---------------------------------------------------------------------------- #
85
+ # ---------------------------------------------------------------------------- #
86
+ with gr.Blocks() as demo:
87
+ gr.Markdown("# 🏃‍♂️‍➡️📦📦📦🏆 Locate All Necessary Addresses on the Google Map By Couple Clicks")
88
+ gr.Markdown("")
89
+ with gr.Row():
90
+
91
+ with gr.Column():
92
+ # question = gr.Textbox(label='Question', value='מה הכתובת של המשלוח שיש בהודעה?')
93
+ question = gr.Radio([
94
+ "מה הכתובת של המשלוח שיש בהודעה?",
95
+ "מה הכתובת?",
96
+ "איזו כתובת בישראל יש בהודעה?"
97
+ ], value="מה הכתובת של המשלוח שיש בהודעה?", label="Questions", info="Try different questions...")
98
+ message_inp = gr.Textbox(label='Input Message', placeholder='Enter the text message...', lines=5)
99
+ with gr.Row():
100
+ clear_btn_1 = gr.Button('Clear')
101
+ new_paste_btn = gr.Button('Paste')
102
+ extreact_btn = gr.Button('Extract', variant='primary')
103
+ addresses_inp = gr.Textbox(placeholder='Enter the address...', label='Addresses:',
104
+ lines=5, max_lines=None)
105
+ undo_btn = gr.Button('Clear last row...')
106
+ locate_btn = gr.Button('Locate', variant='primary')
107
+ clear_btn_2 = gr.Button('Clear')
108
+ gr.Markdown('### Examples')
109
+ with gr.Row():
110
+ example_1_btn = gr.Button('1')
111
+ example_2_btn = gr.Button('2')
112
+ example_3_btn = gr.Button('3')
113
+ example_4_btn = gr.Button('4')
114
+
115
+ with gr.Column():
116
+ zoom = gr.Slider(1, 20, 14, step=1)
117
+ with gr.Row():
118
+ b_further = gr.Button('Zoom Out')
119
+ b_closer = gr.Button('Zoom In')
120
+ map_out = gr.Image()
121
+
122
+ # events
123
+ extreact_btn.click(fn=extract_func, inputs=[message_inp, question, addresses_inp], outputs=addresses_inp)
124
+ # extreact_btn.click(fn=lambda x: '', inputs=message_inp, outputs=message_inp)
125
+ clear_btn_1.click(fn=lambda x: '', inputs=message_inp, outputs=message_inp)
126
+ new_paste_btn.click(fn=lambda _: pyperclip.paste(), inputs=None, outputs=message_inp)
127
+ undo_btn.click(fn=undo_func, inputs=addresses_inp, outputs=addresses_inp)
128
+ locate_btn.click(fn=get_static_map, inputs=[addresses_inp, zoom], outputs=map_out)
129
+ locate_btn.click(fn=lambda x: '', inputs=message_inp, outputs=message_inp)
130
+ clear_btn_2.click(fn=lambda x: '', inputs=addresses_inp, outputs=addresses_inp)
131
+
132
+ example_1_btn.click(fn=lambda x: examples_dict[x], inputs=example_1_btn, outputs=message_inp)
133
+ example_2_btn.click(fn=lambda x: examples_dict[x], inputs=example_2_btn, outputs=message_inp)
134
+ example_3_btn.click(fn=lambda x: examples_dict[x], inputs=example_3_btn, outputs=message_inp)
135
+ example_4_btn.click(fn=lambda x: examples_dict[x], inputs=example_4_btn, outputs=message_inp)
136
+
137
+ zoom.change(fn=get_static_map, inputs=[addresses_inp, zoom], outputs=map_out)
138
+ b_further.click(fn=lambda x: max(x-1, 1), inputs=zoom, outputs=zoom)
139
+ b_closer.click(fn=lambda x: min(x+1, 20), inputs=zoom, outputs=zoom)
140
+
141
 
 
 
142
 
 
143
  demo.launch()
144
+ # ---------------------------------------------------------------------------- #
145
+ # ---------------------------------------------------------------------------- #
146
+ # ---------------------------------------------------------------------------- #
147
 
148
+ # url = (
149
+ # "https://maps.googleapis.com/maps/api/staticmap"
150
+ # "?size=900x900"
151
+ # f"&zoom={zoom}"
152
+ # "&markers=color:blue|label:A|Williamsburg,Brooklyn,NY"
153
+ # "&markers=color:red|label:B|Prospect+Park,Brooklyn,NY"
154
+ # f"&key={API_KEY}"
155
+ # )
draft_2.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import googlemaps
2
+ from datetime import datetime
3
+ import os
4
+ from dotenv import load_dotenv
5
+ import googlemaps
6
+
7
+
8
+ load_dotenv()
9
+ API_KEY = os.getenv("GOOGLE_MAPS_API_KEY")
10
+ gmaps = googlemaps.Client(key=API_KEY)
11
+
12
+ # Geocoding an address
13
+ geocode_result = gmaps.geocode('1600 Amphitheatre Parkway, Mountain View, CA')
14
+
15
+ # Look up an address with reverse geocoding
16
+ reverse_geocode_result = gmaps.reverse_geocode((40.714224, -73.961452))
17
+
18
+ # Request directions via public transit
19
+ now = datetime.now()
20
+ directions_result = gmaps.directions("Sydney Town Hall",
21
+ "Parramatta, NSW",
22
+ mode="transit",
23
+ departure_time=now)
24
+
25
+ # Validate an address with address validation
26
+ addressvalidation_result = gmaps.addressvalidation(['1600 Amphitheatre Pk'],
27
+ regionCode='US',
28
+ locality='Mountain View',
29
+ enableUspsCass=True)
30
+
31
+ # Get an Address Descriptor of a location in the reverse geocoding response
32
+ address_descriptor_result = gmaps.reverse_geocode((40.714224, -73.961452))
messages.py ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ examples_dict = {
3
+
4
+
5
+ '1': """שלום, Arseniy Pertzovky
6
+ יש לך חבילה הגיעה ל-Parcel Home, נא לאסוף את החבילה תוך 2 ימי עסקים
7
+ קוד איסוף:23-4-5008-18
8
+ מספר ארונית:23
9
+ מספר מדף:4
10
+ מספר חבילה:5008
11
+ קוד אימות:18
12
+ כתובת: קומה 3 מעל מתחם האוכל בקניון ביאליק. עלו לקומה השניה במעלית, עברו אל מתחם האוכל והמשיכו קומה נוספת למעלה.
13
+ שעות פתיחה:ראשון-חמישי 12:00-20:00 שישי 08:00-14:00 המקום סגור במהלך החגים
14
+ משלוח מספר:PH8000478075
15
+ תודה על התמיכה,Parcel Home
16
+ אין להשיב להודעה זו.
17
+ """,
18
+
19
+
20
+ '2': """שלום Arseniy Pertzovky ,
21
+ משלוח RS1208650336Y
22
+ ר 1350
23
+ שנשלח מAliexpress ממתין בקניון ביאליק(בית עסק) רח` ביאליק 76 רמת גן.
24
+
25
+ למידע נוסף לחץ: https://postil.co.il/JbhD0Hl_lVN25
26
+ לתשומת לבך , ליחידות הדואר נדרש לזמן תור מראש
27
+ משלוח למחזיקי תעודת עיוור -
28
+ https://postil.co.il/EsBTzc3
29
+ תודה, דואר ישראל""",
30
+
31
+
32
+ '3': """שלום Arseniy Pertzovsky ., משלוח * TMU003755456 *מחברת TEMU הגיע לחנות וממתין לכם בנקודת האיסוף רמת גן -עלמה פון בכתובת הרצל 55 רמת גן . הקוד לאיסוף המשלוח 0752 כל הפרטים על המשלוח ואישור קבלה בלינק המצורף: http://n.buzzr.biz/yWm88H8. אנו ממליצים לאסוף תוך 2 ימי עסקים. שירות לקוחות בקישור: https://wa.me/972559457347?text=תודה%20שפנית%20לחברת%20המשלוחים%20באזזר-זיגזג,%20לפרטים%20עבור%20משלוח%20%20%20|TMU003755456|%20%20%20לחצו%20על%20%22שליחה%22 תודה ZIG-ZAG באזזר""",
33
+
34
+
35
+ '4': """לקוח יקר,
36
+ שליחות מטעם חברת GAASH TEMU נמסרה בכתובת DEREKH ABBA HILLEL 109 רמת גן , שם מקבל המשלוח היד,
37
+
38
+ נודה לכם מאוד על מילוי משוב קצר עבור השליחות שקיבלתם:
39
+ לכניסה https://lp6.me/yxXwH?Customer=28236&Phone=0545833599&Num=10020326813&CID=744&Microsoft=TMU003635514
40
+
41
+ בברכה זיגזג שליחויות""",
42
+ }
requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ gradio
2
+ googlemaps
3
+ python-dotenv
4
+ requests
5
+ pyperclip
6
+ pillow
7
+ transformers
saved_model/config.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bf883e72023b9cb16eb3946627ddb1bb9c063d373df77a91dcd59cad378ce0ce
3
+ size 655
saved_model/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b50927be852b23edb98fcc1cd926f677d1723bf3493d010a3585afde76f03394
3
+ size 735048520
saved_model/special_tokens_map.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5d5b662e421ea9fac075174bb0688ee0d9431699900b90662acd44b2a350503a
3
+ size 695
saved_model/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d539e45b7481d861ced550ed749cadd093b62cbb6da92a4097c94b39e2418a51
3
+ size 3577698
saved_model/tokenizer_config.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bb08d9bc25947b3a9ccc3604b34649ba37613de0b1054a16e886d35081695378
3
+ size 1571
saved_model/vocab.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0fb90bfa35244d26f0065d1fcd0b5becc3da3d44d616a7e2aacaf6320b9fa2d0
3
+ size 1500244