Update app.py
Browse files
app.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
# app.py — V23 —
|
| 2 |
import subprocess
|
| 3 |
import time
|
| 4 |
import requests
|
|
@@ -12,7 +12,6 @@ app = Flask(__name__)
|
|
| 12 |
OLLAMA_URL = "http://localhost:11434"
|
| 13 |
db = Database()
|
| 14 |
|
| 15 |
-
# MODELO LEVE, PORTUGUÊS, FINE-TUNEÁVEL
|
| 16 |
MODEL_NAME = "qwen2.5:0.5b-instruct-q4_0"
|
| 17 |
|
| 18 |
def check_ollama():
|
|
@@ -24,8 +23,29 @@ def check_ollama():
|
|
| 24 |
def start_ollama():
|
| 25 |
subprocess.Popen(["ollama", "serve"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
| 26 |
|
| 27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
def generate():
|
|
|
|
|
|
|
|
|
|
| 29 |
if not check_ollama():
|
| 30 |
return jsonify({'resposta': 'Epá, tô acordando... espera 10s!'}), 503
|
| 31 |
|
|
@@ -52,18 +72,17 @@ def generate():
|
|
| 52 |
abrevs = {"p'ra": "para", "pq": "porque", "tfx": "tudo fixe"}
|
| 53 |
|
| 54 |
# Aprende novas
|
| 55 |
-
for abrev
|
| 56 |
if abrev in mensagem.lower():
|
| 57 |
-
db.aprender_abreviacao(numero, abrev,
|
| 58 |
for g in girias:
|
| 59 |
if g in mensagem.lower():
|
| 60 |
db.aprender_giria(numero, g)
|
| 61 |
|
| 62 |
-
# === PROMPT DINÂMICO
|
| 63 |
now = datetime.datetime.now().strftime('%d/%m %H:%M')
|
| 64 |
hist_text = '\n'.join([f"Usuário: {h[0]}\nAkira: {h[1]}" for h in ctx["historico"]])
|
| 65 |
|
| 66 |
-
# CORREÇÃO: Separar o f-string do \n
|
| 67 |
historico_block = ""
|
| 68 |
if hist_text:
|
| 69 |
historico_block = f"### Histórico ###\n{hist_text}\n\n"
|
|
@@ -78,7 +97,7 @@ Data/hora: {now}
|
|
| 78 |
{mensagem}
|
| 79 |
Akira:"""
|
| 80 |
|
| 81 |
-
# === GERA
|
| 82 |
payload = {
|
| 83 |
"model": MODEL_NAME,
|
| 84 |
"prompt": prompt,
|
|
|
|
| 1 |
+
# app.py — V23 FIX — ROTAS COMPLETAS (GET/POST + /health + /)
|
| 2 |
import subprocess
|
| 3 |
import time
|
| 4 |
import requests
|
|
|
|
| 12 |
OLLAMA_URL = "http://localhost:11434"
|
| 13 |
db = Database()
|
| 14 |
|
|
|
|
| 15 |
MODEL_NAME = "qwen2.5:0.5b-instruct-q4_0"
|
| 16 |
|
| 17 |
def check_ollama():
|
|
|
|
| 23 |
def start_ollama():
|
| 24 |
subprocess.Popen(["ollama", "serve"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
| 25 |
|
| 26 |
+
# === RAIZ (GET /) ===
|
| 27 |
+
@app.route("/", methods=['GET'])
|
| 28 |
+
def index():
|
| 29 |
+
return '''
|
| 30 |
+
<div style="font-family: monospace; text-align: center; margin: 50px; background: #000; color: #0f0; padding: 40px;">
|
| 31 |
+
<h1>AKIRA V23 OLLAMA SERVER</h1>
|
| 32 |
+
<p><strong>qwen2.5:0.5b-instruct-q4_0</strong></p>
|
| 33 |
+
<p><strong>POST /api/generate</strong></p>
|
| 34 |
+
<p>Health: <a href="/health">/health</a></p>
|
| 35 |
+
</div>
|
| 36 |
+
''', 200
|
| 37 |
+
|
| 38 |
+
# === HEALTH ===
|
| 39 |
+
@app.route("/health", methods=['GET'])
|
| 40 |
+
def health():
|
| 41 |
+
return jsonify({"status": "OK" if check_ollama() else "INICIANDO..."}), 200
|
| 42 |
+
|
| 43 |
+
# === API PRINCIPAL ===
|
| 44 |
+
@app.route("/api/generate", methods=['POST', 'GET'])
|
| 45 |
def generate():
|
| 46 |
+
if request.method == 'GET':
|
| 47 |
+
return jsonify({'error': 'Use POST para gerar resposta'}), 405
|
| 48 |
+
|
| 49 |
if not check_ollama():
|
| 50 |
return jsonify({'resposta': 'Epá, tô acordando... espera 10s!'}), 503
|
| 51 |
|
|
|
|
| 72 |
abrevs = {"p'ra": "para", "pq": "porque", "tfx": "tudo fixe"}
|
| 73 |
|
| 74 |
# Aprende novas
|
| 75 |
+
for abrev in abrevs:
|
| 76 |
if abrev in mensagem.lower():
|
| 77 |
+
db.aprender_abreviacao(numero, abrev, abrevs[abrev])
|
| 78 |
for g in girias:
|
| 79 |
if g in mensagem.lower():
|
| 80 |
db.aprender_giria(numero, g)
|
| 81 |
|
| 82 |
+
# === PROMPT DINÂMICO ===
|
| 83 |
now = datetime.datetime.now().strftime('%d/%m %H:%M')
|
| 84 |
hist_text = '\n'.join([f"Usuário: {h[0]}\nAkira: {h[1]}" for h in ctx["historico"]])
|
| 85 |
|
|
|
|
| 86 |
historico_block = ""
|
| 87 |
if hist_text:
|
| 88 |
historico_block = f"### Histórico ###\n{hist_text}\n\n"
|
|
|
|
| 97 |
{mensagem}
|
| 98 |
Akira:"""
|
| 99 |
|
| 100 |
+
# === GERA ===
|
| 101 |
payload = {
|
| 102 |
"model": MODEL_NAME,
|
| 103 |
"prompt": prompt,
|