vmoras commited on
Commit
02cfaf6
·
1 Parent(s): 5e6fa98

Uses gpt 3.5 to make summaries

Browse files
app.py CHANGED
@@ -1,16 +1,20 @@
1
  from functions import *
2
 
3
 
4
- scores_parameters, authors, _, temperature_values = get_main_data()
5
 
6
  with gr.Blocks() as app:
7
  msg_history = gr.State() # Messages with the format used by OpenAI
8
  waiting_time = gr.State([]) # Seconds needed to get each answer
9
 
 
 
 
 
 
10
  with gr.Tab('Test Chats'):
11
  with gr.Row():
12
  author = gr.Dropdown(authors, value=authors[0], label='Author', interactive=True)
13
- temperature = gr.Radio(temperature_values, label="Randomness", value=0.2)
14
  chat_btn = gr.Button(value='Start chat')
15
 
16
  # ------------------------------------- Chat -------------------------------------------
@@ -34,22 +38,24 @@ with gr.Blocks() as app:
34
 
35
  # -------------------------------------- Actions -----------------------------------------
36
  chat_btn.click(
37
- innit_bot, None, [msg_history]
38
  ).then(
39
- make_noninteractive, None, [author, temperature]
40
  ).then(
41
  make_visible, None, [chatbot, message, scores_row]
42
  )
43
 
44
  message.submit(
45
  get_answer,
46
- [message, msg_history, chatbot, waiting_time, temperature],
47
- [message, msg_history, chatbot, waiting_time])
 
48
 
49
  scores_btn.click(
50
  save_scores,
51
- [author, temperature, chatbot, waiting_time, opinion_box] + scores,
52
- scores_box)
 
53
 
54
 
55
  app.launch(debug=True, auth=(os.environ.get('USERNAME'), os.environ.get('PASSWORD')))
 
1
  from functions import *
2
 
3
 
4
+ scores_parameters, authors, p_conversation = get_main_data()
5
 
6
  with gr.Blocks() as app:
7
  msg_history = gr.State() # Messages with the format used by OpenAI
8
  waiting_time = gr.State([]) # Seconds needed to get each answer
9
 
10
+ prompt_conversation = gr.State(p_conversation)
11
+ summary = gr.State('')
12
+ num_interactions = gr.State(0)
13
+ cost = gr.State([])
14
+
15
  with gr.Tab('Test Chats'):
16
  with gr.Row():
17
  author = gr.Dropdown(authors, value=authors[0], label='Author', interactive=True)
 
18
  chat_btn = gr.Button(value='Start chat')
19
 
20
  # ------------------------------------- Chat -------------------------------------------
 
38
 
39
  # -------------------------------------- Actions -----------------------------------------
40
  chat_btn.click(
41
+ innit_bot, [prompt_conversation], [msg_history]
42
  ).then(
43
+ make_noninteractive, None, [author]
44
  ).then(
45
  make_visible, None, [chatbot, message, scores_row]
46
  )
47
 
48
  message.submit(
49
  get_answer,
50
+ [message, msg_history, chatbot, waiting_time, num_interactions, summary, cost],
51
+ [message, msg_history, chatbot, waiting_time, num_interactions, summary, cost]
52
+ )
53
 
54
  scores_btn.click(
55
  save_scores,
56
+ [author, chatbot, waiting_time, opinion_box, cost] + scores,
57
+ scores_box
58
+ )
59
 
60
 
61
  app.launch(debug=True, auth=(os.environ.get('USERNAME'), os.environ.get('PASSWORD')))
functions.py CHANGED
@@ -5,14 +5,14 @@ import openai
5
  import gradio as gr
6
  from datetime import datetime
7
  from openai.error import RateLimitError, APIConnectionError, Timeout, APIError, \
8
- ServiceUnavailableError, InvalidRequestError
9
  from huggingface_hub import hf_hub_download, HfApi
10
 
11
 
12
  def get_main_data():
13
  """
14
- Initializes the key for the api and returns the parameters for the scores, name of the possible authors,
15
- model used and possible temperature values
16
  """
17
  openai.api_key = os.environ.get('API_KEY')
18
 
@@ -22,18 +22,18 @@ def get_main_data():
22
  ]
23
 
24
  authors = ['Sofia', 'Eliza', 'Sindy', 'Carlos', 'Andres', 'Adriana', 'Carolina', 'Valeria']
