Nyraxis AI

Flask

Guard Flask routes with Nyraxis using before_request hooks or decorators.

Setup

pip install flask nyraxis
export NYRAXIS_API_KEY="your-api-key"
export NYRAXIS_PROJECT_ID="your-project-id"

Code Example

from flask import Flask, request, jsonify, abort
from functools import wraps
from nyraxis import Nyraxis

app = Flask(__name__)
nx = Nyraxis()

# Option 1: before_request hook (global)
@app.before_request
def nyraxis_guard():
    if request.method == "POST" and request.is_json:
        message = request.json.get("message", "")
        if message:
            result = nx.evaluate(message)
            if result.blocked:
                abort(403, description="Blocked by policy")

# Option 2: decorator pattern (per-route)
def guard_with_nyraxis(f):
    @wraps(f)
    def decorated(*args, **kwargs):
        message = request.json.get("message", "")
        result = nx.evaluate(message)
        if result.blocked:
            return jsonify({"error": "Blocked by policy"}), 403
        return f(*args, **kwargs)
    return decorated

@app.post("/chat")
@guard_with_nyraxis
def chat():
    message = request.json["message"]
    return jsonify({"response": f"Processed: {message}"})

What Gets Protected

  • All POST requests with JSON bodies are evaluated before processing
  • The before_request hook provides global protection across all routes
  • The decorator pattern allows selective per-route enforcement
  • Blocked requests return 403 and never reach your application logic

On this page