From 1247ddfb79eb897ff677dd96bf270440496ba07e Mon Sep 17 00:00:00 2001 From: sjekic Date: Tue, 4 Mar 2025 22:42:02 +0100 Subject: [PATCH 1/3] Update cometllm.py --- cometllm.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/cometllm.py b/cometllm.py index edbe588..2d4bfd4 100644 --- a/cometllm.py +++ b/cometllm.py @@ -3,18 +3,22 @@ import streamlit as st import comet_llm from openai import OpenAI +from dotenv import load_dotenv -#used the medical chatbot AI advice list from an article on Medium, CometML and OpenAI (turbo-3.5) APIs but I keep getting 429 error code +load dotenv +OPENAI_API_KEY = os.getenv("OPENAI_KEY") +COMET_API_KEY = os.getenv("COMET_API_KEY") + +#used the medical chatbot AI advice list from an article on Medium, CometML and OpenAI (turbo-3.5) APIs st.title("AI-Powered Healthcare Chatbot") st.write("Ask any medical question, our AI doctor is here to help!") -comet_llm.init( - api_key=os.getenv("API_KEY"), - project="Doc_bot_openai" -) +# Initialize CometML +comet_llm.init(api_key=COMET_API_KEY, project="Doc_bot_openai") -client = OpenAI(api_key=os.getenv("OPENAI_KEY")) +# Initialize OpenAI Client +client = OpenAI(api_key=OPENAI_API_KEY) advice_list = ''' # Medical Advice List From 1b5bb77a7e7c75d8e15548d967caf1b8537d49c7 Mon Sep 17 00:00:00 2001 From: sjekic Date: Tue, 4 Mar 2025 22:43:50 +0100 Subject: [PATCH 2/3] Update cometllm.py --- cometllm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cometllm.py b/cometllm.py index 2d4bfd4..64877d6 100644 --- a/cometllm.py +++ b/cometllm.py @@ -5,7 +5,7 @@ from openai import OpenAI from dotenv import load_dotenv -load dotenv +load dotenv() OPENAI_API_KEY = os.getenv("OPENAI_KEY") COMET_API_KEY = os.getenv("COMET_API_KEY") From 536a9a142126ed5503b017a9d1aea6151f976d40 Mon Sep 17 00:00:00 2001 From: sjekic Date: Tue, 4 Mar 2025 23:02:45 +0100 Subject: [PATCH 3/3] Add files via upload --- medicalchatbot.py | 101 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 medicalchatbot.py diff --git a/medicalchatbot.py b/medicalchatbot.py new file mode 100644 index 0000000..1d8f18d --- /dev/null +++ b/medicalchatbot.py @@ -0,0 +1,101 @@ +import os +import time +import streamlit as st +import comet_llm +from openai import OpenAI +from dotenv import load_dotenv + +load_dotenv() +OPENAI_API_KEY = os.getenv("OPENAI_KEY") +COMET_API_KEY = os.getenv("COMET_API_KEY") + +#used the medical chatbot AI advice list from an article on Medium, CometML and OpenAI (turbo-3.5) APIs + +st.title("AI-Powered Healthcare Chatbot") +st.write("Ask any medical question, our AI doctor is here to help!") + +# Initialize CometML +comet_llm.init(api_key=COMET_API_KEY, project="Doc_bot_openai") + +# Initialize OpenAI Client +client = OpenAI(api_key=OPENAI_API_KEY) + +advice_list = ''' +# Medical Advice List + +## General Health: +- Healthy Diet: Include a variety of fruits and vegetables in your diet. +- Regular Exercise: Aim for at least 30 minutes of moderate exercise most days of the week. +- Adequate Sleep: Ensure you get 7-9 hours of sleep per night for overall well-being. + +## Common Ailments: +- Cold and Flu Remedies: Stay hydrated, get plenty of rest, and consider over-the-counter cold remedies. +- Headache Relief: Drink water, rest in a quiet room, and consider pain relievers. + +## Emergency Situations: +- First Aid for Burns: Run cold water over the burn, cover with a clean cloth, and seek medical attention. +- CPR Guidelines: Call for help, start chest compressions, and follow emergency protocols. +''' + +context_doctor = [ + {'role': 'system', 'content': f""" + You are DoctorBot, an AI assistant providing medical advice. + + Be empathetic and informative in your responses. + + The Current Medical Advice List: + ```{advice_list}``` + """} +] + +if "messages" not in st.session_state: + st.session_state.messages = [] + +def format_message(role, content): + if role == "user": + return f'
User:
{content}
' + else: + return f'
DoctorBot:
{content}
' + + +for message in st.session_state.messages: + with st.chat_message(message["role"]): + st.write(message["content"]) + +user_input = st.chat_input("Ask a health-related question...") + +if user_input: + st.session_state.messages.append({"role": "user", "content": user_input}) + context_doctor.append({'role': 'user', 'content': user_input}) + + start_time = time.time() + + chat_completion = client.chat.completions.create( + messages=context_doctor, + model="gpt-3.5-turbo" + ) + response = chat_completion.choices[0].message.content + duration = time.time() - start_time + + with st.spinner("DoctorBot is thinking... 🤔"): + start_time = time.time() + chat_completion = client.chat.completions.create( + model="gpt-3.5-turbo", + messages=context_doctor + ) + response = chat_completion.choices[0].message.content + duration = time.time() - start_time + + + comet_llm.log_prompt( + prompt=user_input, + output=response, + duration=duration, + metadata={"context": context_doctor, "advice_list": advice_list} + ) + + st.session_state.messages.append({"role": "assistant", "content": response}) + context_doctor.append({'role': 'assistant', 'content': response}) + + with st.chat_message("assistant"): + st.write(response)