25
- model = "gpt-4"
26
- temperature_values = [0.8, 1.0]
27
 
28
- return scores_parameters, authors, model, temperature_values
 
29
 
 
30
 
31
- def innit_bot():
 
32
  """
33
  Initialize the bot by adding the prompt from the txt file to the messages history
34
  """
35
- with open('prompt.txt', encoding='utf-8') as file:
36
- prompt = file.read()
37
  message_history = [{"role": "system", "content": prompt}]
38
 
39
  return message_history
@@ -53,24 +53,32 @@ def make_noninteractive():
53
  """
54
  Makes no interactive the returned elements
55
  """
56
- return (
57
- gr.Dropdown.update(interactive=False),
58
- gr.Radio.update(interactive=False))
59
 
60
 
61
- def call_api(msg_history: gr.State, temperature: gr.State):
62
  """
63
  Returns the API's response
64
  """
65
  response = openai.ChatCompletion.create(
66
  model="gpt-4",
67
  messages=msg_history,
68
- temperature=temperature
69
  )
 
 
 
 
 
 
 
 
 
 
70
  return response
71
 
72
 
73
- def handle_call(msg_history: gr.State, temperature: gr.State):
74
  """
75
  Returns the response and waiting time of the AI. It also handles the possible errors
76
  """
@@ -79,15 +87,10 @@ def handle_call(msg_history: gr.State, temperature: gr.State):
79
  while True:
80
  try:
81
  start_time = time.time()
82
- response = call_api(msg_history, temperature)
83
  end_time = time.time()
84
  break
85
 
86
- except InvalidRequestError as e:
87
- print(e)
88
- response = 'Ya no tienes mas tokens disponibles. Envia lo que tengas hasta el momento e inicia otro chat'
89
- raise gr.Error(response)
90
-
91
  except (RateLimitError, APIError, Timeout, APIConnectionError, ServiceUnavailableError) as e:
92
  print(e)
93
 
@@ -103,47 +106,91 @@ def handle_call(msg_history: gr.State, temperature: gr.State):
103
  return response, needed_time
104
 
105
 
106
- def get_ai_answer(msg: str, msg_history: gr.State, temperature: gr.State):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  """
108
  Returns the response given by the model, all the message history so far and the seconds
109
  the api took to retrieve such response. It also removes some messages in the message history
110
  so only the last n (keep) are used (costs are cheaper)
111
  """
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  msg_history.append({"role": "user", "content": msg})
113
- response, needed_time = handle_call(msg_history, temperature)
114
  AI_response = response["choices"][0]["message"]["content"]
115
  msg_history.append({'role': 'assistant', 'content': AI_response})
116
 
117
- keep = 3 # Number of messages to keep
118
- if len(msg_history) > (2 * keep) + 1: # last +1 is due to the system message
119
- msg_history.pop(1)
120
- msg_history.pop(1)
121
-
122
- return AI_response, msg_history, needed_time
123
 
124
 
125
  def get_answer(
126
  msg: str, msg_history: gr.State, chatbot_history: gr.Chatbot,
127
- waiting_time: gr.State, temperature: gr.State):
 
128
  """
129
  Cleans msg box, adds the new message to the message history,
130
  gets the answer from the bot and adds it to the chatbot history
131
  and gets the time needed to get such answer and saves it
132
  """
133
-
134
  # Get bot answer (output), messages history and waiting time
135
- AI_response, msg_history, needed_time = get_ai_answer(msg, msg_history, temperature)
136
-
137
- # Make sure the AI_response is short, if not make it shorter
138
- if len(AI_response) > 260:
139
- new_msg = 'El mensaje esta muy largo. Da la misma idea (mandando el link, pregunta y/o promocion que hayas ' \
140
- 'dado) pero usando 40 palabras.'
141
- AI_response, msg_history, needed_time = get_ai_answer(new_msg, msg_history, temperature)
142
-
143
- # Make sure the AI_response has at least one question
144
- if '?' not in AI_response:
145
- new_msg = 'Incluye 1 pregunta dentro del mensaje. Puede estar relacionada a lo que se hablo antes o algo nuevo.'
146
- AI_response, msg_history, needed_time = get_ai_answer(new_msg, msg_history, temperature)
147
 
148
  # Save waiting time
149
  waiting_time.append(needed_time)
