| 187 | |
| 188 | |
| 189 | class UserSession: |
| 190 | |
| 191 | def __init__(self, user_config: UserConfig): |
| 192 | self.user_config = user_config |
| 193 | self.last_request_time = None |
| 194 | self.chat_history = ChatHistory() |
| 195 | self.round_id = 0 |
| 196 | |
| 197 | self.has_unfinished_request = 0 |
| 198 | self.last_unfinished_log = 0 |
| 199 | |
| 200 | self.prompt_lengths = [] |
| 201 | self.generation_lengths = [] |
| 202 | self.ttfts = [] |
| 203 | self.generation_times = [] |
| 204 | self.launch_times = [] |
| 205 | self.finish_times = [] |
| 206 | |
| 207 | self.finished = False |
| 208 | |
| 209 | self.agentIDs = [] |
| 210 | self.roundIDs = [] |
| 211 | self.inputs = [] |
| 212 | self.outputs = [] |
| 213 | |
| 214 | def _update_result(self, response: Response): |
| 215 | self.prompt_lengths.append(response.prompt_tokens) |
| 216 | self.generation_lengths.append(response.generation_tokens) |
| 217 | self.ttfts.append(response.ttft) |
| 218 | self.generation_times.append(response.generation_time) |
| 219 | self.launch_times.append(response.launch_time) |
| 220 | self.finish_times.append(response.finish_time) |
| 221 | self.agentIDs.append(response.agentID) |
| 222 | self.outputs.append(response.body) |
| 223 | |
| 224 | def _launch_new_request(self, timestamp: float, request_executor: RequestExecutor, request_id: int): |
| 225 | agentID = self.user_config.trace[self.round_id]['agent_id'][request_id] |
| 226 | max_tokens = self.user_config.trace[self.round_id]['output_tokens'][request_id] |
| 227 | input_from = self.user_config.trace[self.round_id]['input_from'][request_id] |
| 228 | |
| 229 | self.chat_history.on_user_query("hihihihihi", agentID, self.round_id) |
| 230 | messages = self.chat_history.get_messages_for_openai(input_from, agentID, self.round_id) |
| 231 | request_executor.launch_request( |
| 232 | messages, |
| 233 | max_tokens, |
| 234 | self._on_request_finished, |
| 235 | agentID, |
| 236 | self.round_id, |
| 237 | messages.copy(), |
| 238 | extra_headers={"x-user-id": str(self.user_config.user_id)}, |
| 239 | ) |
| 240 | self.has_unfinished_request += 1 |
| 241 | self.last_request_time = timestamp |
| 242 | |
| 243 | def _on_request_finished(self, response: Response, agentID: int, roundID: int, messages: str): |
| 244 | self.chat_history.on_system_response(response.body, agentID, roundID) |
| 245 | self.has_unfinished_request -= 1 |
| 246 | logger.debug( |
no outgoing calls
no test coverage detected