from flask import Blueprint, request from ..cache import redis from ..helpers.client import format_sillytavern_err from ..helpers.http import require_api_key from ..openai_request_handler import build_openai_response from ..server_error import handle_server_error from ... import opts from ...helpers import auto_set_base_client_api openai_bp = Blueprint('openai/v1/', __name__) @openai_bp.before_request def before_oai_request(): # TODO: unify with normal before_request() auto_set_base_client_api(request) if not opts.enable_openi_compatible_backend: return build_openai_response('', format_sillytavern_err('The OpenAI-compatible backend is disabled.', 'Access Denied')), 401 if request.endpoint != 'v1.get_stats': response = require_api_key() if response is not None: return response @openai_bp.errorhandler(500) def handle_error(e): return handle_server_error(e) from .models import openai_list_models from .chat_completions import openai_chat_completions from .info import get_openai_info from .simulated import *