import streamlit as st # Title of the app st.title("Enhanced Q&A Chatbot With OpenAI") # Sidebar for settings st.sidebar.title("Settings") api_key = st.sidebar.text_input("Enter your OpenAI API Key:", type="password") # Select the OpenAI model engine = st.sidebar.selectbox("Select OpenAI model", ["gpt-4", "gpt-4-turbo", "gpt-4o"]) # Adjust response parameters temperature = st.sidebar.slider("Temperature", min_value=0.0, max_value=1.0, value=0.7) max_tokens = st.sidebar.slider("Max Tokens", min_value=50, max_value=300, value=150) # Main interface for user input st.write("Go ahead and ask any question:") user_input = st.text_input("You:") # Function to generate responses def generate_response(user_input, api_key, engine, temperature, max_tokens): import openai openai.api_key = api_key response = openai.Completion.create( engine=engine, prompt=user_input, temperature=temperature, max_tokens=max_tokens, ) return response.choices[0].text.strip() # Display response if user_input and api_key: try: response = generate_response(user_input, api_key, engine, temperature, max_tokens) st.write(response) except Exception as e: st.error(f"Error: {e}") elif user_input: st.warning("Please enter the OpenAI API Key in the sidebar.") else: st.write("Please provide user input.")