(
state,
temperature,
top_p,
max_new_tokens,
request: gr.Request,
apply_rate_limit=True,
)
| 355 | |
| 356 | |
| 357 | def bot_response( |
| 358 | state, |
| 359 | temperature, |
| 360 | top_p, |
| 361 | max_new_tokens, |
| 362 | request: gr.Request, |
| 363 | apply_rate_limit=True, |
| 364 | ): |
| 365 | ip = get_ip(request) |
| 366 | logger.info(f"bot_response. ip: {ip}") |
| 367 | start_tstamp = time.time() |
| 368 | temperature = float(temperature) |
| 369 | top_p = float(top_p) |
| 370 | max_new_tokens = int(max_new_tokens) |
| 371 | |
| 372 | if state.skip_next: |
| 373 | # This generate call is skipped due to invalid inputs |
| 374 | state.skip_next = False |
| 375 | yield (state, state.to_gradio_chatbot()) + (no_change_btn,) * 5 |
| 376 | return |
| 377 | |
| 378 | if apply_rate_limit: |
| 379 | ret = is_limit_reached(state.model_name, ip) |
| 380 | if ret is not None and ret["is_limit_reached"]: |
| 381 | error_msg = RATE_LIMIT_MSG + "\n\n" + ret["reason"] |
| 382 | logger.info(f"rate limit reached. ip: {ip}. error_msg: {ret['reason']}") |
| 383 | state.conv.update_last_message(error_msg) |
| 384 | yield (state, state.to_gradio_chatbot()) + (no_change_btn,) * 5 |
| 385 | return |
| 386 | |
| 387 | conv, model_name = state.conv, state.model_name |
| 388 | model_api_dict = ( |
| 389 | api_endpoint_info[model_name] if model_name in api_endpoint_info else None |
| 390 | ) |
| 391 | images = conv.get_images() |
| 392 | |
| 393 | if model_api_dict is None: |
| 394 | # Query worker address |
| 395 | ret = requests.post( |
| 396 | controller_url + "/get_worker_address", json={"model": model_name} |
| 397 | ) |
| 398 | worker_addr = ret.json()["address"] |
| 399 | logger.info(f"model_name: {model_name}, worker_addr: {worker_addr}") |
| 400 | |
| 401 | # No available worker |
| 402 | if worker_addr == "": |
| 403 | conv.update_last_message(SERVER_ERROR_MSG) |
| 404 | yield ( |
| 405 | state, |
| 406 | state.to_gradio_chatbot(), |
| 407 | disable_btn, |
| 408 | disable_btn, |
| 409 | disable_btn, |
| 410 | enable_btn, |
| 411 | enable_btn, |
| 412 | ) |
| 413 | return |
| 414 |
no test coverage detected
searching dependent graphs…