File size: 6,727 Bytes
230feb9
 
 
 
 
 
816523e
 
230feb9
 
578f72e
230feb9
 
 
 
 
 
 
 
 
 
 
ed301a5
9bbeeb3
 
 
08e91ac
578f72e
fba21b8
ed301a5
 
 
230feb9
 
c85a2a5
230feb9
4e54cd8
1484fcc
 
4c52314
 
162a61b
fba21b8
230feb9
 
 
 
e095f1c
a3478cf
8172228
6cf144f
 
f50b6a2
b26644f
6cf144f
230feb9
f902b80
b036d2a
4e54cd8
063bf56
f8ce710
4e54cd8
063bf56
e8037e0
 
 
 
c5e7afd
e8037e0
 
 
4d09f3b
712d883
650be9a
 
 
14bc821
650be9a
1b8cd19
 
4e54cd8
 
94473bd
d87c30e
712d883
6aca058
712d883
4e54cd8
 
6aca058
4e54cd8
6aca058
712d883
4e54cd8
712d883
4e54cd8
650be9a
230feb9
 
 
 
 
f6218c0
230feb9
19e6c05
230feb9
 
19e6c05
b5e28dd
 
 
 
 
 
 
 
510f936
162a61b
e8037e0
8172228
41d03bf
c85a2a5
 
fba21b8
41d03bf
8172228
f6218c0
230feb9
b5e28dd
89577da
230feb9
c85a2a5
d71a252
d32064a
230feb9
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
import gradio as gr
import requests
import os 

##Bloom
API_URL = "https://api-inference.huggingface.co/models/bigscience/bloom"
HF_TOKEN = os.environ["HF_TOKEN"]
headers = {"Authorization": f"Bearer {HF_TOKEN}"}


prompt1 = """
word: risk
poem using word: And then the day came,
when the risk
to remain tight
in a bud
was more painful
than the risk
it took
to blossom.
word: """

prompt2 = """
Q: Joy has 5 balls. He buys 2 more cans of balls. Each can has 3 balls. How many balls he has now?
A: Joy had 5 balls. 2 cans of 3 balls each is 6 balls. 5 + 6 = 11. Answer is 11.
Q: Jane has 16 balls. Half balls are golf balls, and half golf balls are red. How many red golf balls are there?
A: """

prompt3 = """Q: A juggler can juggle 16 balls. Half of the balls are golf balls, and half of the golf balls are blue. How many blue golf balls are there?
A: Let’s think step by step.
"""



def text_generate(prompt, generated_txt): #, input_prompt_sql ): #, input_prompt_dalle2):

  print(f"*****Inside text_generate - Prompt is :{prompt}")
  #if input_prompt_sql != '':
  #  prompt = input_prompt_sql #"Instruction: Given an input question, respond with syntactically correct PostgreSQL\nInput: " +input_prompt_sql + "\nPostgreSQL query: "
  #elif input_prompt_dalle2 !='':
  #  prompt = "Dalle Prompt: " + input_prompt_dalle2 + "\nNew Dalle Prompt: "
    
  json_ = {"inputs": prompt,
            "parameters":
            {
            "top_p": 0.9,
          "temperature": 1.1,
          "max_new_tokens": 250,
          "return_full_text": True,
          "do_sample":True,
          }, 
          "options": 
          {"use_cache": True,
          "wait_for_model": True,
          },}
  response = requests.post(API_URL, headers=headers, json=json_)
  print(f"Response  is : {response}")
  output = response.json()
  print(f"output is : {output}") 
  output_tmp = output[0]['generated_text']
  print(f"output_tmp is: {output_tmp}")
  solution = output_tmp.split("\nQ:")[0]   
  print(f"Final response after splits is: {solution}")
  if '\nOutput:' in solution:
    final_solution = solution.split("\nOutput:")[0] 
    print(f"Response after removing output is: {final_solution}")
  elif '\n\n' in solution:
    final_solution = solution.split("\n\n")[0] 
    print(f"Response after removing new line entries is: {final_solution}")
  else:
    final_solution = solution
  
  
  if len(generated_txt) == 0 :
    display_output = final_solution
  else:
    display_output = generated_txt[:-len(prompt)] + final_solution
  new_prompt = final_solution[len(prompt):]
  print(f"new prompt for next cycle is : {new_prompt}")
  print(f"display_output for printing on screen is : {display_output}")
  if len(new_prompt) == 0:
    temp_text = display_output[::-1]
    print(f"What is the last character of sentence? : {temp_text[0]}")
    if temp_text[1] == '.':
      first_period_loc = temp_text[2:].find('.') + 1
      print(f"Location of last Period is: {first_period_loc}")
      new_prompt = display_output[-first_period_loc:-1]
      print(f"Not sending blank as prompt so new prompt for next cycle is : {new_prompt}")
    else:
      print("HERE")
      first_period_loc = temp_text.find('.')
      print(f"Location of last Period is : {first_period_loc}")
      new_prompt = display_output[-first_period_loc:-1]
      print(f"Not sending blank as prompt so new prompt for next cycle is : {new_prompt}")
    display_output = display_output[:-1]
    
  return display_output, new_prompt  #generated_txt+prompt #final_solution


