import streamlit as st from streamlit_chat import message from utils import get_initial_message, get_chatgpt_response, update_chat import os from dotenv import load_dotenv load_dotenv() import openai openai.api_key = os.getenv('openai_key') st.title("ChileanGPT 2.0: An Experimental Chilean AI Language Model") st.subheader("Leveraging the Power of GPT-Enhanced for Natural Chilean Spanish Dialogues") hide_footer_style = """ """ st.markdown(hide_footer_style, unsafe_allow_html=True) if 'generated' not in st.session_state: st.session_state['generated'] = [] if 'past' not in st.session_state: st.session_state['past'] = [] if 'interaction_count' not in st.session_state: st.session_state['interaction_count'] = 0 if 'messages' not in st.session_state: st.session_state['messages'] = get_initial_message() def generate_response(_input_user): if _input_user: with st.spinner("pensando..."): st.session_state['interaction_count'] += 1 messages = st.session_state['messages'] messages = update_chat(messages, "user", _input_user, st.session_state['interaction_count']) # st.write("Before making the API call") # st.write(messages) response = get_chatgpt_response(messages,"gpt-4") messages = update_chat(messages, "assistant", response, st.session_state['interaction_count']) return response # container for chat history response_container = st.container() # container for text box container = st.container() with container: with st.form("chat_input", clear_on_submit=True): a, b = st.columns([4, 1]) user_input = a.text_input( label="Mensaje:", placeholder="Escribe algo...", label_visibility="collapsed", ) submit_button = b.form_submit_button("Send", use_container_width=True) if user_input or submit_button: output = generate_response(user_input) st.session_state.generated.append(output) st.session_state.past.append(user_input) if st.session_state['generated']: with response_container: for i in range(len(st.session_state['generated'])): message(st.session_state['past'][i], is_user=True, key=str(i) + '_user') message(st.session_state["generated"][i], key=str(i)) # with st.expander("session_state"): # st.write(st.session_state) # with st.expander("Mensajes"): # st.write(messages)