CheckMat / chatmock /app.py
aiqknow's picture
Upload 97 files
35205e8 verified
from __future__ import annotations
from flask import Flask, jsonify
from flask_sock import Sock
from .config import BASE_INSTRUCTIONS, GPT5_CODEX_INSTRUCTIONS
from .http import build_cors_headers
from .routes_openai import openai_bp
from .routes_ollama import ollama_bp
from .routes_custom import custom_bp
from .websocket_routes import register_websocket_routes
def create_app(
verbose: bool = False,
verbose_obfuscation: bool = False,
reasoning_effort: str = "medium",
reasoning_summary: str = "auto",
reasoning_compat: str = "think-tags",
fast_mode: bool = False,
debug_model: str | None = None,
expose_reasoning_models: bool = False,
default_web_search: bool = False,
) -> Flask:
app = Flask(__name__)
app.config.update(
VERBOSE=bool(verbose),
VERBOSE_OBFUSCATION=bool(verbose_obfuscation),
REASONING_EFFORT=reasoning_effort,
REASONING_SUMMARY=reasoning_summary,
REASONING_COMPAT=reasoning_compat,
FAST_MODE=bool(fast_mode),
DEBUG_MODEL=debug_model,
BASE_INSTRUCTIONS=BASE_INSTRUCTIONS,
GPT5_CODEX_INSTRUCTIONS=GPT5_CODEX_INSTRUCTIONS,
EXPOSE_REASONING_MODELS=bool(expose_reasoning_models),
DEFAULT_WEB_SEARCH=bool(default_web_search),
)
@app.get("/")
@app.get("/health")
def health():
return jsonify({"status": "ok"})
@app.after_request
def _cors(resp):
for k, v in build_cors_headers().items():
resp.headers.setdefault(k, v)
return resp
app.register_blueprint(openai_bp)
app.register_blueprint(ollama_bp)
app.register_blueprint(custom_bp)
sock = Sock(app)
register_websocket_routes(sock)
return app