AlineIoste commited on
Commit
a38ceac
·
verified ·
1 Parent(s): 593f2ed

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +91 -0
app.py ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import sys
2
+ import os
3
+ import streamlit as st
4
+ import inspect
5
+ from SynapseControl import Initial_Memory, Synapses_Active, ExecuteModel
6
+ import keys as key
7
+
8
+ st.title("Neurocognitive Structures")
9
+ new_avatar= 'logo_avatar.png'
10
+ new_user = 'logo_user.png'
11
+
12
+ def CienciaComputacao_chat():
13
+ st.session_state.clear()
14
+ st.session_state["knowleadge_base"] = 'KB_geral.txt'
15
+ st.session_state["persona"] = 'Como um Medico americano'
16
+ st.session_state["language"] = "Inglês"
17
+ st.session_state["human_contact"] = " no telefone do consultório disponivel no site www.drLecun.com.br "
18
+ st.session_state["model"] = "gpt-4o-mini" # gpt-4o-mini or sabia-3 gpt-3.5-turbo
19
+ st.session_state["company"] = "OpenAI" # OpenAI OR MARITACA
20
+ st.session_state["max_token"] = 500
21
+ st.session_state["api_key"] = key.OPEN_API_KEY
22
+
23
+
24
+ # Colocar os botões na barra lateral
25
+ with st.sidebar:
26
+ #st.image('IME.png', caption='Programa de Pós-graduação - IME')
27
+ st.write("Escolha o tipo de chat:")
28
+ if st.button("Ciência da Computação", on_click=CienciaComputacao_chat):
29
+ st.write("O chat do Programa de Pós-graduação de Ciência da Computação iniciado.")
30
+
31
+ if st.button("Resetar sessão"):
32
+ st.session_state.clear()
33
+ st.write("Sessão resetada.")
34
+
35
+ if "knowleadge_base" not in st.session_state:
36
+ st.session_state["knowleadge_base"] = ""
37
+
38
+ if st.session_state["knowleadge_base"] != "":
39
+
40
+ # Inicialize st.session_state.messages se ainda não estiver definido
41
+ if 'messages' not in st.session_state:
42
+ st.session_state.messages = []
43
+ st.session_state.messages = Initial_Memory(st.session_state.messages,
44
+ st.session_state["knowleadge_base"],
45
+ st.session_state["persona"],
46
+ st.session_state["language"],
47
+ st.session_state["human_contact"])
48
+
49
+
50
+
51
+
52
+
53
+ # Função para exibir mensagens ao usuário
54
+ def display_messages(messages):
55
+ ava= ''
56
+ for message in messages:
57
+ if message["role"] != "system": # Exibe apenas mensagens não-sistêmicas
58
+ if message["role"]=="user":
59
+ ava=new_avatar
60
+ else:
61
+ ava=new_user
62
+ with st.chat_message(message["role"],avatar=ava):
63
+ st.markdown((message["content"]))
64
+
65
+
66
+ # Exibir mensagens ao usuário
67
+ display_messages(st.session_state.messages)
68
+
69
+
70
+ #st.write(st.session_state.messages)
71
+ # Capturar entrada do usuário
72
+ if prompt := st.chat_input("Como posso te ajudar?"):
73
+ acao = Synapses_Active(prompt, st.session_state.messages)
74
+ st.session_state.messages = acao
75
+ #st.markdown(acao) #retirar depois
76
+ with st.chat_message("user",avatar=new_user):
77
+ st.markdown(prompt)
78
+
79
+ # Simular a resposta do assistente
80
+ with st.chat_message("assistant", avatar=new_avatar):
81
+ #st.image("new_avatar_image.png", width=50)
82
+ stream = ExecuteModel(st.session_state["model"],
83
+ st.session_state["company"],
84
+ st.session_state["max_token"],
85
+ st.session_state["api_key"],
86
+ st.session_state.messages
87
+ )
88
+ response = st.write_stream(stream)
89
+ st.session_state.messages.append({"role": "assistant", "content": response})
90
+ if "END" in response:
91
+ st.session_state.clear()