dlaima commited on
Commit
5ed7be0
·
verified ·
1 Parent(s): 7e50a64

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -12
app.py CHANGED
@@ -2,6 +2,7 @@ import gradio as gr
2
  import os
3
  import pandas as pd
4
  import datasets
 
5
 
6
  from smolagents import CodeAgent, OpenAIServerModel
7
  from tools import DuckDuckGoSearchTool, WeatherInfoTool, HubStatsTool, NewsSearchTool
@@ -10,12 +11,16 @@ from retriever import load_guest_dataset
10
  # Constants
11
  SAMPLE_FILE = "sample_guests.csv"
12
 
 
 
 
13
  # Generate sample dataset if not already present
14
  def generate_sample_guest_csv():
15
  if not os.path.exists(SAMPLE_FILE):
16
  guest_dataset = datasets.load_dataset("agents-course/unit3-invitees", split="train")
17
  df = pd.DataFrame(guest_dataset)
18
  df.to_csv(SAMPLE_FILE, index=False)
 
19
 
20
  generate_sample_guest_csv()
21
 
@@ -71,21 +76,28 @@ with gr.Blocks() as demo:
71
 
72
  def run_query(prompt, file):
73
  global agent_instance
74
- agent_instance = build_agent(file_path=file)
75
- result = agent_instance.run(prompt)
76
-
77
- # Handle different result types to convert to string for chatbot output
78
- if isinstance(result, dict):
79
- result = "\n\n".join(f"**{k}**: {v}" for k, v in result.items())
80
- elif isinstance(result, list):
81
- if all(isinstance(item, dict) and "name" in item and "starter" in item for item in result):
82
- result = "\n\n".join(f"{item['name']}: {item['starter']}" for item in result)
 
 
 
 
 
 
83
  else:
84
  result = str(result)
85
- else:
86
- result = str(result)
87
 
88
- # Return as list of message dicts for Gradio chatbot type="messages"
 
 
 
89
  return [
90
  {"role": "user", "content": prompt},
91
  {"role": "assistant", "content": result}
 
2
  import os
3
  import pandas as pd
4
  import datasets
5
+ import logging
6
 
7
  from smolagents import CodeAgent, OpenAIServerModel
8
  from tools import DuckDuckGoSearchTool, WeatherInfoTool, HubStatsTool, NewsSearchTool
 
11
  # Constants
12
  SAMPLE_FILE = "sample_guests.csv"
13
 
14
+ # Set up logging
15
+ logging.basicConfig(level=logging.INFO)
16
+
17
  # Generate sample dataset if not already present
18
  def generate_sample_guest_csv():
19
  if not os.path.exists(SAMPLE_FILE):
20
  guest_dataset = datasets.load_dataset("agents-course/unit3-invitees", split="train")
21
  df = pd.DataFrame(guest_dataset)
22
  df.to_csv(SAMPLE_FILE, index=False)
23
+ logging.info(f"Sample dataset saved as {SAMPLE_FILE}")
24
 
25
  generate_sample_guest_csv()
26
 
 
76
 
77
  def run_query(prompt, file):
78
  global agent_instance
79
+ logging.info(f"Received prompt: {prompt}")
80
+ logging.info(f"Guest file path: {file}")
81
+
82
+ try:
83
+ agent_instance = build_agent(file_path=file)
84
+ result = agent_instance.run(prompt)
85
+
86
+ # Handle different result types to convert to string for chatbot output
87
+ if isinstance(result, dict):
88
+ result = "\n\n".join(f"**{k}**: {v}" for k, v in result.items())
89
+ elif isinstance(result, list):
90
+ if all(isinstance(item, dict) and "name" in item and "starter" in item for item in result):
91
+ result = "\n\n".join(f"{item['name']}: {item['starter']}" for item in result)
92
+ else:
93
+ result = str(result)
94
  else:
95
  result = str(result)
 
 
96
 
97
+ except Exception as e:
98
+ logging.error(f"Error running agent: {e}")
99
+ result = f"⚠️ An error occurred: {str(e)}"
100
+
101
  return [
102
  {"role": "user", "content": prompt},
103
  {"role": "assistant", "content": result}