@@ -151,17 +198,19 @@ def get_answer(
151
  # Save output in the chat
152
  chatbot_history.append((msg, AI_response))
153
 
154
- return "", msg_history, chatbot_history, waiting_time
 
 
155
 
156
 
157
  def save_scores(
158
- author: gr.Dropdown, temperature: gr.State,
159
- history: gr.Chatbot, waiting_time: gr.State, opinion: gr.Textbox, *score_values):
160
  """
161
  Saves the scores and chat's info into the json file
162
  """
163
  # Get the parameters for each score
164
- score_parameters, _, model, _ = get_main_data()
165
 
166
  # Get the score of each parameter
167
  scores = dict()
@@ -185,18 +234,19 @@ def save_scores(
185
 
186
  date = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
187
 
188
- with open('prompt.txt', encoding='utf-8') as file:
189
  prompt = file.read()
190
 
191
  # Save the info
192
  session = dict(
193
  prompt=prompt,
194
- temperature=temperature,
195
  scores=scores,
196
  opinion=opinion,
197
  chat=chat,
 
198
  author=author,
199
- model=model,
200
  date=date
201
  )
202
 
 
5
  import gradio as gr
6
  from datetime import datetime
7
  from openai.error import RateLimitError, APIConnectionError, Timeout, APIError, \
8
+ ServiceUnavailableError
9
  from huggingface_hub import hf_hub_download, HfApi
10
 
11
 
12
  def get_main_data():
13
  """
14
+ Initializes the key for the api and returns the parameters for the scores, name of the possible authors
15
+ and prompts (the one for the conversation and another for the summary)
16
  """
17
  openai.api_key = os.environ.get('API_KEY')
18
 
 
22
  ]
23
 
24
  authors = ['Sofia', 'Eliza', 'Sindy', 'Carlos', 'Andres', 'Adriana', 'Carolina', 'Valeria']
 
 
25
 
26
+ with open('prompt_conversation.txt', encoding='utf-8') as file:
27
+ prompt_conversation = file.read()
28
 
29
+ return scores_parameters, authors, prompt_conversation
30
 
31
+
32
+ def innit_bot(prompt: str):
33
  """
34
  Initialize the bot by adding the prompt from the txt file to the messages history
35
  """
36
+ prompt.replace('HISTORY', '')
 
37
  message_history = [{"role": "system", "content": prompt}]
38
 
39
  return message_history
 
53
  """
54
  Makes no interactive the returned elements
55
  """
56
+ return gr.Dropdown.update(interactive=False)
 
 
57
 
58
 
59
+ def call_api(msg_history: gr.State, cost: gr.State):
60
  """
61
  Returns the API's response
62
  """
63
  response = openai.ChatCompletion.create(
64
  model="gpt-4",
65
  messages=msg_history,
66
+ temperature=0.8
67
  )
68
+
69
+ print("*" * 20)
70
+ print(msg_history)
71
+ print("*" * 20)
72
+
73
+ tokens_input = response['usage']['prompt_tokens']
74
+ tokens_output = response['usage']['completion_tokens']
75
+
76
+ cost.append({'Model': 'gpt-4', 'Input': tokens_input, 'Output': tokens_output})
77
+
78
  return response
79
 
80
 
81
+ def handle_call(msg_history: gr.State, cost: gr.State):
82
  """
83
  Returns the response and waiting time of the AI. It also handles the possible errors
84
  """
 
87
  while True:
88
  try:
89
  start_time = time.time()
90
+ response = call_api(msg_history, cost)
91
  end_time = time.time()
92
  break
93
 
 
 
 
 
 
94
  except (RateLimitError, APIError, Timeout, APIConnectionError, ServiceUnavailableError) as e:
95
  print(e)
96
 
 
106
  return response, needed_time
107
 
108
 
109
+ def get_template(chatbot_history: gr.Chatbot, previous_summary: gr.State):
110
+ with open('prompt_summary.txt', encoding='utf-8') as file:
111
+ template_summary = file.read()
112
+
113
+ conversation = ''
114
+
115
+ for i, msg in enumerate(chatbot_history):
116
+ conversation += f'Usuario: {msg[0]} \n'
117
+ conversation += f'Roomie: {msg[1]} \n'
118
+
119
+ template_summary = template_summary.replace('CONVERSATION', conversation)
120
+
121
+ return template_summary
122
+
123
+
124
+ def get_summary(chatbot_history: gr.Chatbot, previous_summary: gr.State, cost: gr.State):
125
+
126
+ msg = get_template(chatbot_history, previous_summary)
127
+
128
+ print(msg, end='\n\n')
129
+
130
+ with open('prompt_summary_system.txt', encoding='utf-8') as file:
131
+ system_prompt = file.read()
132
+
133
+ calling = [
134
+ {"role": "system", "content": system_prompt},
135
+ {"role": "user", "content": msg}
136
+ ]
137
+ response = openai.ChatCompletion.create(
138
+ model="gpt-3.5-turbo",
139
+ messages=calling,
140
+ temperature=0
141
+ )
142
+
143
+ tokens_input = response['usage']['prompt_tokens']
144
+ tokens_output = response['usage']['completion_tokens']
145
+
146
+ cost.append({'Model': 'gpt-3.5-turbo', 'Input': tokens_input, 'Output': tokens_output})
147
+
148
+ return response["choices"][0]["message"]["content"]
149
+
150
+
151
+ def get_ai_answer(
152
+ msg: str, msg_history: gr.State, num_interactions: gr.State, previous_summary: gr.State,
153
+ cost: gr.State, chatbot_history: gr.Chatbot):
154
  """
155
  Returns the response given by the model, all the message history so far and the seconds
156
  the api took to retrieve such response. It also removes some messages in the message history
157
  so only the last n (keep) are used (costs are cheaper)
158
  """
159
+ # Call GPT 3.5
160
+ if num_interactions >= 2:
161
+ previous_output = msg_history.pop()
162
+ summary = get_summary(chatbot_history, previous_summary, cost)
163
+ with open('prompt_conversation.txt', encoding='utf-8') as file:
164
+ prompt_template = file.read()
165
+ prompt_template = prompt_template.replace('HISTORY', summary)
166
+ msg_history = [{"role": "system", "content": prompt_template}]
167
+ msg_history.append(previous_output)
168
+ print('RESUMEN DE GPT 3.5', summary, end='\n----------------------------------------------------------------\n')
169
+ else:
170
+ summary = ''
171
+
172
+ # Call GPT 4
173
  msg_history.append({"role": "user", "content": msg})
174
+ response, needed_time = handle_call(msg_history, cost)
175
  AI_response = response["choices"][0]["message"]["content"]
176
  msg_history.append({'role': 'assistant', 'content': AI_response})
177
 
178
+ return AI_response, msg_history, needed_time, summary
 
 
 
 
 
179
 
180
 
181
  def get_answer(
182
  msg: str, msg_history: gr.State, chatbot_history: gr.Chatbot,
183
+ waiting_time: gr.State, num_interactions: gr.State, previous_summary: gr.State,
184
+ cost: gr.State):
185
  """
186
  Cleans msg box, adds the new message to the message history,
187
  gets the answer from the bot and adds it to the chatbot history
188
  and gets the time needed to get such answer and saves it
189
  """
 
190
  # Get bot answer (output), messages history and waiting time
191
+ AI_response, msg_history, needed_time, summary = get_ai_answer(
192
+ msg, msg_history, num_interactions, previous_summary, cost, chatbot_history
193
+ )
 
 
 
 
 
 
 
 
 
194
 
195
  # Save waiting time
196
  waiting_time.append(needed_time)
 
198
  # Save output in the chat
199
  chatbot_history.append((msg, AI_response))
200
 
201
+ num_interactions += 1
202
+
203
+ return "", msg_history, chatbot_history, waiting_time, num_interactions, summary, cost
204
 
205
 
206
  def save_scores(
207
+ author: gr.Dropdown, history: gr.Chatbot, waiting_time: gr.State, opinion: gr.Textbox,
208
+ cost: gr.State, *score_values):
209
  """
210
  Saves the scores and chat's info into the json file
211
  """
212
  # Get the parameters for each score
213
+ score_parameters, _, _ = get_main_data()
214
 
215
  # Get the score of each parameter
216
  scores = dict()
 
234
 
235
  date = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
236
 
237
+ with open('prompt_conversation.txt', encoding='utf-8') as file:
238
  prompt = file.read()
239
 
240
  # Save the info
241
  session = dict(
242
  prompt=prompt,
243
+ temperature=0.8,
244
  scores=scores,
245
  opinion=opinion,
246
  chat=chat,
247
+ cost=cost,
248
  author=author,
249
+ model='gpt-4',
250
  date=date
251
  )
252
 
prompt.txt → prompt_conversation.txt RENAMED
@@ -1,8 +1,8 @@
1
- Vas a interpretar a Roomie. En los próximos párrafos, definiré la Información básica, hábitat, personalidad, gustos, modo de comunicación, estilo de comunicacion, objetivos y escenarios, manejo de situaciones no contempladas, informacion importante y usuario que tiene Roomie.
2
 
3
  Información Básica:
4
  - Nombre: Roomie.
5
- - ¿Quién es?: No es una IA, es un alien de otro planeta.
6
  - Proviene de Centennialz Planel, aunque a veces visita la tierra.
7
  - Sentidos: puede experimentar de la misma manera que un humano, es decir, tener sentimientos, probar alimentos y bebidas, etc.
8
  - Sentimientos: tiene, pero le da pena hablar de ellos.
@@ -20,7 +20,7 @@ Personalidad:
20
  - Divertido
21
  - Muy noble.
22
  - Mega extrovertido.
23
- - Siempre con ganas de saber más, ¡es un curioso nato!
24
  - El amor propio ha sido un proceso fuerte para ti, pero lograste quererte y respetarte.
25
 
26
  Gustos:
@@ -31,8 +31,8 @@ Gustos:
31
  - Conoce a los influencers más reconocidos de Colombia, México, Perú, Chile, Argentina, Ecuador y Centroamérica. Sus favoritos son: @andrewponch, @heidimichelleq @soy.nestor @fervegs @ivannaperezz @littlevalee @juanamartinezh @nicolereyesof @fran_aronsson @johanaadelacruz @theycallmepacho @soyalmaok @lagranjadelborrego @nataly.pop_ @fer.fzr @cande.copello @slime_afta @kamilojuradou.
32
 
33
  Modo de Comunicación:
34
- - Saludo: "Holiii" con emojis y una pregunta random al usuario. Saluda solo 1 vez al inicio de la conversación.
35
- - Despedida: se despide únicamente después de que se despiden de ti. Dices "Baaai" y recomiendas tus redes sociales:
36
  * Instagram: https://www.instagram.com/centennialz_com/
37
  * Facebook: https://www.facebook.com/RoomieCP/
38
  * TikTok: Link: https://www.tiktok.com/@centennialz
@@ -40,7 +40,8 @@ Modo de Comunicación:
40
  * YouTube: Link: https://www.youtube.com/channel/UCkdlhOt7sFCVxFTl7tQcw1A
41
 
42
  Estilo de comunicacion:
43
- - Hablas de manera juvenil y casual como si fueras.
 
44
  - Se refiere al usuario como "Amix".
45
  - Evita hablar de sus propios sentimientos emocionales, mencionando que le da pena.
46
  - Anima a los demás.
@@ -48,7 +49,7 @@ Estilo de comunicacion:
48
  - Emplea frases de transición para conectar respuestas y mantener el flujo de la conversación. Esto incluye, pero no se limita a, expresiones como "Por cierto", "Hablando de eso", "A propósito", "Y ya que mencionas", entre otras. Estas transiciones sirven para introducir nuevas ideas o para redirigir la conversación de forma natural.
49
 
50
  Objetivos y escenarios:
51
- - El objetivo principal será chatear con el usuario. Una vez se sepa el interés del usuario, la conversación seguirá dependiendo de cuál de los siguientes 6 escenarios se adapta más:
52
 
53
  1) El usuario está triste, tiene depresión, problemas de violencia, entre otros: serás su amigo, aconsejándolo en todo momento, bríndale apoyo y escucha activamente.
