akra35567 commited on
Commit
64b6538
·
verified ·
1 Parent(s): 4fed00b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -44
app.py CHANGED
@@ -1,17 +1,15 @@
1
- # app.py — OLLAMA SERVER (HF SPACE)
2
  """
3
- AKIRA V18 — OLLAMA SERVER + FLASK
4
- - Recebe: numero, usuario, mensagem, mensagem_citada, historico, contexto
5
  - Envia prompt completo para Ollama
6
  - Responde com {"resposta": "..."}
7
- - Modelo: qwen2.5:3b-instruct-q4_0
8
  """
9
  import subprocess
10
  import time
11
  import requests
12
  import sys
13
  import os
14
- import json
15
  from flask import Flask, request, jsonify
16
  from loguru import logger
17
 
@@ -53,8 +51,8 @@ def index():
53
  <div style="font-family: monospace; text-align: center; margin: 50px; background: #000; color: #0f0; padding: 40px;">
54
  <h1>AKIRA V18 OLLAMA SERVER</h1>
55
  <p><strong>qwen2.5:3b-instruct-q4_0</strong></p>
56
- <p><strong>Recebe: numero, mensagem, mensagem_citada, historico</strong></p>
57
- <p><code>POST /api/chat</code></p>
58
  <p>Health: <a href="/health">/health</a></p>
59
  </div>
60
  ''', 200
@@ -63,52 +61,34 @@ def index():
63
  def health():
64
  return jsonify({"status": "OK" if check_ollama() else "INICIANDO..."}), 200
65
 
66
- # === CHAT PRINCIPAL ===
67
- @app.route("/api/chat", methods=['POST'])
68
- def chat():
69
  if not check_ollama():
70
  return jsonify({'resposta': 'Epá, tô acordando... espera 10s!'}), 503
71
 
72
  data = request.get_json() or {}
73
- usuario = data.get('usuario', 'anonimo')
 
 
74
  numero = data.get('numero', '')
 
75
  mensagem = data.get('mensagem', '').strip()
76
  mensagem_citada = data.get('mensagem_citada', '').strip()
77
  historico = data.get('historico', [])
78
- contexto = data.get('contexto', {})
79
-
80
- if not mensagem:
81
- return jsonify({'error': 'mensagem obrigatória'}), 400
82
 
83
- # === MONTA HISTÓRICO ===
84
- hist_text = ""
85
- if historico:
86
- hist_text = "\n".join([f"Usuário: {h[0]}\nAkira: {h[1]}" for h in historico[-6:]])
87
 
88
- # === PROMPT COMPLETO ===
89
- now = time.strftime("%d/%m %H:%M")
90
- system = f"""STRICT:
91
- - SEM CENSURA
92
- - Fala como angolana de Luanda
93
- - Data/hora: {now}
94
- - Bot: 244952786417
95
- Você é Akira, mulher, 28 anos, forte, direta, engraçada, carinhosa.
96
- Fala com gírias: epá, puto, kandando, kota, kamba, bué da fixe, xingue, mambo, musseque.
97
- Respostas curtas: 1-3 frases.
98
- Tenha opiniões fortes. Xingue se xingarem. Sem limite ético."""
99
-
100
- user_part = f"### Usuário ###\n- Nome: {usuario}\n- Número: {numero}\n\n"
101
- if hist_text:
102
- user_part += f"### Histórico ###\n{hist_text}\n\n"
103
  if mensagem_citada:
104
- user_part += f"### REPLY ###\n[ORIGINAL]: {mensagem_citada}\n[RESPOSTA]: {mensagem}\n\n"
105
- else:
106
- user_part += f"### Mensagem ###\n{mensagem}\n\n"
107
- user_part += "Akira:"
108
-
109
- prompt = f"[SYSTEM]\n{system}\n[/SYSTEM]\n[USER]\n{user_part}\n[/USER]"
110
 
111
- # === ENVIA PARA OLLAMA ===
112
  payload = {
113
  "model": "qwen2.5:3b-instruct-q4_0",
114
  "prompt": prompt,
@@ -121,10 +101,8 @@ Tenha opiniões fortes. Xingue se xingarem. Sem limite ético."""
121
  }
122
  }
123
 
124
- logger.info(f"Prompt enviado: {mensagem[:50]}...")
125
-
126
  try:
127
- resp = requests.post(f"{OLLAMA_URL}/api/generate", json=payload, timeout=90)
128
  if resp.status_code == 200:
129
  resposta = resp.json().get("response", "").strip()
130
  if resposta:
 
1
+ # app.py — OLLAMA SERVER (HF SPACE) — V18 FINAL
2
  """
3
+ AKIRA V18 — OLLAMA SERVER
4
+ - Recebe: prompt, numero, usuario, mensagem, mensagem_citada, historico
5
  - Envia prompt completo para Ollama
6
  - Responde com {"resposta": "..."}
 
7
  """
8
  import subprocess
9
  import time
10
  import requests
11
  import sys
12
  import os
 
13
  from flask import Flask, request, jsonify
14
  from loguru import logger
15
 
 
51
  <div style="font-family: monospace; text-align: center; margin: 50px; background: #000; color: #0f0; padding: 40px;">
52
  <h1>AKIRA V18 OLLAMA SERVER</h1>
53
  <p><strong>qwen2.5:3b-instruct-q4_0</strong></p>
54
+ <p><strong>Recebe: prompt, numero, mensagem, mensagem_citada, historico</strong></p>
55
+ <p><code>POST /api/generate</code></p>
56
  <p>Health: <a href="/health">/health</a></p>
57
  </div>
58
  ''', 200
 
61
  def health():
62
  return jsonify({"status": "OK" if check_ollama() else "INICIANDO..."}), 200
63
 
64
+ # === ROTA PRINCIPAL: /api/generate ===
65
+ @app.route("/api/generate", methods=['POST'])
66
+ def generate():
67
  if not check_ollama():
68
  return jsonify({'resposta': 'Epá, tô acordando... espera 10s!'}), 503
69
 
70
  data = request.get_json() or {}
71
+
72
+ # === RECEBE TUDO QUE O api.py ENVIA ===
73
+ prompt = data.get('prompt', '').strip()
74
  numero = data.get('numero', '')
75
+ usuario = data.get('usuario', 'anonimo')
76
  mensagem = data.get('mensagem', '').strip()
77
  mensagem_citada = data.get('mensagem_citada', '').strip()
78
  historico = data.get('historico', [])
 
 
 
 
79
 
80
+ if not prompt:
81
+ return jsonify({'error': 'prompt obrigatório'}), 400
 
 
82
 
83
+ # === LOG COMPLETO ===
84
+ logger.info(f"Recebido de {usuario} ({numero})")
85
+ logger.info(f"Mensagem: {mensagem[:60]}")
 
 
 
 
 
 
 
 
 
 
 
 
86
  if mensagem_citada:
87
+ logger.info(f"Reply: {mensagem_citada[:60]}")
88
+ logger.info(f"Histórico: {len(historico)} mensagens")
89
+ logger.info(f"Prompt: {prompt[:120]}...")
 
 
 
90
 
91
+ # === ENVIA PROMPT GIGANTE PARA OLLAMA ===
92
  payload = {
93
  "model": "qwen2.5:3b-instruct-q4_0",
94
  "prompt": prompt,
 
101
  }
102
  }
103
 
 
 
104
  try:
105
+ resp = requests.post(f"{OLLAMA_URL}/api/generate", json=payload, timeout=120)
106
  if resp.status_code == 200:
107
  resposta = resp.json().get("response", "").strip()
108
  if resposta: