SHAMIL SHAHBAZ AWAN commited on
Commit
ea02b23
Β·
verified Β·
1 Parent(s): 59307f6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -8
app.py CHANGED
@@ -36,33 +36,31 @@ llm = ChatGoogleGenerativeAI(
36
 
37
  def space_events_agent():
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:
@@ -82,8 +80,14 @@ def space_events_agent():
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
 
 
36
 
37
  def space_events_agent():
38
  """
39
+ Fetches space events from NASA's EONET API, processes them, and generates a response using LLM.
 
40
  Returns:
41
+ dict: A dictionary with the LLM-generated response based on space events.
42
  Raises:
43
  HTTPError: If the request to the NASA API fails.
44
  Note:
45
  Requires NASA API key set in the environment variable `NASA_API_KEY`.
46
  """
 
 
 
47
  base_url = "https://eonet.gsfc.nasa.gov/api/v2.1/events"
48
  params = {"api_key": os.getenv("NASA_API_KEY")}
49
 
50
  try:
51
+ # Fetching events from NASA's EONET API
52
  response = requests.get(base_url, params=params)
53
  response.raise_for_status()
54
  except Exception as e:
55
  return {"output": f"πŸš€ **Space Events Agent:** Error fetching events: {str(e)}"}
56
 
57
+ # Processing the events
58
  events = response.json().get("events", [])
59
  if events:
60
+ # Extract event details
61
  event_details = []
62
  for event in events:
63
  title = event.get('title', 'N/A')
 
64
  category = (event.get('categories', [{}])[0]).get('title', 'Unknown Category')
65
  geometries = event.get('geometries', [])
66
  if geometries:
 
80
  event_details.append(detail)
81
 
82
  formatted_events = "\n".join(event_details)
83
+
84
+ # Generate response using the LLM
85
+ prompt = f"Here are the upcoming space events:\n{formatted_events}\nCan you provide a summary of these events?"
86
+ llm_response = llm.chat(messages=[{"role": "system", "content": "You are a space events assistant."}, {"role": "user", "content": prompt}])
87
+ return {"output": llm_response['message']['content']}
88
+
89
  else:
90
+ # If no events are found
91
  return {"output": "πŸš€ **Space Events Agent:** No events found at the moment."}
92
 
93