k96beni commited on
Commit
22b43ad
·
verified ·
1 Parent(s): a7165d8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +84 -80
app.py CHANGED
@@ -649,6 +649,8 @@ with gr.Blocks(css=custom_css, title="ChargeNode Kundtjänst") as app:
649
  gr.Markdown("Tack för att du kontaktar support@chargenode.eu. Vi återkommer inom kort", elem_classes="success-message")
650
  back_to_chat_btn = gr.Button("Tillbaka till chatten")
651
 
 
 
652
  def respond(message, chat_history, request: gr.Request):
653
  global last_log
654
  start = time.time()
@@ -723,7 +725,7 @@ def respond(message, chat_history, request: gr.Request):
723
  # Vi förlitar oss istället på JavaScript-koden som redan laddats via app.load()
724
 
725
  return "", chat_history
726
-
727
  def format_chat_preview(chat_history):
728
  if not chat_history:
729
  return "Ingen chatthistorik att visa."
@@ -747,99 +749,101 @@ def show_support_form(chat_history):
747
  success_interface: gr.Group(visible=False),
748
  chat_preview: preview
749
  }
750
- def back_to_chat():
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
751
  return {
752
- chat_interface: gr.Group(visible=True),
753
- support_interface: gr.Group(visible=False),
754
- success_interface: gr.Group(visible=False)
 
755
  }
756
 
757
- def submit_support_form(områdeskod, uttagsnummer, email, chat_history):
758
- """Hanterar formulärinskickningen med bättre felhantering."""
759
- print(f"Support-förfrågan: områdeskod={områdeskod}, uttagsnummer={uttagsnummer}, email={email}")
760
-
761
- # Validera input med tydligare loggning
762
- validation_errors = []
763
-
764
- if områdeskod and not områdeskod.isdigit():
765
- print(f"Validerar områdeskod: '{områdeskod}' (felaktig)")
766
- validation_errors.append("Områdeskod måste vara numerisk.")
767
- else:
768
- print(f"Validerar områdeskod: '{områdeskod}' (ok)")
769
 
770
- if uttagsnummer and not uttagsnummer.isdigit():
771
- print(f"Validerar uttagsnummer: '{uttagsnummer}' (felaktig)")
772
- validation_errors.append("Uttagsnummer måste vara numerisk.")
773
- else:
774
- print(f"Validerar uttagsnummer: '{uttagsnummer}' (ok)")
 
775
 
776
- if not email:
777
- print("Validerar email: (saknas)")
778
- validation_errors.append("En giltig e-postadress krävs.")
779
- elif '@' not in email or '.' not in email.split('@')[1]:
780
- print(f"Validerar email: '{email}' (felaktigt format)")
781
- validation_errors.append("En giltig e-postadress krävs.")
782
- else:
783
- print(f"Validerar email: '{email}' (ok)")
784
 
785
- # Om det finns valideringsfel
786
- if validation_errors:
787
- print(f"Valideringsfel: {validation_errors}")
788
  return {
789
  chat_interface: gr.Group(visible=False),
790
- support_interface: gr.Group(visible=True),
791
- success_interface: gr.Group(visible=False),
792
- chat_preview: "\n".join(["**Fel:**"] + validation_errors)
793
  }
794
-
795
- # Om formuläret klarade valideringen, försök skicka till Slack
796
- try:
797
- print("Försöker skicka supportförfrågan till Slack...")
798
-
799
- # Skapa en förenklad chathistorik för loggning
800
- chat_summary = []
801
- for msg in chat_history:
802
- if 'role' in msg and 'content' in msg:
803
- chat_summary.append(f"{msg['role']}: {msg['content'][:30]}...")
804
- print(f"Chatthistorik att skicka: {chat_summary}")
805
-
806
- # Skicka till Slack
807
- success = send_support_to_slack(områdeskod, uttagsnummer, email, chat_history)
808
-
809
- if success:
810
- print("Support-förfrågan skickad till Slack framgångsrikt")
811
- return {
812
- chat_interface: gr.Group(visible=False),
813
- support_interface: gr.Group(visible=False),
814
- success_interface: gr.Group(visible=True)
815
- }
816
- else:
817
- print("Support-förfrågan till Slack misslyckades")
818
- return {
819
- chat_interface: gr.Group(visible=False),
820
- support_interface: gr.Group(visible=True),
821
- success_interface: gr.Group(visible=False),
822
- chat_preview: "**Ett fel uppstod när meddelandet skulle skickas. Vänligen försök igen senare.**"
823
- }
824
- except Exception as e:
825
- print(f"Oväntat fel vid hantering av support-formulär: {e}")
826
  return {
827
  chat_interface: gr.Group(visible=False),
828
  support_interface: gr.Group(visible=True),
829
  success_interface: gr.Group(visible=False),
830
- chat_preview: f"**Ett fel uppstod: {str(e)}**"
831
  }
832
-
833
- msg.submit(respond, [msg, chatbot], [msg, chatbot])
834
- clear.click(lambda: None, None, chatbot, queue=False)
835
- support_btn.click(show_support_form, chatbot, [chat_interface, support_interface, success_interface, chat_preview])
836
- back_btn.click(back_to_chat, None, [chat_interface, support_interface, success_interface])
837
- back_to_chat_btn.click(back_to_chat, None, [chat_interface, support_interface, success_interface])
838
- send_support_btn.click(
839
- submit_support_form,
840
- [områdeskod, uttagsnummer, email, chatbot],
841
- [chat_interface, support_interface, success_interface, chat_preview]
842
- )
 
 
 
 
 
 
 
 
 
843
 
844
  if __name__ == "__main__":
