| 18 | """Session for the engine.""" |
| 19 | |
| 20 | def __init__(self, session_id: int, session_mgr: SessionManager, **kwargs): |
| 21 | self.session_id = session_id |
| 22 | self.prompt: Any = None |
| 23 | self.response: Response | None = None |
| 24 | self.history: list[tuple[Any, str]] = [] |
| 25 | self.gen_config: GenerationConfig | None = None |
| 26 | self.step: int = 0 |
| 27 | # Set by api_server to AsyncEngine.epoch when a request binds a session; |
| 28 | # generate() drops work if stop_all_session() bumped epoch after bind. |
| 29 | self.epoch: int | None = None |
| 30 | # event to wait for the session to be active |
| 31 | self._active: asyncio.Event | None = None |
| 32 | self._handle = None # inference instance |
| 33 | self._session_mgr: SessionManager = weakref.ref(session_mgr) |
| 34 | self._remove_on_request_exit = False |
| 35 | self.update(**kwargs) |
| 36 | |
| 37 | def update(self, **kwargs): |
| 38 | """Update the session.""" |