Timothyxxx commited on
Commit
9ca257b
·
1 Parent(s): 81f1d37
Files changed (2) hide show
  1. app.py +8 -8
  2. resources/demo_description.md +4 -1
app.py CHANGED
@@ -186,10 +186,10 @@ with col1:
186
  "Select a programming language",
187
  ("SQL", "Python"),
188
  )
189
- if selected_language == 'SQL':
190
  args.prompt_file = 'templates/prompts/prompt_wikitq_v3.txt'
191
  args.generate_type = 'nsql'
192
- elif selected_language == 'Python':
193
  args.prompt_file = 'templates/prompts/prompt_wikitq_python_simplified_v4.txt'
194
  args.generate_type = 'npython'
195
  else:
@@ -212,13 +212,13 @@ with st.spinner("Generating Binder program to solve the question...will be finis
212
 
213
  # Do execution
214
  st.subheader("Binder program")
215
- if selected_language == 'SQL':
216
  st.markdown('```sql\n' + binder_program + '\n```')
217
  # st.markdown('```' + binder_program + '```')
218
  # with st.container():
219
  # st.write(binder_program)
220
  executor = NSQLExecutor(args, keys=keys)
221
- elif selected_language == 'Python':
222
  st.code(binder_program, language='python')
223
  executor = NPythonExecutor(args, keys=keys)
224
  db = db.get_table_df()
@@ -229,7 +229,7 @@ try:
229
  os.makedirs('tmp_for_vis/', exist_ok=True)
230
  with st.spinner("Executing... will be finished in 30s, please refresh the page if not"):
231
  exec_answer = executor.nsql_exec(stamp, binder_program, db)
232
- if selected_language == 'SQL':
233
  with open("tmp_for_vis/{}_tmp_for_vis_steps.txt".format(stamp), "r") as f:
234
  steps = json.load(f)
235
  for i, step in enumerate(steps):
@@ -254,9 +254,9 @@ try:
254
  st.markdown('$\\rightarrow$')
255
  if i == len(steps) - 1:
256
  # The final step
257
- st.markdown("{} Interpreter".format(selected_language))
258
  else:
259
- st.markdown("Codex")
260
  with st.spinner('...'):
261
  time.sleep(1)
262
  with open("tmp_for_vis/{}_result_step_{}.txt".format(stamp, i), "r") as f:
@@ -276,7 +276,7 @@ try:
276
  st.markdown(result_in_this_step)
277
  with st.spinner('...'):
278
  time.sleep(1)
279
- elif selected_language == 'Python':
280
  pass
281
  if isinstance(exec_answer, list) and len(exec_answer) == 1:
282
  exec_answer = exec_answer[0]
 
186
  "Select a programming language",
187
  ("SQL", "Python"),
188
  )
189
+ if selected_language == 'Binder SQL':
190
  args.prompt_file = 'templates/prompts/prompt_wikitq_v3.txt'
191
  args.generate_type = 'nsql'
192
+ elif selected_language == 'Binder Python':
193
  args.prompt_file = 'templates/prompts/prompt_wikitq_python_simplified_v4.txt'
194
  args.generate_type = 'npython'
195
  else:
 
212
 
213
  # Do execution
214
  st.subheader("Binder program")
215
+ if selected_language == 'Binder SQL':
216
  st.markdown('```sql\n' + binder_program + '\n```')
217
  # st.markdown('```' + binder_program + '```')
218
  # with st.container():
219
  # st.write(binder_program)
220
  executor = NSQLExecutor(args, keys=keys)
221
+ elif selected_language == 'Binder Python':
222
  st.code(binder_program, language='python')
223
  executor = NPythonExecutor(args, keys=keys)
224
  db = db.get_table_df()
 
229
  os.makedirs('tmp_for_vis/', exist_ok=True)
230
  with st.spinner("Executing... will be finished in 30s, please refresh the page if not"):
231
  exec_answer = executor.nsql_exec(stamp, binder_program, db)
232
+ if selected_language == 'Binder SQL':
233
  with open("tmp_for_vis/{}_tmp_for_vis_steps.txt".format(stamp), "r") as f:
234
  steps = json.load(f)
235
  for i, step in enumerate(steps):
 
254
  st.markdown('$\\rightarrow$')
255
  if i == len(steps) - 1:
256
  # The final step
257
+ st.markdown("Execute {} Interpreter".format(selected_language))
258
  else:
259
+ st.markdown("Prompt GPT3 Codex")
260
  with st.spinner('...'):
261
  time.sleep(1)
262
  with open("tmp_for_vis/{}_result_step_{}.txt".format(stamp, i), "r") as f:
 
276
  st.markdown(result_in_this_step)
277
  with st.spinner('...'):
278
  time.sleep(1)
279
+ elif selected_language == 'Binder Python':
280
  pass
281
  if isinstance(exec_answer, list) and len(exec_answer) == 1:
282
  exec_answer = exec_answer[0]
resources/demo_description.md CHANGED
@@ -1,5 +1,8 @@
1
  This is an interactive demo of Binder based on GPT3 Codex.
2
  You can input a question about the table (maybe requiring external knowledge/functionality), and a Binder program will be generated and executed to derive the output answer.
 
3
 
4
- *Note:* Codex has query limits for openai keys, thus it may be slow in generation/execution when (high) concurrent requests occur.
 
5
  We are trying to make the demo faster and more robust, please let us know if you have any feedback!
 
 
1
  This is an interactive demo of Binder based on GPT3 Codex.
2
  You can input a question about the table (maybe requiring external knowledge/functionality), and a Binder program will be generated and executed to derive the output answer.
3
+ For more details, check out our [website](https://lm-code-binder.github.io/).
4
 
5
+
6
+ *Note:* 1) Codex has query limits for openai keys, thus it may be slow in generation/execution when (high) concurrent requests occur.
7
  We are trying to make the demo faster and more robust, please let us know if you have any feedback!
8
+ 2) This page is just for demonstration, so we generate fewer program for speeding up, please check the [paper](https://arxiv.org/abs/2210.02875) and [code](https://github.com/HKUNLP/Binder) on majority vote and weight bias better result.