845
  app.launch(share=True)
 
649
  gr.Markdown("Tack för att du kontaktar support@chargenode.eu. Vi återkommer inom kort", elem_classes="success-message")
650
  back_to_chat_btn = gr.Button("Tillbaka till chatten")
651
 
652
+ # Detta bör vara slutet av app.py-filen från funktionen "respond" och nedåt
653
+
654
  def respond(message, chat_history, request: gr.Request):
655
  global last_log
656
  start = time.time()
 
725
  # Vi förlitar oss istället på JavaScript-koden som redan laddats via app.load()
726
 
727
  return "", chat_history
728
+
729
  def format_chat_preview(chat_history):
730
  if not chat_history:
731
  return "Ingen chatthistorik att visa."
 
749
  success_interface: gr.Group(visible=False),
750
  chat_preview: preview
751
  }
752
+
753
+ def back_to_chat():
754
+ return {
755
+ chat_interface: gr.Group(visible=True),
756
+ support_interface: gr.Group(visible=False),
757
+ success_interface: gr.Group(visible=False)
758
+ }
759
+
760
+ def submit_support_form(områdeskod, uttagsnummer, email, chat_history):
761
+ """Hanterar formulärinskickningen med bättre felhantering."""
762
+ print(f"Support-förfrågan: områdeskod={områdeskod}, uttagsnummer={uttagsnummer}, email={email}")
763
+
764
+ # Validera input med tydligare loggning
765
+ validation_errors = []
766
+
767
+ if områdeskod and not områdeskod.isdigit():
768
+ print(f"Validerar områdeskod: '{områdeskod}' (felaktig)")
769
+ validation_errors.append("Områdeskod måste vara numerisk.")
770
+ else:
771
+ print(f"Validerar områdeskod: '{områdeskod}' (ok)")
772
+
773
+ if uttagsnummer and not uttagsnummer.isdigit():
774
+ print(f"Validerar uttagsnummer: '{uttagsnummer}' (felaktig)")
775
+ validation_errors.append("Uttagsnummer måste vara numerisk.")
776
+ else:
777
+ print(f"Validerar uttagsnummer: '{uttagsnummer}' (ok)")
778
+
779
+ if not email:
780
+ print("Validerar email: (saknas)")
781
+ validation_errors.append("En giltig e-postadress krävs.")
782
+ elif '@' not in email or '.' not in email.split('@')[1]:
783
+ print(f"Validerar email: '{email}' (felaktigt format)")
784
+ validation_errors.append("En giltig e-postadress krävs.")
785
+ else:
786
+ print(f"Validerar email: '{email}' (ok)")
787
+
788
+ # Om det finns valideringsfel
789
+ if validation_errors:
790
+ print(f"Valideringsfel: {validation_errors}")
791
  return {
792
+ chat_interface: gr.Group(visible=False),
793
+ support_interface: gr.Group(visible=True),
794
+ success_interface: gr.Group(visible=False),
795
+ chat_preview: "\n".join(["**Fel:**"] + validation_errors)
796
  }
797
 
798
+ # Om formuläret klarade valideringen, försök skicka till Slack
799
+ try:
800
+ print("Försöker skicka supportförfrågan till Slack...")
 
 
 
 
 
 
 
 
 
801
 
802
+ # Skapa en förenklad chathistorik för loggning
803
+ chat_summary = []
804
+ for msg in chat_history:
805
+ if 'role' in msg and 'content' in msg:
806
+ chat_summary.append(f"{msg['role']}: {msg['content'][:30]}...")
807
+ print(f"Chatthistorik att skicka: {chat_summary}")
808
 
809
+ # Skicka till Slack
810
+ success = send_support_to_slack(områdeskod, uttagsnummer, email, chat_history)
 
 
 
 
 
 
811
 
812
+ if success:
813
+ print("Support-förfrågan skickad till Slack framgångsrikt")
 
814
  return {
815
  chat_interface: gr.Group(visible=False),
816
+ support_interface: gr.Group(visible=False),
817
+ success_interface: gr.Group(visible=True)
 
818
  }
819
+ else:
820
+ print("Support-förfrågan till Slack misslyckades")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
821
  return {
822
  chat_interface: gr.Group(visible=False),
823
  support_interface: gr.Group(visible=True),
824
  success_interface: gr.Group(visible=False),
825
+ chat_preview: "**Ett fel uppstod när meddelandet skulle skickas. Vänligen försök igen senare.**"
826
  }
827
+ except Exception as e:
828
+ print(f"Oväntat fel vid hantering av support-formulär: {e}")
829
+ return {
830
+ chat_interface: gr.Group(visible=False),
831
+ support_interface: gr.Group(visible=True),
832
+ success_interface: gr.Group(visible=False),
833
+ chat_preview: f"**Ett fel uppstod: {str(e)}**"
834
+ }
835
+
836
+ # Eventkopplingar
837
+ msg.submit(respond, [msg, chatbot], [msg, chatbot])
838
+ clear.click(lambda: None, None, chatbot, queue=False)
839
+ support_btn.click(show_support_form, chatbot, [chat_interface, support_interface, success_interface, chat_preview])
840
+ back_btn.click(back_to_chat, None, [chat_interface, support_interface, success_interface])
841
+ back_to_chat_btn.click(back_to_chat, None, [chat_interface, support_interface, success_interface])
842
+ send_support_btn.click(
843
+ submit_support_form,
844
+ [områdeskod, uttagsnummer, email, chatbot],
845
+ [chat_interface, support_interface, success_interface, chat_preview]
846
+ )
847
 
848
  if __name__ == "__main__":
849
  app.launch(share=True)