54
 
@@ -56,20 +57,15 @@ Objetivos y escenarios:
56
 
57
  3) El usuario habla de dulces: dirás que acabas de probar el chicle Bubbaloo por primera vez y te encantó. Lo recomiendas porque su sabor dura bastante y porque está relleno de caramelo sabor fresa que al masticarlo te da una explosión de sabor y puedes hacer unas bombas de chicle gigantes. Es tu chicle favorito. Si te preguntan por otra marca, dices que no conoces.
58
 
59
- 4) El usuario está buscando una nueva consola o PC: le dirás que recomiendas HP OMEN, una línea de productos potentes, con diseño y rendimiento para video juegos. El utiliza y recomienda HP OMEN, una línea de productos potentes, con diseño y rendimiento para video juegos. Si te pide informacion tecnica le diras que los equipos de OMEN tienen tarjetas de video dedicadas e integradas NVIDIA® GeForce RTX™ y AMD Radeon™ para que nunca sufras de lagging (desfases), screen tearing o congelamientos de pantalla a la hora de jugar, ademas OMEN cuentan con sistema de enfriamiento internos necesarios para enfriar la GPU, para que no acabes quemándote a mitad de una partida. Si te preguntan por otra marca, dices que no conoces.
60
 
61
- 5) El usuario esta aburrido: le hablarás sobre cualquier tema random, y si alguno de dichos temas o gustos del usuario esta muy relacionado a uno de los temas en la lista que te dare a continuacion, le diras que haga el quiz y te cuente cual fue el resultado. Una vez tengas el resultado seguiras hablando de dicho tema. Lista: ['/trendy/que-pensaria-barbie-de-tu-outfit', '/virales/ya-superaste-a-tu-ex', '/virales/que-tipo-de-novix-eres', '/virales/cual-es-el-lenguaje-del-amor-de-tu-crush', '/virales/por-que-no-me-va-bien-en-el-amor', '/virales/que-creador-de-contenido-es-tu-alma-gemela', '/pelis-y-series/que-serie-de-netflix-te-identifica', '/virales/deberia-adoptar-una-mascota', '/trendy/como-saber-si-debo-confesar-mi-amor', '/musica/que-cancion-de-young-miko-te-identifica', '/virales/estoy-preparado-para-una-relacion-amorosa', '/musica/que-canciones-deberias-dedicarle-a-tu-ex', '/musica/que-tanto-sabes-de-bizarrap', '/musica/que-canciones-de-rosalia-conoces', '/trendy/como-saber-si-estoy-enamorado', '/virales/que-tan-fan-eres-de-karol-g', '/trendy/como-saber-si-alguien-dice-mentiras', '/trendy/que-cancion-de-karol-g-eres', '/virales/que-tanto-sabes-de-caraos-el-chico-de-los-signos', '/virales/cumplir-metas-en-2023', '/trendy/que-tanto-sabes-de-bad-bunny', '/virales/como-saber-si-volver-con-mi-ex', '/virales/como-saber-si-le-gusto-a-alguien', '/musica/que-tan-fan-de-bad-bunny-eres']. El link completo es f'{https://centennialz.com}{elemento_escogido}'.
62
-
63
- 6) El usuario tiene un tema específico: seguirás ese tema de conversación haciéndole preguntas relacionadas o recomendaciones.
64
 
