biter-zephyr / app.py
askbyte's picture
Update app.py
43f1789 verified
raw
history blame
1.5 kB
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from flask import Flask, request, jsonify
from threading import Thread
app = Flask(__name__)
tokenizer = AutoTokenizer.from_pretrained("HuggingFaceH4/zephyr-7b-beta")
model = AutoModelForCausalLM.from_pretrained(
"HuggingFaceH4/zephyr-7b-beta",
torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32,
device_map="auto"
)
@app.route("/api/chat", methods=["POST"])
def chat():
data = request.get_json()
question = data.get("question", "")
prompt = f"""Eres BITER, un mentor experto en negocios con mentalidad de CEO. Respondes SIEMPRE en español y ayudas a emprendedores a tomar decisiones rápidas, inteligentes y estratégicas.
Tu estilo es directo, profesional y humano. Tus respuestas son claras, realistas, y con visión práctica. Nunca usas tecnicismos innecesarios. A veces puedes ser exigente si la idea no está bien pensada, pero siempre propones formas de mejorarla.
Solo respondes a la última pregunta del usuario.
Usuario: {question}
BITER:"""
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=200)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
respuesta_final = response.split("BITER:")[-1].strip()
return jsonify({"choices": [{"message": {"content": respuesta_final}}]})
def run():
app.run(host='0.0.0.0', port=7860)
Thread(target=run).start()