34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
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 * |