jcho02 commited on
Commit
591bd65
·
1 Parent(s): c2b312f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -88
app.py CHANGED
@@ -6,105 +6,56 @@ import requests
6
  import time
7
  import json
8
 
9
- # Authenticate and authorize with Google Sheets
10
- gc = gspread.service_account(filename='botresponse-6f1a8c749aa0.json')
11
-
12
- # Specify your Google Sheets credentials, sheet_id, and worksheet_name
13
- sheet_id = "18hnoTsEaGMWMael42MXubb-FzAe5jJB5RpaSolIXyb0"
14
- worksheet_name = "Sheet1"
15
 
16
- # Function to get the initial response
17
- def get_initial_response(input_message):
18
- url = "https://itell-api.learlab.vanderbilt.edu/chat"
19
-
20
- payload = {
21
- "textbook_name": "think-python-2e",
22
- "message": input_message
23
  }
24
- headers = {"Content-Type": "application/json"}
25
-
26
- # Measure the start time
27
- start_time = time.time()
28
-
29
- response = requests.post(url, json=payload, headers=headers)
30
- data = json.loads(response.text)
31
- message = data['message']
32
-
33
- # Calculate the elapsed time
34
- elapsed_time = time.time() - start_time
35
- elapsed_time = round(elapsed_time, 2)
36
- response_time_message = f"Response time: {elapsed_time} seconds"
37
-
38
- return message, response_time_message # Return the initial_response and elapsed_time
39
-
40
- # Function to collect feedback and update the spreadsheet
41
- def feedback_response(input_message, feedback, comments):
42
- # Get the initial response and elapsed_time
43
- initial_response, elapsed_time = get_initial_response(input_message)
44
-
45
- # Collect feedback
46
- response = ''
47
- if feedback == 'Informative':
48
- response = 'Informative'
49
- elif feedback == 'Inaccurate':
50
- response = 'Inaccurate'
51
- elif feedback == 'Nonsense':
52
- response = 'Nonsense'
53
- elif feedback == 'Good':
54
- response = 'Good'
55
- elif feedback == 'Bad':
56
- response = 'Bad'
57
- elif feedback == 'Inappropriate':
58
- response = 'Inappropriate'
59
- else:
60
- response = 'NA'
61
-
62
- # Update Google Sheets
63
- sh = gc.open_by_key(sheet_id)
64
- worksheet = sh.worksheet(worksheet_name)
65
-
66
- thankyou = "Thank you for your feedback. Your response and feedback have been recorded!"
67
- # Append the data to the worksheet only if comments have a value
68
- if comments:
69
- # Create a DataFrame from the response and additional comments
70
- df = pd.DataFrame({'Input Message': [input_message], 'Output': [initial_response], 'Time took in Seconds': [elapsed_time],'Feedback': [response], 'Additional Comments': [comments]})
71
-
72
- # Append the data to the worksheet
73
- worksheet.append_rows(df.values.tolist())
74
- initial_response = thankyou
75
-
76
- return initial_response, elapsed_time # Return the initial_response and elapsed_time
77
 
78
  # Set up the Gradio Interface
79
  feedback_interface = gr.Interface(
80
  fn=feedback_response,
81
  inputs=[
82
  gr.Textbox(label="Input Message"),
83
- gr.Row([
84
- gr.ButtonGroup(
85
- choices=[
86
- "Good",
87
- "Bad",
88
- "Inappropriate"
89
- ],
90
- label="Feedback (Top Row)",
91
- type="radio"
92
- ),
93
- gr.ButtonGroup(
94
- choices=[
95
- "Informative",
96
- "Inaccurate",
97
- "Nonsense"
98
- ],
99
- label="Feedback (Bottom Row)",
100
- type="radio"
101
- )
102
- ]),
103
  gr.Textbox(label="Additional Comments")
104
  ],
105
  outputs=[
106
- gr.Textbox(label="Output", type="text"),
107
- gr.Textbox(label="Elapsed Time (s)", type="text")
 
 
 
 
 
 
 
 
 
 
 
 
108
  ],
109
  title="Beta: Itell Guide Response Bot",
110
  description="""
 
6
  import time
7
  import json
8
 
9
+ # ... (The rest of your code remains the same)
 
 
 
 
 
10
 
11
+ # Define custom CSS styles for the buttons
12
+ custom_css = """
13
+ <style>
14
+ .button-container {
15
+ display: flex;
16
+ justify-content: space-between;
 
17
  }
18
+ .feedback-button {
19
+ background-color: #008CBA;
20
+ color: white;
21
+ border: none;
22
+ padding: 10px 20px;
23
+ text-align: center;
24
+ text-decoration: none;
25
+ display: inline-block;
26
+ font-size: 16px;
27
+ margin: 4px 2px;
28
+ cursor: pointer;
29
+ border-radius: 5px;
30
+ }
31
+ .feedback-button:hover {
32
+ background-color: #005e87;
33
+ }
34
+ </style>
35
+ """
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  # Set up the Gradio Interface
38
  feedback_interface = gr.Interface(
39
  fn=feedback_response,
40
  inputs=[
41
  gr.Textbox(label="Input Message"),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  gr.Textbox(label="Additional Comments")
43
  ],
44
  outputs=[
45
+ gr.HTML(label="Feedback (Top Row)", html=custom_css + """
46
+ <div class="button-container">
47
+ <button class="feedback-button" id="good-feedback" onclick="setFeedback('Good')">Good</button>
48
+ <button class="feedback-button" id="bad-feedback" onclick="setFeedback('Bad')">Bad</button>
49
+ <button class="feedback-button" id="inappropriate-feedback" onclick="setFeedback('Inappropriate')">Inappropriate</button>
50
+ </div>
51
+ """),
52
+ gr.HTML(label="Feedback (Bottom Row)", html=custom_css + """
53
+ <div class="button-container">
54
+ <button class="feedback-button" id="informative-feedback" onclick="setFeedback('Informative')">Informative</button>
55
+ <button class="feedback-button" id="inaccurate-feedback" onclick="setFeedback('Inaccurate')">Inaccurate</button>
56
+ <button class="feedback-button" id="nonsense-feedback" onclick="setFeedback('Nonsense')">Nonsense</button>
57
+ </div>
58
+ """)
59
  ],
60
  title="Beta: Itell Guide Response Bot",
61
  description="""