MCPcopy Create free account
hub / github.com/CJackHwang/AIstudioProxyAPI / analyze_model_requirements

Function analyze_model_requirements

api_utils/model_switching.py:10–41  ·  view source on GitHub ↗
(
    req_id: str, context: RequestContext, requested_model: str, proxy_model_name: str
)

Source from the content-addressed store, hash-verified

8
9
10async def analyze_model_requirements(
11 req_id: str, context: RequestContext, requested_model: str, proxy_model_name: str
12) -> RequestContext:
13 set_request_id(req_id)
14 logger = context["logger"]
15 current_ai_studio_model_id = context["current_ai_studio_model_id"]
16 parsed_model_list = context["parsed_model_list"]
17
18 if requested_model and requested_model != proxy_model_name:
19 requested_model_id = requested_model.split("/")[-1]
20 logger.info(f"[{req_id}] Requesting model: {requested_model_id}")
21
22 if parsed_model_list:
23 valid_model_ids = [
24 str(m.get("id")) for m in parsed_model_list if m.get("id")
25 ]
26 if requested_model_id not in valid_model_ids:
27 from .error_utils import bad_request
28
29 raise bad_request(
30 req_id,
31 f"Invalid model '{requested_model_id}'. Available models: {', '.join(valid_model_ids)}",
32 )
33
34 context["model_id_to_use"] = requested_model_id
35 if current_ai_studio_model_id != requested_model_id:
36 context["needs_model_switching"] = True
37 logger.info(
38 f"[{req_id}] Model switch needed: Current={current_ai_studio_model_id} -> Target={requested_model_id}"
39 )
40
41 return context
42
43
44async def handle_model_switching(

Calls 4

set_request_idFunction · 0.90
bad_requestFunction · 0.85
infoMethod · 0.80
getMethod · 0.45