import streamlit as st import openai import os openai.api_key = os.getenv("OPENAI_KEY") def generate_response( prompt, temperature=0.7, max_tokens=256, top_p=0.9, n=2, stop=None, frequency_penalty=0.9, presence_penalty=0.9, chat_history=None, ): if chat_history is None: chat_history = [] messages = [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": prompt}, ] messages.extend(chat_history) response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=messages, temperature=temperature, max_tokens=max_tokens, top_p=top_p, n=n, stop=stop, frequency_penalty=frequency_penalty, presence_penalty=presence_penalty, ) return response["choices"][0]["message"]["content"] logo1 = "https://www.ramanpre.com/_vercel/image?url=_astro%2Fheadshot.Bg7_IgN-.png&w=750&q=100" st.set_page_config( page_title="Health Care Personal Assistant | Data Admirers", page_icon=logo1, layout="wide", ) st.write("# Personal Chatbot for all your health need") st.sidebar.markdown("# Model Parameters") temperature = st.sidebar.slider("Temperature", 0.0, 1.0, 0.7, 0.1) max_tokens = st.sidebar.number_input("Max Tokens", 50, 500, 256, step=50) top_p = st.sidebar.slider("Top P", 0.1, 1.0, 0.9, 0.1) n = st.sidebar.number_input("N", 1, 5, 2, step=1) stop = st.sidebar.text_input("Stop", "") frequency_penalty = st.sidebar.slider("Frequency Penalty", 0.0, 1.0, 0.9, 0.1) presence_penalty = st.sidebar.slider("Presence Penalty", 0.0, 1.0, 0.9, 0.1) user_input = st.text_area("You:", "", key="user_input") generate_button = st.button("Generate Response") messages = [] if user_input.strip() != "": messages.append({"role": "user", "content": user_input}) response = generate_response( user_input, temperature, max_tokens, top_p, n, stop, frequency_penalty, presence_penalty, ) messages.append({"role": "assistant", "content": response}) st.subheader("Chat History") for message in messages: if message["role"] == "user": st.text_area( "You:", value=message["content"], height=50, max_chars=200, key="user_history", disabled=True, ) else: st.text_area( "Jarvis:", value=message["content"], height=500, key="chatbot_history" ) st.markdown( """ """, unsafe_allow_html=True, )