From cb98bbac63d067aaafa53fcf03e94b571aa7ad34 Mon Sep 17 00:00:00 2001 From: "nitin.maurya" Date: Mon, 18 Dec 2023 05:40:06 +0000 Subject: [PATCH] Delete 'new_script.py' --- new_script.py | 412 -------------------------------------------------- 1 file changed, 412 deletions(-) delete mode 100644 new_script.py diff --git a/new_script.py b/new_script.py deleted file mode 100644 index c750c57..0000000 --- a/new_script.py +++ /dev/null @@ -1,412 +0,0 @@ -import sys -from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QPushButton, QLabel, QVBoxLayout, QWidget, QGraphicsOpacityEffect, QGraphicsScene, QGraphicsView -from PyQt5.QtMultimediaWidgets import QVideoWidget -from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent -from PyQt5.QtCore import QUrl, Qt -import speech_recognition as sr -from PyQt5.QtGui import QPainter - - - -class HospitalChatbot: - def __init__(self): - - - self.intents_and_questions = { - - "greet": [ - "hey", - "hello", - "Hello?", - "hello?", - "hi", - "hello there", - "good morning", - "good evening", - "moin", - "hey there", - "let's go", - "hey dude", - "goodmorning", - "goodevening", - "good afternoon"], - - - "goodbye": [ - - "cu", - "good by", - "cee you later", - "good night", - "bye", - "goodbye", - "have a nice day", - "see you around", - "bye bye", - "see you later" - - ], - - - "affirm": [ - - "yes", - "y", - "indeed", - "of course", - "that sounds good", - "correct" - - ], - - - "bot_challenge": [ - - "are you a bot", - "are you a human", - "am I talking to a bot", - "am I talking to a human" - - ], - - "appointment_booking": [ - - "How can I schedule an appointment", - "I need to book an appointment with a doctor", - "what's the procedure for booking an appointment", - "hello, I'd like to schedule an appointment.", - "book an appointment", - "appointment", - "need an appointment" - ], - - - "doctor_information": [ - - "tell me more about dr. abc", - "what's the specialty of dr. abc", - "give me the contact details for dr. abc" - "doctor", - "contact doctor", - "doctor contact", - "doctor detail", - "detail doctor" - - ], - - - "department_information": [ - - "which departments are available in the hospital", - "can you provide details about the cardiology department", - "tell me more about the pediatric department", - "department", - "which department", - "department info" - - ], - - - "visiting_hours":[ - - "what are the visiting hours for patients", - "when can I visit a patient in the hospital", - "is there a specific time for visiting hours", - "visiting time", - "visit", - "time", - "time to visit", - "visit time", - "hospital visit", - "visit hospital" - ], - - - "location_and_directions":[ - - "how do I get to the hospital", - "can you provide me with directions to your location", - "where is the hospital situated", - "direction", - "direction hospital", - "hospital direction", - "location", - "hospital location" - ], - - - "billing_and_insurance": [ - - "how do I pay my medical bills", - "do you accept my insurance", - "what's the billing process for a hospital stay", - "bills", - "insurance", - "pay bill", - ], - - - "medical_records": [ - "how can I access my medical records", - "request my medical history", - "I need a copy of my lab results", - "records", - "medical records", - "record medical", - "results", - "lab results", - "result copy", - "copy result" - ], - - - "emergency_services": [ - "what should I do in case of a medical emergency", - "how do I contact the hospital in an emergency", - "tell me about your emergency services", - "emergency", - "emergency service" - ], - - - "covid19_information": [ - "what safety measures are in place due to COVID-19", - "is it safe to visit the hospital during the pandemic", - "do you offer COVID-19 testing or vaccinations", - "covid19" - - ], - - - "feedback_and_complaints": [ - "I want to provide feedback about my experience", - "how can I file a complaint about a staff member", - "share my thoughts on my recent visit", - "feedback", - "complaints", - "complain", - "share thoughts", - "experiance" - ], - - - "thank_you": [ - "thank you for your help", - "I appreciate your assistance", - "you've been very helpful" - ], - - - "general_information": [ - "tell me more about the hospital", - "what services do you offer", - "is there a cafeteria in the hospital", - "information", - "cafeteria", - "services", - "services offered", - "offered services" - ] - } - - self.intent_responses = { - - "greet": "Hello! How can I assist you today?", - "appointment_booking": "To book an appointment, please call our scheduling department at 1234567897.", - "doctor_information": "Dr. ABC is a specialist in Neuro. You can contact them at 9874563214.", - "department_information": "Our hospital has various departments, including cardiology and pediatrics. How can I help you with a specific department?", - "visiting_hours": "Visiting hours for patients are from 9:30 AM to 8:00 PM. Please feel free to visit during that time.", - "location_and_directions": "Our hospital is located at Ameerpet Hyderabad. Here are directions to our hospital: [Directions].", - "billing_and_insurance": "You can pay your medical bills at the billing department. We accept a variety of insurance plans. If you have any specific questions about billing, please call 789654125.", - "medical_records": "To access your medical records, please visit the medical records department. They can provide you with a copy of your records or lab results.", - "emergency_services": "In case of a medical emergency, please call 911 or go to the nearest emergency room. We also have an emergency department at our hospital.", - "covid19_information": "For information on our COVID-19 safety measures and testing, please visit our website or contact our COVID-19 hotline at [COVID-19 Hotline Number].", - "feedback_and_complaints": "Your feedback is valuable to us. You can provide feedback or file a complaint on our website or by contacting our patient services department.", - "thank_you": "You're welcome! If you have any more questions, feel free to ask.", - "general_information": "Our hospital provides a range of services, including medical, surgical, and emergency care. We also have a cafeteria for your convenience." - - - } - - - - - def match_intent(self, sentence): - sentence = sentence.lower() # Convert to lowercase for case-insensitive matching - for intent, questions in self.intents_and_questions.items(): - for question in questions: - if question in sentence: - return intent - return None - - def get_response(self, sentence): - matched_intent = self.match_intent(sentence) - if matched_intent: - response = self.intent_responses.get(matched_intent, "I'm not sure how to answer that.") - else: - response = "I'm not sure how to answer that." - return response - - def get_video_response(self, intent): - # Your video URLs here - - '''video_urls = { - - "greet": "https://res.cloudinary.com/dam12ojlp/video/upload/v1698260372/Output/greet_a1ngxv.mp4", - "appointment_booking": "https://res.cloudinary.com/dam12ojlp/video/upload/v1698260367/Output/appointment_booking_hl5uvy.mp4", - "doctor_information": "https://res.cloudinary.com/dam12ojlp/video/upload/v1698260369/Output/doctor_information_dq34py.mp4", - "department_information": "https://res.cloudinary.com/dam12ojlp/video/upload/v1698260373/Output/department_information_d7fksd.mp4", - "visiting_hours": "https://res.cloudinary.com/dam12ojlp/video/upload/v1698260376/Output/visiting_hours_dzvh3d.mp4", - "location_and_directions": "https://res.cloudinary.com/dam12ojlp/video/upload/v1698260375/Output/location_and_directions_ktkluz.mp4", - "billing_and_insurance": "https://res.cloudinary.com/dam12ojlp/video/upload/v1698260370/Output/billing_and_insurance_ba77n4.mp4", - "medical_records": "https://res.cloudinary.com/dam12ojlp/video/upload/v1698260377/Output/medical_records_akgmlx.mp4", - "emergency_services": "https://res.cloudinary.com/dam12ojlp/video/upload/v1698260369/Output/emergency_services_et3eyl.mp4", - "covid19_information": "https://res.cloudinary.com/dam12ojlp/video/upload/v1698260371/Output/covid19_information_orlff0.mp4", - "feedback_and_complaints": "https://res.cloudinary.com/dam12ojlp/video/upload/v1698260371/Output/feedback_and_complaints_i3ftal.mp4", - "thank_you": "https://res.cloudinary.com/dam12ojlp/video/upload/v1698260374/Output/thank_you_sgx29d.mp4", - "general_information": "https://res.cloudinary.com/dam12ojlp/video/upload/v1698260375/Output/general_information_nz2zx1.mp4" - - - }''' - - video_urls = { - - "greet": "/home/knight/ChatBot_UI/video/greet.mp4", - "appointment_booking": "/home/knight/ChatBot_UI/video/appointment_booking.mp4", - "doctor_information": "/home/knight/ChatBot_UI/video/doctor_information.mp4", - "department_information": "/home/knight/Python_Prog/UI/video/department_information.mp4", - "visiting_hours": "/home/knight/ChatBot_UI/video/visiting_hours.mp4", - "location_and_directions": "/home/knight/ChatBot_UI/video/location_and_directions.mp4", - "billing_and_insurance": "/home/knight/ChatBot_UI/video/billing_and_insurance.mp4", - "medical_records": "/home/knight/ChatBot_UI/video/medical_records.mp4", - "emergency_services": "/home/knight/ChatBot_UI/video/emergency_services.mp4", - "covid19_information": "/home/knight/ChatBot_UI/video/covid19_information.mp4", - "feedback_and_complaints": "/home/knight/ChatBot_UI/video/feedback_and_complaints.mp4", - "thank_you": "/home/knight/ChatBot_UI/video/thank_you.mp4", - "general_information": "/home/knight/ChatBot_UI/video/general_information.mp4" - - - } - - return video_urls.get(intent, "Video not available for this intent") - - - -class HospitalChatbotGUI(QMainWindow): - def __init__(self): - super().__init__() - - - self.chatbot = HospitalChatbot() - - self.setWindowTitle("Hospital Chatbot") - self.setGeometry(100, 100, 800, 600) - self.central_widget = QWidget(self) - - self.setCentralWidget(self.central_widget) - self.layout = QVBoxLayout() - - - - self.chatbox = QTextEdit(self) - self.layout.addWidget(self.chatbox) - self.chatbox.setFixedWidth(800) - self.chatbox.setFixedHeight(40) - - #self.submit_button = QPushButton("Submit", self) - #self.submit_button.clicked.connect(self.get_response) - #self.layout.addWidget(self.submit_button) - - self.speak_button = QPushButton("Speak", self) - self.speak_button.clicked.connect(self.audio_to_text) - self.layout.addWidget(self.speak_button) - - - self.video_label = QLabel("Video Output:", self) - self.layout.addWidget(self.video_label) - - self.video_url_label = QLabel("Video URL: ", self) - self.layout.addWidget(self.video_url_label) - - self.video_widget = QVideoWidget(self) - - self.layout.addWidget(self.video_widget) - #self.video_widget.setFixedWidth(459) - - - - self.central_widget.setLayout(self.layout) - - self.media_player = QMediaPlayer() - self.media_player.setVideoOutput(self.video_widget) - self.media_player.mediaStatusChanged.connect(self.handle_media_status_changed) - - - self.sample_video_url = "/home/knight/ChatBot_UI/Friendly_new.mp4" - - self.answer_video_url = None # URL for the answer video - self.play_video(self.sample_video_url) - - - - - - def audio_to_text(self): - - self.chatbox.setPlainText("Listening ...") - - init_rec = sr.Recognizer() - print("Let's speak!!") - with sr.Microphone(3) as source: - audio_data = init_rec.record(source, duration=2) - print("Recognizing your text.............") - text = init_rec.recognize_google(audio_data) - self.chatbox.setPlainText(text.strip()) - self.get_response(text.strip()) - print(text) - - - - def get_response(self,text): - print("Response Text: ",text) - #user_input = self.chatbox.toPlainText().strip() - user_input = text.strip() - intent = self.chatbot.match_intent(user_input) - if intent: - video_url = self.chatbot.get_video_response(intent) - if video_url: - self.video_url_label.setText(f"Video URL: {video_url}") - - self.play_video(video_url) - return - - #response = self.chatbot.get_response(user_input) - - self.chatbox.clear() - #self.display_response(response) - self.play_video("/home/knight/ChatBot_UI/Friendly_new.mp4") - - def play_video(self, video_url): - - media_content = QMediaContent(QUrl.fromLocalFile(video_url)) - self.media_player.setMedia(media_content) - self.media_player.play() - - - def handle_media_status_changed(self, status): - if status == QMediaPlayer.EndOfMedia: - print("Video finished playing.") - self.play_video("/home/knight/ChatBot_UI/Friendly_new.mp4") - - - - def display_response(self, response): - self.webview.setHtml(response) - - -if __name__ == '__main__': - app = QApplication(sys.argv) - window = HospitalChatbotGUI() - window.show() - - sys.exit(app.exec_()) \ No newline at end of file