DHEIVER commited on
Commit
1cec83d
·
verified ·
1 Parent(s): 0f27135

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -2
app.py CHANGED
@@ -109,6 +109,8 @@ def conversation(qa_chain, message, history):
109
  return qa_chain, gr.update(value=""), new_history, response_source1, response_source1_page, response_source2, response_source2_page, response_source3, response_source3_page
110
 
111
 
 
 
112
  def demo():
113
  """Main demo application with enhanced layout"""
114
  theme = gr.themes.Default(
@@ -131,6 +133,7 @@ def demo():
131
  with gr.Blocks(theme=theme, css=custom_css) as demo:
132
  vector_db = gr.State()
133
  qa_chain = gr.State()
 
134
 
135
  # Header
136
  gr.HTML(
@@ -171,6 +174,14 @@ def demo():
171
  type="index"
172
  )
173
 
 
 
 
 
 
 
 
 
174
  with gr.Accordion("Advanced Settings", open=False):
175
  slider_temperature = gr.Slider(
176
  minimum=0.01,
@@ -269,6 +280,12 @@ def demo():
269
  )
270
 
271
  # Event Handlers
 
 
 
 
 
 
272
  db_btn.click(
273
  initialize_database,
274
  inputs=[document],
@@ -288,14 +305,14 @@ def demo():
288
 
289
  msg.submit(
290
  conversation,
291
- inputs=[qa_chain, msg, chatbot],
292
  outputs=[qa_chain, msg, chatbot, doc_source1, source1_page, doc_source2, source2_page, doc_source3, source3_page],
293
  queue=False
294
  )
295
 
296
  submit_btn.click(
297
  conversation,
298
- inputs=[qa_chain, msg, chatbot],
299
  outputs=[qa_chain, msg, chatbot, doc_source1, source1_page, doc_source2, source2_page, doc_source3, source3_page],
300
  queue=False
301
  )
@@ -309,5 +326,36 @@ def demo():
309
 
310
  demo.queue().launch(debug=True)
311
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
312
  if __name__ == "__main__":
313
  demo()
 
109
  return qa_chain, gr.update(value=""), new_history, response_source1, response_source1_page, response_source2, response_source2_page, response_source3, response_source3_page
110
 
111
 
112
+ # ... (código anterior permanece igual)
113
+
114
  def demo():
115
  """Main demo application with enhanced layout"""
116
  theme = gr.themes.Default(
 
133
  with gr.Blocks(theme=theme, css=custom_css) as demo:
134
  vector_db = gr.State()
135
  qa_chain = gr.State()
136
+ language = gr.State(value="en") # Novo estado para controle de idioma
137
 
138
  # Header
139
  gr.HTML(
 
174
  type="index"
175
  )
176
 
177
+ # Novo botão de seleção de idioma
178
+ language_btn = gr.Radio(
179
+ choices=["English", "Português"],
180
+ label="Response Language",
181
+ value="English",
182
+ type="value"
183
+ )
184
+
185
  with gr.Accordion("Advanced Settings", open=False):
186
  slider_temperature = gr.Slider(
187
  minimum=0.01,
 
280
  )
281
 
282
  # Event Handlers
283
+ language_btn.change(
284
+ lambda x: "en" if x == "English" else "pt",
285
+ inputs=language_btn,
286
+ outputs=language
287
+ )
288
+
289
  db_btn.click(
290
  initialize_database,
291
  inputs=[document],
 
305
 
306
  msg.submit(
307
  conversation,
308
+ inputs=[qa_chain, msg, chatbot, language],
309
  outputs=[qa_chain, msg, chatbot, doc_source1, source1_page, doc_source2, source2_page, doc_source3, source3_page],
310
  queue=False
311
  )
312
 
313
  submit_btn.click(
314
  conversation,
315
+ inputs=[qa_chain, msg, chatbot, language],
316
  outputs=[qa_chain, msg, chatbot, doc_source1, source1_page, doc_source2, source2_page, doc_source3, source3_page],
317
  queue=False
318
  )
 
326
 
327
  demo.queue().launch(debug=True)
328
 
329
+ # Modifique a função de conversão para incluir o idioma
330
+ def conversation(qa_chain, message, history, lang):
331
+ """Handle conversation and document analysis"""
332
+ # Adicione instrução de idioma à mensagem
333
+ if lang == "pt":
334
+ message += " (Responda em Português)"
335
+ else:
336
+ message += " (Respond in English)"
337
+
338
+ formatted_chat_history = format_chat_history(message, history)
339
+ response = qa_chain.invoke({"question": message, "chat_history": formatted_chat_history})
340
+ response_answer = response["answer"]
341
+
342
+ # Remova a instrução de idioma do histórico do chat
343
+ if "(Respond" in message:
344
+ message = message.split(" (Respond")[0]
345
+
346
+ if response_answer.find("Helpful Answer:") != -1:
347
+ response_answer = response_answer.split("Helpful Answer:")[-1]
348
+
349
+ response_sources = response["source_documents"]
350
+ response_source1 = response_sources[0].page_content.strip()
351
+ response_source2 = response_sources[1].page_content.strip()
352
+ response_source3 = response_sources[2].page_content.strip()
353
+ response_source1_page = response_sources[0].metadata["page"] + 1
354
+ response_source2_page = response_sources[1].metadata["page"] + 1
355
+ response_source3_page = response_sources[2].metadata["page"] + 1
356
+ new_history = history + [(message, response_answer)]
357
+
358
+ return qa_chain, gr.update(value=""), new_history, response_source1, response_source1_page, response_source2, response_source2_page, response_source3, response_source3_page
359
+
360
  if __name__ == "__main__":
361
  demo()