BoghdadyJR commited on
Commit
7a2d50a
·
verified ·
1 Parent(s): f0a0392

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -6
app.py CHANGED
@@ -16,6 +16,8 @@ import uuid
16
  from langchain_community.chat_message_histories import ChatMessageHistory
17
  from langchain_core.runnables.history import RunnableWithMessageHistory
18
  import gradio as gr
 
 
19
 
20
  load_dotenv(dotenv_path='api.env.txt')
21
  Langchain_API_KEY = os.getenv('LANGCHAIN_API')
@@ -210,23 +212,49 @@ agent_with_chat_history = RunnableWithMessageHistory(
210
  session_ids = {}
211
 
212
  def gradio_interface(user_input, session_id):
213
- # If session_id is not in session_ids, it's a new session
214
  if session_id not in session_ids:
215
- # Generate a new unique session ID
216
  new_session_id = str(uuid.uuid4())
217
  session_ids[session_id] = new_session_id
218
  else:
219
  new_session_id = session_ids[session_id]
220
-
221
  result = agent_with_chat_history.invoke(
222
  {"input": user_input},
223
  config={"configurable": {"session_id": new_session_id}}
224
  )
225
  return [[user_input, result['output']]]
226
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
227
  with gr.Blocks() as demo:
228
- gr.Markdown("# Weather Assistant")
 
229
  chatbot = gr.Chatbot()
 
230
  with gr.Row():
231
  txt = gr.Textbox(
232
  show_label=False,
@@ -234,7 +262,17 @@ with gr.Blocks() as demo:
234
  lines=1,
235
  container=False
236
  )
237
- session_id_box = gr.Textbox(visible=False, value=str(uuid.uuid4()))
238
- txt.submit(gradio_interface, inputs=[txt, session_id_box], outputs=chatbot)
 
 
 
 
 
 
 
 
 
 
239
 
240
  demo.launch(share=True)
 
16
  from langchain_community.chat_message_histories import ChatMessageHistory
17
  from langchain_core.runnables.history import RunnableWithMessageHistory
18
  import gradio as gr
19
+ import base64
20
+
21
 
22
  load_dotenv(dotenv_path='api.env.txt')
23
  Langchain_API_KEY = os.getenv('LANGCHAIN_API')
 
212
  session_ids = {}
213
 
214
  def gradio_interface(user_input, session_id):
 
215
  if session_id not in session_ids:
 
216
  new_session_id = str(uuid.uuid4())
217
  session_ids[session_id] = new_session_id
218
  else:
219
  new_session_id = session_ids[session_id]
220
+
221
  result = agent_with_chat_history.invoke(
222
  {"input": user_input},
223
  config={"configurable": {"session_id": new_session_id}}
224
  )
225
  return [[user_input, result['output']]]
226
 
227
+ def encode_image(image_path):
228
+ with open(image_path, "rb") as image_file:
229
+ return base64.b64encode(image_file.read()).decode('utf-8')
230
+
231
+ # Encode the image
232
+ image_path = "/workspaces/Weather_Agent/productmanagerinterview_logo.jpeg"
233
+ encoded_image = encode_image(image_path)
234
+
235
+ info_text = f"""
236
+ <div style="display: flex; align-items: flex-start;">
237
+ <img src="data:image/jpeg;base64,{encoded_image}" alt="Logo" style="width: 200px; height: 200px; object-fit: cover; margin-right: 20px;">
238
+ <div>
239
+ <h2>Product Manager Accelerator Program</h2>
240
+ <p>The Product Manager Accelerator Program is designed to support PM professionals through every stage of their career. From students looking for entry-level jobs to Directors looking to take on a leadership role, our program has helped over hundreds of students fulfill their career aspirations.</p>
241
+ <p>Our Product Manager Accelerator community are ambitious and committed. Through our program they have learnt, honed and developed new PM and leadership skills, giving them a strong foundation for their future endeavours.</p>
242
+ <p>Learn product management for free today on our <a href="https://www.youtube.com/c/drnancyli?sub_confirmation=1" target="_blank">YouTube channel</a></p>
243
+ <h3>Interested in PM Accelerator Pro?</h3>
244
+ <ol>
245
+ <li>Attend the <a href="https://www.drnancyli.com/masterclass" target="_blank">Product Masterclass</a> to learn more about the program details, price, different packages, and stay until the end to get FREE AI Course. Learn how to create a killer product portfolio in two weeks that will help you land any PM job (traditional or AI) even if you were laid off or have zero PM experience.</li>
246
+ <li>Reserve your early bird ticket and submit an application to talk to our Head of Admission</li>
247
+ <li>Successful applicants join our PMA Pro community to receive customized coaching!</li>
248
+ </ol>
249
+ </div>
250
+ </div>
251
+ """
252
+
253
  with gr.Blocks() as demo:
254
+ gr.Markdown("# Weather Assistant - Done By Mohamed Boghdady")
255
+
256
  chatbot = gr.Chatbot()
257
+
258
  with gr.Row():
259
  txt = gr.Textbox(
260
  show_label=False,
 
262
  lines=1,
263
  container=False
264
  )
265
+ submit_btn = gr.Button("Submit")
266
+
267
+ session_id_box = gr.Textbox(visible=False, value=str(uuid.uuid4()))
268
+
269
+ # Add info button
270
+ info_btn = gr.Button("Info")
271
+ info_box = gr.HTML(visible=False, value=info_text)
272
+
273
+ # Set up event handlers
274
+ submit_btn.click(gradio_interface, inputs=[txt, session_id_box], outputs=chatbot)
275
+ txt.submit(gradio_interface, inputs=[txt, session_id_box], outputs=chatbot)
276
+ info_btn.click(lambda: gr.update(visible=True), outputs=info_box)
277
 
278
  demo.launch(share=True)