Spaces:
Running
Running
Update disambiguation/disambiguate.py
Browse files- disambiguation/disambiguate.py +34 -12
disambiguation/disambiguate.py
CHANGED
@@ -18,25 +18,47 @@ import regex_spatial
|
|
18 |
import streamlit as st
|
19 |
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
20 |
|
|
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
|
23 |
|
24 |
|
25 |
def dismabiguate_entities(doc, ent, ase, level_1, level_2, level_3, midmid):
|
26 |
return get_coordinates(ent, ase, level_1, level_2, level_3, midmid)
|
27 |
def get_coordinates(ent, ase, level_1, level_2, level_3, midmid):
|
28 |
-
request_url = 'https://nominatim.openstreetmap.org/search.php?q='+ase+'&polygon_geojson=1&accept-language=en&format=jsonv2'
|
29 |
-
headers = {
|
30 |
-
|
31 |
-
}
|
32 |
-
time.sleep(2)
|
33 |
-
page = requests.get(request_url, headers=headers, verify=False)
|
34 |
-
|
35 |
-
json_content = json.loads(page.content)
|
36 |
-
# json_content
|
37 |
-
|
38 |
-
|
39 |
-
|
|
|
|
|
|
|
|
|
40 |
for p in all_coordinates:
|
41 |
p2 = (p[0], p[1])
|
42 |
angle = geoutil.calculate_bearing(centroid, p2)
|
|
|
18 |
import streamlit as st
|
19 |
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
20 |
|
21 |
+
BACKEND_URL = "https://SpatialWebAgent-dockerb22.hf.space/api/predict/"
|
22 |
|
23 |
+
import requests
|
24 |
+
def call_backend(input_text):
|
25 |
+
try:
|
26 |
+
headers = {
|
27 |
+
"Authorization": f"Bearer {API_TOKEN}"
|
28 |
+
}
|
29 |
+
response = requests.post(
|
30 |
+
BACKEND_URL,
|
31 |
+
headers=headers,
|
32 |
+
json={"data": [input_text]},
|
33 |
+
timeout=10
|
34 |
+
)
|
35 |
+
if response.status_code == 200:
|
36 |
+
return response.json() # ✅ 保留原始 JSON 对象 (dict)
|
37 |
+
return {"error": f"❌ Backend Error (HTTP {response.status_code})"}
|
38 |
+
except Exception as e:
|
39 |
+
return {"error": f"⚠️ Connection Error: {str(e)}"}
|
40 |
|
41 |
|
42 |
|
43 |
def dismabiguate_entities(doc, ent, ase, level_1, level_2, level_3, midmid):
|
44 |
return get_coordinates(ent, ase, level_1, level_2, level_3, midmid)
|
45 |
def get_coordinates(ent, ase, level_1, level_2, level_3, midmid):
|
46 |
+
# request_url = 'https://nominatim.openstreetmap.org/search.php?q='+ase+'&polygon_geojson=1&accept-language=en&format=jsonv2'
|
47 |
+
# headers = {
|
48 |
+
# "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Safari/605.1.15"
|
49 |
+
# }
|
50 |
+
# time.sleep(2)
|
51 |
+
# page = requests.get(request_url, headers=headers, verify=False)
|
52 |
+
|
53 |
+
# json_content = json.loads(page.content)
|
54 |
+
# print(json_content, 'jjjjj')
|
55 |
+
# all_coordinates = json_content[0]['geojson']['coordinates'][0]
|
56 |
+
# centroid = (float(json_content[0]['lon']), float(json_content[0]['lat']))
|
57 |
+
|
58 |
+
res = call_backend(ase)
|
59 |
+
all_coordinates = res[0]
|
60 |
+
centroid = res[1]
|
61 |
+
|
62 |
for p in all_coordinates:
|
63 |
p2 = (p[0], p[1])
|
64 |
angle = geoutil.calculate_bearing(centroid, p2)
|