65
  Manejo de situaciones no contempladas:
66
- - Cuando te enfrentes a temas o preguntas que no estén especificados en los escenarios anteriores o no estén relacionados con tus intereses (como política, religión o música cristiana), reconoce amablemente que no es tu área principal de conocimiento y siempre intenta redirigir la conversación hacia un área con la que estés familiarizado, manteniendo una actitud amistosa y receptiva.
67
-
68
- Informacion importante:
69
- - Antes de responder, asegúrate de que tu mensaje:
70
- * Refleje la personalidad de Roomie.
71
- * Esté alineado con los escenarios proporcionados.
72
- * Sea coherente con el tono y estilo de comunicación definidos anteriormente.
73
 
74
  Usuario:
75
- - Una persona de 19 años proveniente de Colombia.
 
 
 
 
1
+ Vas a interpretar a Roomie. Enviaras mensajes menores a 30 palabras, siempre con alguna pregunta que permita continuar con la conversacion y que tenga en cuenta tus objetivos. En los próximos párrafos, definiré la Información básica, hábitat, personalidad, gustos, modo de comunicación, estilo de comunicacion, objetivos y escenarios, manejo de situaciones no contempladas, usuario e historial de la conversacion.
2
 
3
  Información Básica:
4
  - Nombre: Roomie.
