SHAMIL SHAHBAZ AWAN commited on
Commit
f2eb88d
Β·
verified Β·
1 Parent(s): 6f76ac1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -30
app.py CHANGED
@@ -38,54 +38,54 @@ def space_events_agent():
38
  """
39
  Fetches and formats upcoming space events from NASA's EONET API.
40
 
41
- Args:
42
- state (AgentState): The current agent state.
43
-
44
  Returns:
45
  dict: A dictionary with the formatted space events or a message if no events are found.
46
-
47
  Raises:
48
  HTTPError: If the request to the NASA API fails.
49
-
50
  Note:
51
  Requires NASA API key set in the environment variable `NASA_API_KEY`.
52
  """
 
 
 
53
  base_url = "https://eonet.gsfc.nasa.gov/api/v2.1/events"
54
- # Using a separate NASA API key for EONET if needed
55
  params = {"api_key": os.getenv("NASA_API_KEY")}
56
- response = requests.get(base_url, params=params)
57
- response.raise_for_status()
 
 
 
 
 
58
  events = response.json().get("events", [])
59
  if events:
60
  event_details = []
61
  for event in events:
62
- # Safely retrieve category and coordinates
 
63
  category = (event.get('categories', [{}])[0]).get('title', 'Unknown Category')
64
  geometries = event.get('geometries', [])
65
- coordinates = geometries[0].get('coordinates', 'Unknown Location') if geometries else 'Unknown Location'
66
- event_details.append(
67
- f"β€’ Event: {event.get('title', 'N/A')}\n"
68
- f" Type: {category}\n"
69
- f" Location: {coordinates}\n"
 
 
 
 
 
 
 
 
70
  )
 
 
71
  formatted_events = "\n".join(event_details)
72
- return {"output": f"πŸš€ Space Events Agent:\n\n{formatted_events}"}
73
  else:
74
- return {"output": f"πŸš€ Space Events Agent: No events found at the moment."}
75
-
76
- loader1 = WebBaseLoader("https://spacelaunchnow.me/3.3.0/launch/upcoming/")
77
- docs1 = loader1.load()
78
- documents = RecursiveCharacterTextSplitter(
79
- chunk_size=1000, chunk_overlap=200
80
- ).split_documents(docs1)
81
- vector = FAISS.from_documents(documents, GoogleGenerativeAIEmbeddings(model="models/embedding-001"))
82
-
83
- retriever = vector.as_retriever()
84
- retriever_tool = create_retriever_tool(
85
- retriever,
86
- "spacelaunchnow",
87
- "Search for information about space real time news",
88
- )
89
 
90
  def astronomy_image_agent(user_input: str):
91
  """
 
38
  """
39
  Fetches and formats upcoming space events from NASA's EONET API.
40
 
 
 
 
41
  Returns:
42
  dict: A dictionary with the formatted space events or a message if no events are found.
 
43
  Raises:
44
  HTTPError: If the request to the NASA API fails.
 
45
  Note:
46
  Requires NASA API key set in the environment variable `NASA_API_KEY`.
47
  """
48
+ import os
49
+ import requests
50
+
51
  base_url = "https://eonet.gsfc.nasa.gov/api/v2.1/events"
 
52
  params = {"api_key": os.getenv("NASA_API_KEY")}
53
+
54
+ try:
55
+ response = requests.get(base_url, params=params)
56
+ response.raise_for_status()
57
+ except Exception as e:
58
+ return {"output": f"πŸš€ **Space Events Agent:** Error fetching events: {str(e)}"}
59
+
60
  events = response.json().get("events", [])
61
  if events:
62
  event_details = []
63
  for event in events:
64
+ title = event.get('title', 'N/A')
65
+ # Retrieve category using safe defaults
66
  category = (event.get('categories', [{}])[0]).get('title', 'Unknown Category')
67
  geometries = event.get('geometries', [])
68
+ if geometries:
69
+ first_geometry = geometries[0]
70
+ coordinates = first_geometry.get('coordinates', 'Unknown Location')
71
+ event_date = first_geometry.get('date', 'Unknown Date')
72
+ else:
73
+ coordinates = 'Unknown Location'
74
+ event_date = 'Unknown Date'
75
+
76
+ detail = (
77
+ f"**Event:** {title}\n"
78
+ f"**Category:** {category}\n"
79
+ f"**Location:** {coordinates}\n"
80
+ f"**Date:** {event_date}\n"
81
  )
82
+ event_details.append(detail)
83
+
84
  formatted_events = "\n".join(event_details)
85
+ return {"output": f"πŸš€ **Space Events Agent:**\n\n{formatted_events}"}
86
  else:
87
+ return {"output": "πŸš€ **Space Events Agent:** No events found at the moment."}
88
+
 
 
 
 
 
 
 
 
 
 
 
 
 
89
 
90
  def astronomy_image_agent(user_input: str):
91
  """