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

Class PageController

browser_utils/page_controller.py:46–375  ·  view source on GitHub ↗

Encapsulates all operations for interacting with the AI Studio page.

Source from the content-addressed store, hash-verified

44
45
46class PageController(
47 ParameterController,
48 InputController,
49 ChatController,
50 ResponseController,
51 ThinkingController,
52 FunctionCallingController,
53 BaseController,
54):
55 """Encapsulates all operations for interacting with the AI Studio page."""
56
57 def __init__(self, page: AsyncPage, logger, req_id: str):
58 self.page = page
59 self.logger = logger
60 self.req_id = req_id
61
62 async def _check_disconnect(self, check_client_disconnected: Callable, stage: str):
63 if check_client_disconnected(stage):
64 raise ClientDisconnectedError(
65 f"[{self.req_id}] Client disconnected at stage: {stage}"
66 )
67
68 async def adjust_parameters(
69 self,
70 request_params: Dict[str, Any],
71 page_params_cache: Dict[str, Any],
72 params_cache_lock: asyncio.Lock,
73 model_id_to_use: Optional[str],
74 parsed_model_list: List[Dict[str, Any]],
75 check_client_disconnected: Callable,
76 is_streaming: bool = True,
77 ):
78 self.logger.info(f"[{self.req_id}] Adjusting parameters...")
79 await self._check_disconnect(
80 check_client_disconnected, "Start Parameter Adjustment"
81 )
82 temp = request_params.get("temperature", DEFAULT_TEMPERATURE)
83 await self._adjust_temperature(
84 temp, page_params_cache, params_cache_lock, check_client_disconnected
85 )
86 max_tokens = request_params.get("max_output_tokens", DEFAULT_MAX_OUTPUT_TOKENS)
87 await self._adjust_max_tokens(
88 max_tokens,
89 page_params_cache,
90 params_cache_lock,
91 model_id_to_use,
92 parsed_model_list,
93 check_client_disconnected,
94 )
95 stop = request_params.get("stop", DEFAULT_STOP_SEQUENCES)
96 await self._adjust_stop_sequences(
97 stop, page_params_cache, params_cache_lock, check_client_disconnected
98 )
99 top_p = request_params.get("top_p", DEFAULT_TOP_P)
100 await self._adjust_top_p(top_p, check_client_disconnected)
101 await self._ensure_tools_panel_expanded(check_client_disconnected)
102
103 # Force disable URL context if function calling is active

Calls

no outgoing calls