Spaces:
Sleeping
Sleeping
| import sys | |
| import os | |
| from openai import OpenAI | |
| import streamlit as st | |
| import inspect | |
| # Diretório onde os pacotes Python são instalados | |
| package_dir = '/usr/local/lib/python3.10/site-packages' | |
| # Caminho absoluto para o diretório neurocognitiveagent | |
| neurocognitiveagent_dir = os.path.join(package_dir, 'neurocognitiveagent') | |
| # Adiciona o diretório com os arquivos compilados ao sys.path | |
| sys.path.insert(0, neurocognitiveagent_dir) | |
| # Agora você pode importar seus módulos compilados | |
| from neurocognitiveagent.SynapseControl import Initial_Memory, ExecuteModel, Synapses_Active | |
| import keys as key | |
| st.title("Neurocognitive Structures") | |
| def CienciaComputacao_chat(): | |
| st.session_state.clear() | |
| st.session_state["knowleadge_base"] = 'KB_geral.txt' | |
| st.session_state["persona"] = 'Como um Medico americano' | |
| st.session_state["language"] = "Inglês" | |
| st.session_state["human_contact"] = " no telefone do consultório disponivel no site www.drLecun.com.br " | |
| st.session_state["model"] = "gpt-4o-mini" # gpt-4o-mini or sabia-3 gpt-3.5-turbo | |
| st.session_state["company"] = "OpenAI" # OpenAI OR MARITACA | |
| st.session_state["max_token"] = 500 | |
| st.session_state["api_key"] = key.OPEN_API_KEY | |
| # Colocar os botões na barra lateral | |
| with st.sidebar: | |
| #st.image('IME.png', caption='Programa de Pós-graduação - IME') | |
| st.write("Escolha o tipo de chat:") | |
| if st.button("Ciência da Computação", on_click=CienciaComputacao_chat): | |
| st.write("O chat do Programa de Pós-graduação de Ciência da Computação iniciado.") | |
| if st.button("Resetar sessão"): | |
| st.session_state.clear() | |
| st.write("Sessão resetada.") | |
| if "knowleadge_base" not in st.session_state: | |
| st.session_state["knowleadge_base"] = "" | |
| if st.session_state["knowleadge_base"] != "": | |
| # Inicialize st.session_state.messages se ainda não estiver definido | |
| if 'messages' not in st.session_state: | |
| st.session_state.messages = [] | |
| st.session_state.messages = Initial_Memory(st.session_state.messages, | |
| st.session_state["knowleadge_base"], | |
| st.session_state["persona"], | |
| st.session_state["language"], | |
| st.session_state["human_contact"]) | |
| # Função para exibir mensagens ao usuário | |
| def display_messages(messages): | |
| for message in messages: | |
| if message["role"] != "system": # Exibe apenas mensagens não-sistêmicas | |
| if message["role"]=="user": | |
| else: | |
| with st.chat_message(message["role"]): | |
| st.markdown((message["content"])) | |
| # Exibir mensagens ao usuário | |
| display_messages(st.session_state.messages) | |
| #st.write(st.session_state.messages) | |
| # Capturar entrada do usuário | |
| if prompt := st.chat_input("Como posso te ajudar?"): | |
| acao = Synapses_Active(prompt, st.session_state.messages) | |
| st.session_state.messages = acao | |
| #st.markdown(acao) #retirar depois | |
| with st.chat_message("user"): | |
| st.markdown(prompt) | |
| # Simular a resposta do assistente | |
| with st.chat_message("assistant"): | |
| stream = ExecuteModel(st.session_state["model"], | |
| st.session_state["company"], | |
| st.session_state["max_token"], | |
| st.session_state["api_key"], | |
| st.session_state.messages | |
| ) | |
| response = st.write_stream(stream) | |
| st.session_state.messages.append({"role": "assistant", "content": response}) | |
| if "END" in response: | |
| st.session_state.clear() |