akra35567 commited on
Commit
eefa006
·
verified ·
1 Parent(s): f749367

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -5
app.py CHANGED
@@ -134,7 +134,6 @@ user: quem é o Isaac Quarenta?
134
  akira: hmmm.. deu até agua na boca, é um CEO de uam tal de SoftEdge, empresa de tecnologias acho
135
  user: vc não é da softedge?
136
  akira: kkk era... sim já bumbei lá, mas decide sair, muita pressão sabe, já estive até memso com o Isaac, mas pq a pergunta? quer emprego?? vida de cunanga não deve estar facil né?? kk(aqui vimos que bumbar significa: trabalhar, e que cunaga significa (ser desempregado))
137
- """
138
  Bot: 244952786417
139
  ### Usuário ###
140
  - Nome: {usuario}
@@ -144,23 +143,27 @@ Abreviações: {', '.join(abrevs.keys())}
144
  Tom: {tom}
145
  Data/hora: {now}
146
  <</SYS>>
147
- {historico_block}"""
148
  if mensagem_citada:
149
  prompt += f"### Resposta ao reply ###\n{mensagem_citada}\n\n{mensagem}\n\n"
150
  else:
151
  prompt += f"### Mensagem ###\n{mensagem}\n\n"
152
  prompt += "[/INST] Akira:"""
 
153
  payload = {
154
  "model": get_model(),
155
  "prompt": prompt,
156
  "stream": False,
157
  "options": {"temperature": 0.9, "num_predict": 256}
158
  }
 
159
  resp = requests.post(f"{OLLAMA_URL}/api/generate", json=payload, timeout=120)
160
  resposta = resp.json().get("response", "").strip()
 
161
  # FILTRO FINAL
162
  if any(p in resposta.lower() for p in ["olá", "ajudar", "nome é", "posso"]):
163
  resposta = "Epá, kandando bué, kota! Tfx p'raí?"
 
164
  # === TREINAMENTO ===
165
  try:
166
  treinamento.registrar_interacao(
@@ -173,31 +176,44 @@ Data/hora: {now}
173
  )
174
  except Exception as e:
175
  logger.warning(f"Erro ao treinar: {e}")
 
176
  # SALVA
177
  db.salvar_mensagem(usuario, mensagem, resposta, numero)
178
  db.salvar_contexto(numero, ctx["historico"] + [[mensagem, resposta]], girias, tom)
 
179
  return jsonify({'resposta': resposta})
 
180
  except Exception as e:
181
  logger.error(f"Erro no /akira: {e}")
182
  return jsonify({'resposta': 'Epá, deu merda!'}), 500
 
183
  # === API PÚBLICA ===
184
  @app.route("/api/generate", methods=['POST'])
185
  def generate():
186
  if not check_ollama():
187
  return jsonify({'resposta': 'Epá, tô acordando... espera 10s!'}), 503
 
188
  data = request.get_json() or {}
189
  mensagem = data.get('mensagem', '').strip()
190
  usuario = data.get('usuario', 'anonimo')
191
  numero = data.get('numero', 'anonimo')
 
192
  if not mensagem:
193
  return jsonify({'error': 'mensagem obrigatória'}), 400
 
194
  ctx = db.carregar_contexto(numero)
195
  tom = db.detectar_tom(numero, mensagem)
196
  girias = db.recuperar_girias_usuario(numero) or ["epá", "kandando", "bué", "kota"]
197
  abrevs = db.recuperar_abreviacoes_usuario(numero) or {"p'ra": "para", "pq": "porque", "tfx": "tudo fixe"}
 
 
 
 
 
198
  now = datetime.datetime.now().strftime('%d/%m %H:%M')
199
  hist_text = '\n'.join([f"User: {h[0]}\nAkira: {h[1]}" for h in ctx["historico"]])
200
  historico_block = f"{hist_text}\n" if hist_text else ""
 
201
  prompt = f"""[INST] <<SYS>>
202
  {config.PERSONA}
203
  Gírias: {', '.join(girias)}
@@ -205,27 +221,32 @@ Abreviações: {', '.join(abrevs.keys())}
205
  Tom: {tom}
206
  Data/hora: {now}
207
  <</SYS>>
208
- {historico_block}Mensagem: {mensagem}
209
  [/INST] Akira:"""
 
210
  payload = {
211
  "model": get_model(),
212
  "prompt": prompt,
213
  "stream": False,
214
  "options": {"temperature": 0.9}
215
  }
 
216
  try:
217
  resp = requests.post(f"{OLLAMA_URL}/api/generate", json=payload, timeout=90)
218
  resposta = resp.json().get("response", "").strip() or "Epá, kandando bué!"
219
- # TREINAMENTO PÚBLICO
220
  treinamento.registrar_interacao(usuario, mensagem, resposta, numero)
221
  db.salvar_mensagem(usuario, mensagem, resposta, numero)
222
  db.salvar_contexto(numero, ctx["historico"] + [[mensagem, resposta]], girias, tom)
 
223
  return jsonify({'resposta': resposta})
 
224
  except Exception as e:
225
  logger.error(f"Erro: {e}")
226
  return jsonify({'resposta': 'Epá, tô off!'}), 500
 
227
  if __name__ == "__main__":
228
- logger.info("AKIRA V25 — LUANDA KANDA BUÉ")
229
  start_ollama()
