Spaces:
Running
Running
File size: 1,876 Bytes
225f551 0929d70 225f551 0929d70 225f551 0929d70 225f551 990f430 225f551 0929d70 225f551 0929d70 225f551 0929d70 |
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 |
import streamlit as st
import openai
import dotenv
import os
def carregar_configuracoes():
dotenv.load_dotenv()
return os.environ['OPENAI_API_KEY']
def retorna_resposta_modelo(mensagens,
modelo='gpt-4o-mini',
temperatura=0,
stream=False):
openai.api_key = carregar_configuracoes()
response = openai.ChatCompletion.create(
model=modelo,
messages=mensagens,
temperature=temperatura,
stream=stream
)
return response
def pagina_principal():
if not 'mensagens' in st.session_state:
st.session_state.mensagens = []
mensagens = st.session_state['mensagens']
st.header('🤖 Chatbot', divider=True)
for mensagem in mensagens:
chat = st.chat_message(mensagem['role'])
chat.markdown(mensagem['content'])
prompt = st.chat_input('Fale com o chat')
if prompt:
nova_mensagem = {'role': 'user',
'content': prompt}
chat = st.chat_message(nova_mensagem['role'])
chat.markdown(nova_mensagem['content'])
mensagens.append(nova_mensagem)
chat = st.chat_message('assistant')
placeholder = chat.empty()
placeholder.markdown("▌")
resposta_completa = ''
respostas = retorna_resposta_modelo(mensagens,
stream=True)
for resposta in respostas:
resposta_completa += resposta.choices[0].delta.get('content', '')
placeholder.markdown(resposta_completa + "▌")
placeholder.markdown(resposta_completa)
nova_mensagem = {'role': 'assistant',
'content': resposta_completa}
mensagens.append(nova_mensagem)
st.session_state['mensagens'] = mensagens
pagina_principal()
|