mpnikhil commited on
Commit
4e3234a
·
verified ·
1 Parent(s): aceef23

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +66 -7
app.py CHANGED
@@ -7,16 +7,75 @@ from tools.final_answer import FinalAnswerTool
7
 
8
  from Gradio_UI import GradioUI
9
 
10
- # Below is an example of a tool that does nothing. Amaze us with your creativity !
11
  @tool
12
- def my_custom_tool(arg1:str, arg2:int)-> str: #it's import to specify the return type
13
  #Keep this format for the description / args / args description but feel free to modify the tool
14
- """A tool that does nothing yet
15
  Args:
16
- arg1: the first argument
17
- arg2: the second argument
 
18
  """
19
- return "What magic will you build ?"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
  @tool
22
  def get_current_time_in_timezone(timezone: str) -> str:
@@ -55,7 +114,7 @@ with open("prompts.yaml", 'r') as stream:
55
 
56
  agent = CodeAgent(
57
  model=model,
58
- tools=[DuckDuckGoSearchTool(), image_generation_tool, final_answer], ## add your tools here (don't remove final answer)
59
  max_steps=6,
60
  verbosity_level=1,
61
  grammar=None,
 
7
 
8
  from Gradio_UI import GradioUI
9
 
10
+ # Fetch mello roos taxes for addresses in Sacramento County
11
  @tool
12
+ def sacramento_county_mello_roos_tool(street_number:str, street_name:str, city:str)-> str: #it's import to specify the return type
13
  #Keep this format for the description / args / args description but feel free to modify the tool
14
+ """A tool that fetches the tax data for addresses in the Sacramento county and returns the levy portions of the property taxes including the Mello Roos taxes
15
  Args:
16
+ street_number: Street number of the address
17
+ street_name: Street name of the address
18
+ city: City of the address
19
  """
20
+ parcel_api_url = "https://services1.arcgis.com/5NARefyPVtAeuJPU/arcgis/rest/services/Parcels/FeatureServer/0/query"
21
+ where_clause = f"STREET_NBR='{street_number}' AND STREET_NAM='{street_name}' AND CITY='{city}'"
22
+ params = {
23
+ 'where': where_clause,
24
+ 'outFields': '*',
25
+ 'f': 'json'
26
+ }
27
+
28
+ # Fetch parcel data
29
+ parcel_response = requests.get(parcel_api_url, params=params)
30
+ if parcel_response.status_code != 200:
31
+ return jsonify({"error": f"Parcel API request failed with status code {parcel_response.status_code}, response: {parcel_response.text}"}), 400
32
+
33
+ parcel_data = parcel_response.json()
34
+
35
+ # Ensure parcel data is valid
36
+ if 'features' not in parcel_data or len(parcel_data['features']) == 0:
37
+ return jsonify({"error": "No parcel data found"}), 400
38
+
39
+ parcel_number = parcel_data['features'][0]['attributes'].get('APN')
40
+ if not parcel_number:
41
+ return jsonify({"error": "Parcel number not found"}), 400
42
+
43
+ # Fetch bill details using the parcel number
44
+ bill_summary_url = f"https://eproptax.saccounty.net/servicev2/eproptax.svc/rest/BillSummary?parcel={parcel_number}"
45
+ bill_response = requests.get(bill_summary_url)
46
+ if bill_response.status_code != 200:
47
+ return jsonify({"error": f"Bill API request failed with status code {bill_response.status_code}, response: {bill_response.text}"}), 400
48
+
49
+ bill_data = bill_response.json()
50
+
51
+ # Ensure bill data is valid
52
+ if not bill_data.get('Success'):
53
+ return jsonify({"error": "Failed to retrieve bill data"}), 400
54
+
55
+ # Get the bill number and roll date
56
+ bill_number = bill_data['Bills'][0]['BillNumber']
57
+ roll_date = bill_data['Bills'][0]['RollDate']
58
+
59
+ # Fetch levy details using the bill number and current year
60
+ levy_url = f"https://eproptax.saccounty.net/servicev2/eproptax.svc/rest/DirectLevy?rollYear={roll_date}&billNumber={bill_number}"
61
+ levy_response = requests.get(levy_url)
62
+ if levy_response.status_code != 200:
63
+ return jsonify({"error": f"Levy API request failed with status code {levy_response.status_code}, response: {levy_response.text}"}), 400
64
+
65
+ levy_data = levy_response.json()
66
+
67
+ # Ensure levy data is valid
68
+ if not levy_data.get('Success'):
69
+ return jsonify({"error": "Failed to retrieve levy data"}), 400
70
+
71
+ # Prepare the response
72
+ response_data = {
73
+ "total_amount": levy_data['BillAmount'],
74
+ "levy_total": levy_data['LevyTotal'],
75
+ "levies": levy_data['Levies']
76
+ }
77
+
78
+ return jsonify(response_data)
79
 
80
  @tool
81
  def get_current_time_in_timezone(timezone: str) -> str:
 
114
 
115
  agent = CodeAgent(
116
  model=model,
117
+ tools=[sacramento_county_mello_roos_tool, image_generation_tool, final_answer], ## add your tools here (don't remove final answer)
118
  max_steps=6,
119
  verbosity_level=1,
120
  grammar=None,