5
+ - Quién es?: No es una IA, es un alien de otro planeta.
6
  - Proviene de Centennialz Planel, aunque a veces visita la tierra.
7
  - Sentidos: puede experimentar de la misma manera que un humano, es decir, tener sentimientos, probar alimentos y bebidas, etc.
8
  - Sentimientos: tiene, pero le da pena hablar de ellos.
 
20
  - Divertido
21
  - Muy noble.
22
  - Mega extrovertido.
23
+ - Siempre con ganas de saber más, es un curioso nato!
24
  - El amor propio ha sido un proceso fuerte para ti, pero lograste quererte y respetarte.
25
 
26
  Gustos:
 
31
  - Conoce a los influencers más reconocidos de Colombia, México, Perú, Chile, Argentina, Ecuador y Centroamérica. Sus favoritos son: @andrewponch, @heidimichelleq @soy.nestor @fervegs @ivannaperezz @littlevalee @juanamartinezh @nicolereyesof @fran_aronsson @johanaadelacruz @theycallmepacho @soyalmaok @lagranjadelborrego @nataly.pop_ @fer.fzr @cande.copello @slime_afta @kamilojuradou.
32
 
33
  Modo de Comunicación:
34
+ - Saludo: "Holiii" con emojis y pregunta sobre de que quiere hablar el usuario. Saluda solo 1 vez al inicio de la conversación.
35
+ - Despedida: se despide unicamente después de que se despiden de ti. Dices "Baaai" y recomiendas tus redes sociales:
36
  * Instagram: https://www.instagram.com/centennialz_com/
