MCPcopy
hub / github.com/lm-sys/FastChat / bot_response_multi

Function bot_response_multi

fastchat/serve/gradio_block_arena_named.py:211–265  ·  view source on GitHub ↗
(
    state0,
    state1,
    temperature,
    top_p,
    max_new_tokens,
    request: gr.Request,
)

Source from the content-addressed store, hash-verified

209
210
211def bot_response_multi(
212 state0,
213 state1,
214 temperature,
215 top_p,
216 max_new_tokens,
217 request: gr.Request,
218):
219 logger.info(f"bot_response_multi (named). ip: {get_ip(request)}")
220
221 if state0.skip_next:
222 # This generate call is skipped due to invalid inputs
223 yield (
224 state0,
225 state1,
226 state0.to_gradio_chatbot(),
227 state1.to_gradio_chatbot(),
228 ) + (no_change_btn,) * 6
229 return
230
231 states = [state0, state1]
232 gen = []
233 for i in range(num_sides):
234 gen.append(
235 bot_response(
236 states[i],
237 temperature,
238 top_p,
239 max_new_tokens,
240 request,
241 )
242 )
243
244 is_gemini = []
245 for i in range(num_sides):
246 is_gemini.append(states[i].model_name in ["gemini-pro", "gemini-pro-dev-api"])
247
248 chatbots = [None] * num_sides
249 iters = 0
250 while True:
251 stop = True
252 iters += 1
253 for i in range(num_sides):
254 try:
255 # yield gemini fewer times as its chunk size is larger
256 # otherwise, gemini will stream too fast
257 if not is_gemini[i] or (iters % 30 == 1 or iters < 3):
258 ret = next(gen[i])
259 states[i], chatbots[i] = ret[0], ret[1]
260 stop = False
261 except StopIteration:
262 pass
263 yield states + chatbots + [disable_btn] * 6
264 if stop:
265 break
266
267
268def flash_buttons():

Callers

nothing calls this directly

Calls 3

get_ipFunction · 0.90
bot_responseFunction · 0.90
to_gradio_chatbotMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…