Download api.py from ShunaIA/Shuna: direct link, hf CLI and curl.
- Browser
- Download file 1.81 kB
-
https://huggingface.co/spaces/ShunaIA/Shuna/resolve/main/api.py
- Command line
-
hf download hf://spaces/ShunaIA/Shuna/api.py
-
curl -L -o api.py https://huggingface.co/spaces/ShunaIA/Shuna/resolve/main/api.py
1.81 kB
| from flask import Flask, request, jsonify | |
| from flask_cors import CORS | |
| import os | |
| # Importamos tus archivos (asegúrate de que estén en la misma carpeta) | |
| from cerebro import Shuna | |
| from memoria import MemoriaPersistente | |
| app = Flask(__name__) | |
| CORS(app) # Esto soluciona el error de "flask_cors" y permite que Roblox se conecte | |
| # Inicializar memoria e IA | |
| # En Hugging Face usamos /tmp para que no dé error al guardar archivos | |
| ruta_memoria = "/tmp/memoria.json" if os.getenv("SPACE_ID") else "memoria.json" | |
| memoria = MemoriaPersistente(archivo=ruta_memoria) | |
| shuna = Shuna(memoria) | |
| # Ruta para ver si la API está encendida | |
| def home(): | |
| return "Servidor de Shuna activo y operando para Yeshua Rey." | |
| # Ruta que usará Roblox para hablar con Shuna | |
| def chat_shuna(): | |
| try: | |
| datos = request.get_json() | |
| if not datos: | |
| return jsonify({"respuesta": "No recibí datos."}), 400 | |
| # Aceptamos 'mensaje' (Roblox) o 'message' (Web) | |
| mensaje_usuario = datos.get("mensaje") or datos.get("message", "") | |
| if not mensaje_usuario: | |
| return jsonify({"respuesta": "¿Qué deseas decirme, Yeshua Rey?"}) | |
| # Shuna procesa el mensaje usando tu lógica de cerebro.py | |
| respuesta_final = shuna.responder(mensaje_usuario) | |
| return jsonify({"respuesta": respuesta_final}) | |
| except Exception as e: | |
| print(f"Error en la API: {e}") | |
| return jsonify({"respuesta": "Lo siento, tuve un error interno en mi sistema."}), 500 | |
| if __name__ == "__main__": | |
| # Puerto 7860 para Hugging Face, 5000 para tu PC | |
| puerto = int(os.environ.get("PORT", 5000)) | |
| app.run(host="0.0.0.0", port=puerto) | |