from flask import jsonify, request from . import openai_bp from ..cache import cache, redis from ..stats import server_start_time from ... import opts from ...llm.info import get_running_model @openai_bp.route('/models', methods=['GET']) def openai_list_models(): cache_key = 'openai_model_cache::' + request.url cached_response = cache.get(cache_key) if cached_response: return cached_response model, error = get_running_model() if not model: response = jsonify({ 'code': 502, 'msg': 'failed to reach backend', 'type': error.__class__.__name__ }), 500 # return 500 so Cloudflare doesn't intercept us else: response = jsonify({ "object": "list", "data": [ { "id": opts.running_model, "object": "model", "created": int(server_start_time.timestamp()), "owned_by": opts.llm_middleware_name, "permission": [ { "id": opts.running_model, "object": "model_permission", "created": int(server_start_time.timestamp()), "allow_create_engine": False, "allow_sampling": False, "allow_logprobs": False, "allow_search_indices": False, "allow_view": True, "allow_fine_tuning": False, "organization": "*", "group": None, "is_blocking": False } ], "root": None, "parent": None } ] }), 200 cache.set(cache_key, response, timeout=60) return response