File size: 1,745 Bytes
712b371
75dd0b0
712b371
75dd0b0
712b371
 
75dd0b0
f8e9109
4f84c00
712b371
e9634bc
712b371
 
7ed7ce5
712b371
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2d40afe
712b371
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from openai import OpenAI
import streamlit as st
import os  # Import the os module

# Fetch the API key from an environment variable
openai_api_key = os.getenv("OPENAI_API_KEY")

st.title("")

# Select model using a dropdown
model_choice = st.selectbox('Choose a model:', ['gpt-4-turbo','gpt-3.5-turbo', 'gpt-3.5-turbo-0125','gpt-3.5-turbo-1106','gpt-3.5-turbo-0613','gpt-3.5-turbo-16k-0613','gpt-3.5-turbo-16k','gpt-4-turbo-2024-04-09','gpt-4-turbo-preview', 'gpt-4-0125-preview','gpt-4-1106-preview','gpt-4-0613'])

# Initialize session state for storing messages if it doesn't already exist
if "messages" not in st.session_state:
    st.session_state["messages"] = [{"role": "assistant", "content": "How can I help you?"}]

# Display all previous messages
for msg in st.session_state.messages:
    st.chat_message(msg["role"]).write(msg["content"])


# Input for new prompts
prompt = st.chat_input("Enter your question:")
if prompt:
    if not openai_api_key:
        st.error("No OpenAI API key found. Please set the OPENAI_API_KEY environment variable.")
        st.stop()

    # Append the new user message to session state
    st.session_state.messages.append({"role": "user", "content": prompt})
    st.chat_message("user").write(prompt)

    # Use a spinner to indicate that the model is generating a response
    with st.spinner('PromptingAI is Thinking...'):
        client = OpenAI(api_key=openai_api_key)
        response = client.chat.completions.create(model=model_choice, messages=st.session_state.messages)
        msg = response.choices[0].message.content

    # Append and display the assistant's response
    st.session_state.messages.append({"role": "assistant", "content": msg})
    st.chat_message("assistant").write(msg)