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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -13
app.py CHANGED
@@ -34,33 +34,40 @@ llm = ChatGoogleGenerativeAI(
34
  google_api_key=os.getenv("GOOGLE_API_KEY")
35
  )
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,14 +87,8 @@ def space_events_agent():
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
 
 
34
  google_api_key=os.getenv("GOOGLE_API_KEY")
35
  )
36
 
37
+ # Initialize models and APIs
38
+ llm = ChatGoogleGenerativeAI(
39
+ model="gemini-1.5-flash",
40
+ google_api_key=os.getenv("GOOGLE_API_KEY")
41
+ )
42
+
43
  def space_events_agent():
44
  """
45
+ Fetches and formats upcoming space events from NASA's EONET API.
46
  Returns:
47
+ dict: A dictionary with the formatted space events or a message if no events are found.
48
  Raises:
49
  HTTPError: If the request to the NASA API fails.
50
  Note:
51
+ Requires NASA API key set in the environment variable NASA_API_KEY.
52
  """
53
+ import os
54
+ import requests
55
+
56
  base_url = "https://eonet.gsfc.nasa.gov/api/v2.1/events"
57
  params = {"api_key": os.getenv("NASA_API_KEY")}
58
 
59
  try:
 
60
  response = requests.get(base_url, params=params)
61
  response.raise_for_status()
62
  except Exception as e:
63
  return {"output": f"πŸš€ **Space Events Agent:** Error fetching events: {str(e)}"}
64
 
 
65
  events = response.json().get("events", [])
66
  if events:
 
67
  event_details = []
68
  for event in events:
69
  title = event.get('title', 'N/A')
70
+ # Retrieve category using safe defaults
71
  category = (event.get('categories', [{}])[0]).get('title', 'Unknown Category')
72
  geometries = event.get('geometries', [])
73
  if geometries:
 
87
  event_details.append(detail)
88
 
89
  formatted_events = "\n".join(event_details)
90
+ return {"output": f"πŸš€ **Space Events Agent:**\n\n{formatted_events}"}
 
 
 
 
 
91
  else:
 
92
  return {"output": "πŸš€ **Space Events Agent:** No events found at the moment."}
93
 
94