Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -6,7 +6,6 @@ import yaml
|
|
| 6 |
from tools.final_answer import FinalAnswerTool
|
| 7 |
|
| 8 |
from Gradio_UI import GradioUI
|
| 9 |
-
|
| 10 |
from typing import Optional, Dict, Any, List
|
| 11 |
import requests
|
| 12 |
from pydantic import BaseModel, Field, validator
|
|
@@ -21,7 +20,7 @@ class PDOKLocationSearchInput(BaseModel):
|
|
| 21 |
@validator("postal_code")
|
| 22 |
def validate_postal_code(cls, v):
|
| 23 |
if v is not None and (len(v) != 7 or not v[0:4].isdigit() or v[4] != " " or not v[5:7].isalpha()):
|
| 24 |
-
raise ValueError("Invalid postal code format.
|
| 25 |
return v
|
| 26 |
|
| 27 |
def construct_query(self) -> str:
|
|
@@ -58,8 +57,9 @@ def pdok_location_info(postal_code: Optional[str] = None, house_number: Optional
|
|
| 58 |
city: City name.
|
| 59 |
|
| 60 |
Returns:
|
| 61 |
-
A
|
| 62 |
"""
|
|
|
|
| 63 |
base_url = "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free"
|
| 64 |
headers = {"accept": "application/json"}
|
| 65 |
|
|
@@ -67,7 +67,7 @@ def pdok_location_info(postal_code: Optional[str] = None, house_number: Optional
|
|
| 67 |
query_string = input_data.construct_query()
|
| 68 |
|
| 69 |
if not query_string:
|
| 70 |
-
return
|
| 71 |
|
| 72 |
params = {
|
| 73 |
"q": query_string,
|
|
@@ -97,16 +97,22 @@ def pdok_location_info(postal_code: Optional[str] = None, house_number: Optional
|
|
| 97 |
|
| 98 |
first_result = docs[0]
|
| 99 |
location_info = PDOKLocationInfo(**first_result)
|
| 100 |
-
|
| 101 |
# Format the output in a more user-friendly way
|
| 102 |
print(f"Information about: {location_info.weergavenaam}")
|
| 103 |
print("-" * 30)
|
| 104 |
for field, value in location_info.dict().items():
|
| 105 |
print(f" {field.capitalize()}: {value}")
|
| 106 |
-
|
| 107 |
-
# Add more features as needed, such as geocoding, reverse geocoding, and caching
|
| 108 |
return location_info
|
| 109 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 110 |
@tool
|
| 111 |
def my_custom_tool(arg1:str, arg2:int)-> str: #it's import to specify the return type
|
| 112 |
#Keep this format for the description / args / args description but feel free to modify the tool
|
|
|
|
| 6 |
from tools.final_answer import FinalAnswerTool
|
| 7 |
|
| 8 |
from Gradio_UI import GradioUI
|
|
|
|
| 9 |
from typing import Optional, Dict, Any, List
|
| 10 |
import requests
|
| 11 |
from pydantic import BaseModel, Field, validator
|
|
|
|
| 20 |
@validator("postal_code")
|
| 21 |
def validate_postal_code(cls, v):
|
| 22 |
if v is not None and (len(v) != 7 or not v[0:4].isdigit() or v[4] != " " or not v[5:7].isalpha()):
|
| 23 |
+
raise ValueError("Invalid postal code format. It must be '1234 AA'.")
|
| 24 |
return v
|
| 25 |
|
| 26 |
def construct_query(self) -> str:
|
|
|
|
| 57 |
city: City name.
|
| 58 |
|
| 59 |
Returns:
|
| 60 |
+
A PDOKLocationInfo object containing the location information, or None if no results are found.
|
| 61 |
"""
|
| 62 |
+
|
| 63 |
base_url = "https://api.pdok.nl/bzk/locatieserver/search/v3_1/free"
|
| 64 |
headers = {"accept": "application/json"}
|
| 65 |
|
|
|
|
| 67 |
query_string = input_data.construct_query()
|
| 68 |
|
| 69 |
if not query_string:
|
| 70 |
+
return None
|
| 71 |
|
| 72 |
params = {
|
| 73 |
"q": query_string,
|
|
|
|
| 97 |
|
| 98 |
first_result = docs[0]
|
| 99 |
location_info = PDOKLocationInfo(**first_result)
|
| 100 |
+
|
| 101 |
# Format the output in a more user-friendly way
|
| 102 |
print(f"Information about: {location_info.weergavenaam}")
|
| 103 |
print("-" * 30)
|
| 104 |
for field, value in location_info.dict().items():
|
| 105 |
print(f" {field.capitalize()}: {value}")
|
| 106 |
+
|
|
|
|
| 107 |
return location_info
|
| 108 |
|
| 109 |
+
except requests.exceptions.RequestException as e:
|
| 110 |
+
print(f"Error during API request: {e}")
|
| 111 |
+
return None
|
| 112 |
+
except (ValueError, KeyError) as e:
|
| 113 |
+
print(f"Error processing API response: {e}")
|
| 114 |
+
return None
|
| 115 |
+
|
| 116 |
@tool
|
| 117 |
def my_custom_tool(arg1:str, arg2:int)-> str: #it's import to specify the return type
|
| 118 |
#Keep this format for the description / args / args description but feel free to modify the tool
|