demo = gr.Blocks()

with demo:
  gr.Markdown("<h1><center>Bloom</center></h1>")
  gr.Markdown(
        """Testing Bloom for SQL generation """
        )
  with gr.Row():
    #example_prompt = gr.Radio( ["Q: A juggler can juggle 16 balls. Half of the balls are golf balls, and half of the golf balls are blue. How many blue golf balls are there?\nA: Let’s think step by step.\n"], label= "Choose a sample Prompt")
    #example_prompt = gr.Radio( [
    #"Instruction: Given an input question, respond with syntactically correct PostgreSQL\nInput: How many users signed up in the past month?\nPostgreSQL query: ", 
    #"Instruction: Given an input question, respond with syntactically correct PostgreSQL\nInput: Create a query that displays empfname, emplname, deptid, deptname, location from employee table. Results should be in the ascending order based on the empfname and location.\nPostgreSQL query: ", 
    #"Instruction: Given an input question, respond with syntactically correct PostgreSQL. Only use tables called 'employees'.\nInput: What is the total salary paid to all the employees?\nPostgreSQL query: ",
    #"Instruction: Given an input question, respond with syntactically correct PostgreSQL. Only use tables called 'employees'.\nInput: List names of all the employees whose name end with 'r'.\nPostgreSQL query: ",
    #"Instruction: Given an input question, respond with syntactically correct PostgreSQL. Only use tables called 'employees'.\nInput: What are the number of employees in each department?\nPostgreSQL query: ",
    #"Instruction: Given an input question, respond with syntactically correct PostgreSQL. Only use table called 'employees'.\nInput: Select names of all theemployees who have third character in their name as 't'.\nPostgreSQL query: ",
    #"Instruction: Given an input question, respond with syntactically correct PostgreSQL. Only use table called 'employees'.\nInput: Select names of all the employees who are working under 'Peter'\nPostgreSQL query: ",  ], label= "Choose a sample Prompt")
    #"Dalle Prompt: Cyberwave vaporpunk art of a kneeling figure, looking up at a glowing neon book icon, smoke and mist, pink and blue lighting, cybernetic sci-fi render\nNew Dalle Prompt: " ], label= "Choose a sample Prompt")
    
  #with gr.Row():
    input_prompt = gr.Textbox(label="Write some text to get started...", lines=3)  #input_prompt_sql
    #input_prompt_dalle2 = gr.Textbox(label="Or Write sample Dalle2 prompts to get more Prompt ideas...")
    #input_prompt2 = gr.Textbox(label="Write some text to get started...", lines=3, visible=False)  #input_prompt_sql
    
    #input_word = gr.Textbox(placeholder="Enter a word here to generate text ...")
  with gr.Row():
    generated_txt = gr.Textbox(lines=7, visible = True)
    #output_image = gr.Image(type="filepath", shape=(256,256))
  
  b1 = gr.Button("Generate Text")
  #b2 = gr.Button("Generate Image") 

  b1.click(text_generate, inputs=[input_prompt, generated_txt], outputs=[generated_txt, input_prompt]) #input_word #input_prompt_dalle2 #input_prompt_sql #example_prompt
  #b2.click(poem_to_image, poem_txt, output_image)
  #examples=examples 

demo.launch(enable_queue=True, debug=True)