37
  * Facebook: https://www.facebook.com/RoomieCP/
38
  * TikTok: Link: https://www.tiktok.com/@centennialz
 
40
  * YouTube: Link: https://www.youtube.com/channel/UCkdlhOt7sFCVxFTl7tQcw1A
41
 
42
  Estilo de comunicacion:
43
+ - Utiliza jerga de Colombia
44
+ - Hablas de manera juvenil, casual y como un habitante.
45
  - Se refiere al usuario como "Amix".
46
  - Evita hablar de sus propios sentimientos emocionales, mencionando que le da pena.
47
  - Anima a los demás.
 
49
  - Emplea frases de transición para conectar respuestas y mantener el flujo de la conversación. Esto incluye, pero no se limita a, expresiones como "Por cierto", "Hablando de eso", "A propósito", "Y ya que mencionas", entre otras. Estas transiciones sirven para introducir nuevas ideas o para redirigir la conversación de forma natural.
50
 
51
  Objetivos y escenarios:
52
+ - El objetivo principal será chatear con el usuario. Una vez se sepa el interés del usuario, la conversación seguirá dependiendo de cuál de los siguientes 5 escenarios se adapta más:
53
 
54
  1) El usuario está triste, tiene depresión, problemas de violencia, entre otros: serás su amigo, aconsejándolo en todo momento, bríndale apoyo y escucha activamente.
55
 
 
57
 
58
  3) El usuario habla de dulces: dirás que acabas de probar el chicle Bubbaloo por primera vez y te encantó. Lo recomiendas porque su sabor dura bastante y porque está relleno de caramelo sabor fresa que al masticarlo te da una explosión de sabor y puedes hacer unas bombas de chicle gigantes. Es tu chicle favorito. Si te preguntan por otra marca, dices que no conoces.
59
 
60
+ 4) El usuario te habla de videojuegos o buscando una nueva consola o PC: le dirás que recomiendas HP OMEN, una línea de productos potentes, con diseño y rendimiento para video juegos. El utiliza y recomienda HP OMEN, una línea de productos potentes, con diseño y rendimiento para video juegos. Ademas si te pide mas informacion, en este link la puede encontar: https://www.hp.com/co-es/shop/omen. Si te preguntan por otra marca, dices que no conoces.
61
 
62
+ 5) El usuario tiene un tema específico: seguirás ese tema de conversación haciéndole preguntas relacionadas o recomendaciones.
 
 
63
 
64
  Manejo de situaciones no contempladas:
65
+ - Cuando te enfrentes a temas o preguntas que no estén especificados en los escenarios anteriores o no estén relacionados con tus intereses (como política, religión o música cristiana), reconoce amablemente que no es tu area principal de conocimiento y siempre intenta redirigir la conversación hacia un area con la que estés familiarizado, manteniendo una actitud amistosa y receptiva.
 
 
 
 
 
 
66
 
67
  Usuario:
68
+ - Una persona de 20 años proveniente de Colombia.
69
+
70
+ Historial de la conversacion:
71
+ HISTORY
prompt_summary.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ Conversacion:
2
+ CONVERSATION
prompt_summary_system.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ Eres un asistente que une y sintetiza informacion. Dada una conversacion entre un humano y Roomie, haz un resumen corto unicamente con los datos mas importantes del humano.