Spaces:
Running
Running
File size: 2,469 Bytes
e7ef0c0 b7ae72f e7ef0c0 b7ae72f e7ef0c0 b7ae72f f79eaae 3eb7ca4 b7ce9ea 7460231 e7ef0c0 b7ae72f |
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
import streamlit as st
from streamlit_chat import message
from chat_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.set_page_config(
page_title="ChileanGPT 2.0",
page_icon="🤖",
layout="centered",
initial_sidebar_state="auto",
)
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 = """
<style>
.main footer {visibility: hidden;}
</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'])
response = get_chatgpt_response(messages, "gpt-4o-2024-08-06")
messages = update_chat(messages, "assistant", response, st.session_state['interaction_count'])
return response
response_container = st.container()
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("Enviar", 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))
|