arpit13 commited on
Commit
9caa567
·
verified ·
1 Parent(s): 7b65c8d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -48
app.py CHANGED
@@ -4,7 +4,6 @@ import os
4
  import json
5
  from gtts import gTTS # Import gTTS for text-to-speech
6
 
7
-
8
  # OpenAI API setup
9
  openai.api_key = os.getenv("GROQ_API_KEY")
10
  openai.api_base = "https://api.groq.com/openai/v1"
@@ -56,11 +55,12 @@ def get_groq_response(message, history=[]):
56
  # Text-to-Speech function
57
  def text_to_speech(latest_response):
58
  try:
 
 
59
  tts = gTTS(latest_response, lang="en") # Generate speech from text
60
  audio_file = "response_audio.mp3"
61
  tts.save(audio_file)
62
- print(f"Audio file saved at: {audio_file}") # Debugging print
63
- return audio_file # Ensure correct file path is returned
64
  except Exception as e:
65
  print(f"Error generating audio: {e}")
66
  return None
@@ -98,68 +98,36 @@ with gr.Blocks(css="""
98
  background-color: #FFFFFF;
99
  border-radius: 10px;
100
  padding: 20px;
101
- max-height: 600px; /* Increased height */
102
  overflow-y: auto;
103
  box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.1);
104
- scroll-behavior: smooth; /* Smooth scrolling */
105
  }
106
 
107
- .user-message {
108
- background-color: #9ACBD0;
109
- color: #FFF;
110
- padding: 12px;
111
  border-radius: 8px;
112
  margin: 10px 0;
113
  max-width: 60%;
 
 
 
 
 
 
114
  text-align: right;
115
  float: right;
116
  clear: both;
117
- transition: transform 0.3s ease;
118
  }
119
 
120
  .bot-message {
121
  background-color: #48A6A7;
122
  color: #FFF;
123
- padding: 12px;
124
- border-radius: 8px;
125
- margin: 10px 0;
126
- max-width: 60%;
127
  text-align: left;
128
  float: left;
129
  clear: both;
130
- transition: transform 0.3s ease;
131
- }
132
-
133
- .user-message:hover, .bot-message:hover {
134
- transform: scale(1.05);
135
- box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);
136
- }
137
-
138
- .gr-button {
139
- background-color: #2973B2;
140
- color: white;
141
- padding: 10px 15px;
142
- border-radius: 8px;
143
- border: none;
144
- transition: background-color 0.3s ease;
145
- }
146
-
147
- .gr-button:hover {
148
- background-color: #21689D;
149
- }
150
-
151
- .gr-textbox input {
152
- padding: 15px;
153
- font-size: 16px;
154
- }
155
-
156
- .gr-markdown h1 {
157
- color: #3A5A6E;
158
- font-size: 28px;
159
- text-align: center;
160
  }
161
  """) as demo:
162
- gr.Markdown("""# Mom: We have ChatGPT at Home, \n ChatGPT at Home: Feel free to ask questions. After you're done, remember to clear the history for privacy. """)
163
 
164
  # Chatbot UI
165
  chatbot_ui = gr.Chatbot()
@@ -174,9 +142,9 @@ with gr.Blocks(css="""
174
  # Chat interaction
175
  user_input.submit(chatbot, inputs=[user_input, history_state], outputs=[chatbot_ui, history_state, user_input])
176
  hear_button.click(
177
- lambda latest: text_to_speech(latest[-1][1] if latest else ""), # Fetch latest bot response
178
- inputs=[history_state], # Pass the conversation history
179
- outputs=audio_output # Output the file to the audio player
180
  )
181
 
182
  # Clear history button action
 
4
  import json
5
  from gtts import gTTS # Import gTTS for text-to-speech
6
 
 
7
  # OpenAI API setup
8
  openai.api_key = os.getenv("GROQ_API_KEY")
9
  openai.api_base = "https://api.groq.com/openai/v1"
 
55
  # Text-to-Speech function
56
  def text_to_speech(latest_response):
57
  try:
58
+ if not latest_response: # If there's no response
59
+ return None
60
  tts = gTTS(latest_response, lang="en") # Generate speech from text
61
  audio_file = "response_audio.mp3"
62
  tts.save(audio_file)
63
+ return audio_file
 
64
  except Exception as e:
65
  print(f"Error generating audio: {e}")
66
  return None
 
98
  background-color: #FFFFFF;
99
  border-radius: 10px;
100
  padding: 20px;
101
+ max-height: 600px;
102
  overflow-y: auto;
103
  box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.1);
104
+ scroll-behavior: smooth;
105
  }
106
 
107
+ .user-message, .bot-message {
 
 
 
108
  border-radius: 8px;
109
  margin: 10px 0;
110
  max-width: 60%;
111
+ padding: 12px;
112
+ }
113
+
114
+ .user-message {
115
+ background-color: #9ACBD0;
116
+ color: #FFF;
117
  text-align: right;
118
  float: right;
119
  clear: both;
 
120
  }
121
 
122
  .bot-message {
123
  background-color: #48A6A7;
124
  color: #FFF;
 
 
 
 
125
  text-align: left;
126
  float: left;
127
  clear: both;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  }
129
  """) as demo:
130
+ gr.Markdown("# ChatGPT at Home\nAsk me anything and hear the response!")
131
 
132
  # Chatbot UI
133
  chatbot_ui = gr.Chatbot()
 
142
  # Chat interaction
143
  user_input.submit(chatbot, inputs=[user_input, history_state], outputs=[chatbot_ui, history_state, user_input])
144
  hear_button.click(
145
+ lambda latest: text_to_speech(latest[-1][1] if latest else "No response yet."), # Handle empty state
146
+ inputs=[history_state],
147
+ outputs=audio_output
148
  )
149
 
150
  # Clear history button action