MCPcopy Create free account
hub / github.com/ZyphrZero/z.ai2api_python / _create_session

Method _create_session

app/utils/guest_session_pool.py:257–293  ·  view source on GitHub ↗

创建一个新的匿名访客会话。

(self)

Source from the content-addressed store, hash-verified

255 await asyncio.gather(*(_cleanup(session) for session in sessions))
256
257 async def _create_session(self) -> GuestSession:
258 """创建一个新的匿名访客会话。"""
259 headers = _build_dynamic_headers()
260
261 # 访客鉴权会写入 cookie,复用同一个 client 会把“新建会话”粘回旧访客身份。
262 async with _build_async_client() as auth_client:
263 response = await auth_client.get(AUTH_URL, headers=headers)
264
265 if response.status_code != 200:
266 raise RuntimeError(
267 f"匿名会话创建失败: HTTP {response.status_code} {response.text[:200]}"
268 )
269
270 data = response.json()
271 token = str(data.get("token") or "").strip()
272 user_id = str(
273 data.get("id") or data.get("user_id") or data.get("uid") or ""
274 ).strip()
275 username = str(
276 data.get("name")
277 or str(data.get("email") or "").split("@")[0]
278 or f"guest-{user_id[:8] or 'session'}"
279 ).strip()
280
281 if not token:
282 raise RuntimeError(f"匿名会话创建失败: 未返回 token {data}")
283 if not user_id:
284 user_id = f"guest-{token[:12]}"
285
286 logger.info(
287 f"🫥 创建匿名会话成功: user_id={user_id}, username={username or 'Guest'}"
288 )
289 return GuestSession(
290 token=token,
291 user_id=user_id,
292 username=username or "Guest",
293 )
294
295 async def _delete_all_chats(self, session: GuestSession) -> bool:
296 """删除匿名会话的全部对话,尽量释放并发占用。"""

Callers 3

_ensure_capacityMethod · 0.95
initializeMethod · 0.95
acquireMethod · 0.95

Calls 3

_build_dynamic_headersFunction · 0.85
_build_async_clientFunction · 0.85
GuestSessionClass · 0.85

Tested by

no test coverage detected