AFischer1985 commited on
Commit
4f6f8bd
·
1 Parent(s): 707556e

Update run.py

Browse files
Files changed (1) hide show
  1. run.py +9 -9
run.py CHANGED
@@ -2,13 +2,12 @@
2
  import gradio as gr
3
 
4
  elemIDs=list(range(5)) # elemIDs 0-4
5
- defaultElemIDs=list(range(1,len(elemIDs)))
6
  internal_state=0
7
 
8
  def toggler(visibility=defaultElemIDs):
9
- #visibility=[str(e) for e in visibility]
10
  l=[]
11
- l.append(gr.Textbox("Visible Text", visible=(0 in visibility)))
12
  l.append(gr.Button("Submit", visible=(1 in visibility)))
13
  l.append(gr.Button("Button 2", visible=(2 in visibility)))
14
  l.append(gr.Button("Button 3", visible=(3 in visibility)))
@@ -25,19 +24,19 @@ def listener(btn):
25
  print("Listener:\n\nbtn="+str(btn)+"\n\nr="+str(r))
26
  return gr.Radio([str(e) for e in elemIDs],label="Button clicked",value=str(r))
27
 
28
- def respond(message, chat_history, visible_elemIDs):
29
  global internal_state
30
  previous_state = internal_state
31
- internal_state = message
32
  visible_elemIDs= [e for e in visible_elemIDs
33
  if ((str(e) != str(internal_state))|(str(e)=="1"))] # delete some buttons
34
  bot_message = f"I was in state \"{previous_state}\" and am now in state \"{internal_state}\". please click another button."
35
- chat_history.append((message, bot_message))
36
  if(len(visible_elemIDs)==0):
37
  print("restore visibility to "+str(list(range(1,len(elemIDs)))))
38
  visible_elemIDs=defaultElemIDs # visibility of all buttons by default (i.e., without textbox)
39
  print("respond:\n\nvisible_elemIDs="+str(visible_elemIDs)+"\n\nbot_message="+str(bot_message))
40
- return message, chat_history, visible_elemIDs
41
 
42
  with gr.Blocks() as demo:
43
  chatbot = gr.Chatbot(value=[[None, f"I'm in state \"{internal_state}\". Please click a button!"]])
@@ -45,7 +44,7 @@ with gr.Blocks() as demo:
45
  changeableElems=[msg,btn1,btn2,btn3,btn4]
46
  visibility=gr.Dropdown(
47
  elemIDs,
48
- value=defaultElemIDs, #list(range(len(elemIDs))),
49
  multiselect=True,
50
  visible=True, #False,
51
  label="Active Elements") # determine which elements are visible #,visible=False
@@ -53,7 +52,8 @@ with gr.Blocks() as demo:
53
  visibility.change(toggler, inputs=visibility, outputs=changeableElems) # change elemIDs when visibility is changed
54
  chatbot.change(toggler, inputs=visibility, outputs=changeableElems) # change elemIDs when chatbot responds
55
  clicked.change(respond,inputs=[clicked,chatbot,visibility], outputs=[clicked,chatbot,visibility])
56
- btn1.click(listener, inputs=btn1, outputs=clicked)
 
57
  btn2.click(listener, inputs=btn2, outputs=clicked)
58
  btn3.click(listener, inputs=btn3, outputs=clicked)
59
  btn4.click(listener, inputs=btn4, outputs=clicked)
 
2
  import gradio as gr
3
 
4
  elemIDs=list(range(5)) # elemIDs 0-4
5
+ defaultElemIDs=list(range(0,len(elemIDs)))
6
  internal_state=0
7
 
8
  def toggler(visibility=defaultElemIDs):
 
9
  l=[]
10
+ l.append(gr.Textbox("Input Text", visible=(0 in visibility)))
11
  l.append(gr.Button("Submit", visible=(1 in visibility)))
12
  l.append(gr.Button("Button 2", visible=(2 in visibility)))
13
  l.append(gr.Button("Button 3", visible=(3 in visibility)))
 
24
  print("Listener:\n\nbtn="+str(btn)+"\n\nr="+str(r))
25
  return gr.Radio([str(e) for e in elemIDs],label="Button clicked",value=str(r))
26
 
27
+ def respond(state, chat_history, visible_elemIDs):
28
  global internal_state
29
  previous_state = internal_state
30
+ internal_state = state
31
  visible_elemIDs= [e for e in visible_elemIDs
32
  if ((str(e) != str(internal_state))|(str(e)=="1"))] # delete some buttons
33
  bot_message = f"I was in state \"{previous_state}\" and am now in state \"{internal_state}\". please click another button."
34
+ chat_history.append((state, bot_message))
35
  if(len(visible_elemIDs)==0):
36
  print("restore visibility to "+str(list(range(1,len(elemIDs)))))
37
  visible_elemIDs=defaultElemIDs # visibility of all buttons by default (i.e., without textbox)
38
  print("respond:\n\nvisible_elemIDs="+str(visible_elemIDs)+"\n\nbot_message="+str(bot_message))
39
+ return state, chat_history, visible_elemIDs
40
 
41
  with gr.Blocks() as demo:
42
  chatbot = gr.Chatbot(value=[[None, f"I'm in state \"{internal_state}\". Please click a button!"]])
 
44
  changeableElems=[msg,btn1,btn2,btn3,btn4]
45
  visibility=gr.Dropdown(
46
  elemIDs,
47
+ value=defaultElemIDs, #list(range(1,len(elemIDs))),
48
  multiselect=True,
49
  visible=True, #False,
50
  label="Active Elements") # determine which elements are visible #,visible=False
 
52
  visibility.change(toggler, inputs=visibility, outputs=changeableElems) # change elemIDs when visibility is changed
53
  chatbot.change(toggler, inputs=visibility, outputs=changeableElems) # change elemIDs when chatbot responds
54
  clicked.change(respond,inputs=[clicked,chatbot,visibility], outputs=[clicked,chatbot,visibility])
55
+ btn1.click(respond,inputs=[msg,chatbot,visibility], outputs=[msg,chatbot,visibility])
56
+ #btn1.click(listener, inputs=btn1, outputs=clicked)
57
  btn2.click(listener, inputs=btn2, outputs=clicked)
58
  btn3.click(listener, inputs=btn3, outputs=clicked)
59
  btn4.click(listener, inputs=btn4, outputs=clicked)