230
  for i in range(60):
231
  if check_ollama():
 
134
  akira: hmmm.. deu até agua na boca, é um CEO de uam tal de SoftEdge, empresa de tecnologias acho
135
  user: vc não é da softedge?
136
  akira: kkk era... sim já bumbei lá, mas decide sair, muita pressão sabe, já estive até memso com o Isaac, mas pq a pergunta? quer emprego?? vida de cunanga não deve estar facil né?? kk(aqui vimos que bumbar significa: trabalhar, e que cunaga significa (ser desempregado))
 
137
  Bot: 244952786417
138
  ### Usuário ###
139
  - Nome: {usuario}
 
143
  Tom: {tom}
144
  Data/hora: {now}
145
  <</SYS>>
146
+ {busca_block}{historico_block}"""
147
  if mensagem_citada:
148
  prompt += f"### Resposta ao reply ###\n{mensagem_citada}\n\n{mensagem}\n\n"
149
  else:
150
  prompt += f"### Mensagem ###\n{mensagem}\n\n"
151
  prompt += "[/INST] Akira:"""
152
+
153
  payload = {
154
  "model": get_model(),
155
  "prompt": prompt,
156
  "stream": False,
157
  "options": {"temperature": 0.9, "num_predict": 256}
158
  }
159
+
160
  resp = requests.post(f"{OLLAMA_URL}/api/generate", json=payload, timeout=120)
161
  resposta = resp.json().get("response", "").strip()
162
+
163
  # FILTRO FINAL
164
  if any(p in resposta.lower() for p in ["olá", "ajudar", "nome é", "posso"]):
165
  resposta = "Epá, kandando bué, kota! Tfx p'raí?"
166
+
167
  # === TREINAMENTO ===
168
  try:
169
  treinamento.registrar_interacao(
 
176
  )
177
  except Exception as e:
178
  logger.warning(f"Erro ao treinar: {e}")
179
+
180
  # SALVA
181
  db.salvar_mensagem(usuario, mensagem, resposta, numero)
182
  db.salvar_contexto(numero, ctx["historico"] + [[mensagem, resposta]], girias, tom)
183
+
184
  return jsonify({'resposta': resposta})
185
+
186
  except Exception as e:
187
  logger.error(f"Erro no /akira: {e}")
188
  return jsonify({'resposta': 'Epá, deu merda!'}), 500
189
+
190
  # === API PÚBLICA ===
191
  @app.route("/api/generate", methods=['POST'])
192
  def generate():
193
  if not check_ollama():
194
  return jsonify({'resposta': 'Epá, tô acordando... espera 10s!'}), 503
195
+
196
  data = request.get_json() or {}
197
  mensagem = data.get('mensagem', '').strip()
198
  usuario = data.get('usuario', 'anonimo')
199
  numero = data.get('numero', 'anonimo')
200
+
201
  if not mensagem:
202
  return jsonify({'error': 'mensagem obrigatória'}), 400
203
+
204
  ctx = db.carregar_contexto(numero)
205
  tom = db.detectar_tom(numero, mensagem)
206
  girias = db.recuperar_girias_usuario(numero) or ["epá", "kandando", "bué", "kota"]
207
  abrevs = db.recuperar_abreviacoes_usuario(numero) or {"p'ra": "para", "pq": "porque", "tfx": "tudo fixe"}
208
+
209
+ # WEB SEARCH
210
+ busca = web_search.pesquisar(mensagem)
211
+ busca_block = f"{busca}\n\n" if busca else ""
212
+
213
  now = datetime.datetime.now().strftime('%d/%m %H:%M')
214
  hist_text = '\n'.join([f"User: {h[0]}\nAkira: {h[1]}" for h in ctx["historico"]])
215
  historico_block = f"{hist_text}\n" if hist_text else ""
216
+
217
  prompt = f"""[INST] <<SYS>>
218
  {config.PERSONA}
219
  Gírias: {', '.join(girias)}
 
221
  Tom: {tom}
222
  Data/hora: {now}
223
  <</SYS>>
224
+ {busca_block}{historico_block}Mensagem: {mensagem}
225
  [/INST] Akira:"""
226
+
227
  payload = {
228
  "model": get_model(),
229
  "prompt": prompt,
230
  "stream": False,
231
  "options": {"temperature": 0.9}
232
  }
233
+
234
  try:
235
  resp = requests.post(f"{OLLAMA_URL}/api/generate", json=payload, timeout=90)
236
  resposta = resp.json().get("response", "").strip() or "Epá, kandando bué!"
237
+
238
  treinamento.registrar_interacao(usuario, mensagem, resposta, numero)
239
  db.salvar_mensagem(usuario, mensagem, resposta, numero)
240
  db.salvar_contexto(numero, ctx["historico"] + [[mensagem, resposta]], girias, tom)
241
+
242
  return jsonify({'resposta': resposta})
243
+
244
  except Exception as e:
245
  logger.error(f"Erro: {e}")
246
  return jsonify({'resposta': 'Epá, tô off!'}), 500
247
+
248
  if __name__ == "__main__":
249
+ logger.info("AKIRA V27 — LUANDA KANDA BUÉ")
250
  start_ollama()
251
  for i in range(60):
252
  if check_ollama():