lachine commited on
Commit
8629bfd
·
1 Parent(s): 66f9187

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +66 -6
app.py CHANGED
@@ -1,14 +1,74 @@
 
1
  from transformers import pipeline, set_seed
2
  from random import randint
3
- import gradio as gr
4
 
5
  generator = pipeline('text-generation', model='gpt2')
6
 
7
- def gpt2(string, max_length, amount):
 
 
 
 
 
 
 
 
8
  set_seed(randint(randint(1000,10000),randint(50000,300000)))
9
- return '\n\n'.join([d['generated_text'] for d in generator(string, max_length=max_length, num_return_sequences=amount))
 
 
 
 
 
 
 
 
10
  max_length_slider = gr.inputs.Slider(minimum=10, maximum=500, step=1, default=100, label='max_length')
11
- amount_slider = gr.inputs.Slider(minimum=1, maximum=5, step=1, default=1, label='num_return_sequences (Amount)')
12
- iface = gr.Interface(fn=gpt2, inputs=['text', max_length_slider], outputs='text')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
- iface.launch()
 
 
1
+ import gradio as gr
2
  from transformers import pipeline, set_seed
3
  from random import randint
 
4
 
5
  generator = pipeline('text-generation', model='gpt2')
6
 
7
+ def generate_text(text, max_length, amount):
8
+ """
9
+ Generates text using the GPT-2 model.
10
+ :param text: Input text to generate from.
11
+ :param max_length: Maximum length of generated text.
12
+ :param amount: Number of texts to generate.
13
+ :return: List of generated texts.
14
+ """
15
+ # Set the seed for reproducibility
16
  set_seed(randint(randint(1000,10000),randint(50000,300000)))
17
+
18
+ # Generate the text
19
+ generated_texts = [d['generated_text'] for d in generator(text, max_length=max_length, num_return_sequences=amount)]
20
+
21
+ # Return the generated text
22
+ return '\nend of text\n'.join(generated_texts)
23
+
24
+ # Define the inputs
25
+ text_input = gr.inputs.Textbox(lines=5, label='Input Text')
26
  max_length_slider = gr.inputs.Slider(minimum=10, maximum=500, step=1, default=100, label='max_length')
27
+ amount_slider = gr.inputs.Slider(minimum=1, maximum=5, step=1, default=1, label='num_return_equences (Amount)')
28
+
29
+ # Define the output
30
+ output_textbox = gr.outputs.Textbox(label='Output Text')
31
+
32
+ # Create the interface
33
+ interface = gr.Interface(fn=generate_text,
34
+ inputs=[text_input, max_length_slider, amount_slider],
35
+ outputs=output_textbox,
36
+ title='Minimal GPT-2 Demo',
37
+ description='Generate text using GPT-2')
38
+
39
+ # Set the page layout
40
+ interface.layout = 'vertical'
41
+
42
+ # Set the output text to wrap
43
+ interface.outputs[0].type = 'text'
44
+
45
+ # Add API documentation
46
+ interface.api.docs = {
47
+ 'generate_text': {
48
+ 'description': 'Generates text using the GPT-2 model.',
49
+ 'input': [
50
+ {
51
+ 'name': 'text',
52
+ 'type': 'str',
53
+ 'description': 'Input text to generate from.'
54
+ },
55
+ {
56
+ 'name': 'max_length',
57
+ 'type': 'int',
58
+ 'description': 'Maximum length of generated text.'
59
+ },
60
+ {
61
+ 'name': 'num_return_sequences',
62
+ 'type': 'int',
63
+ 'description': 'Number of texts to generate.'
64
+ }
65
+ ],
66
+ 'output': {
67
+ 'type': 'str',
68
+ 'description': r'The text(s). (seperated by "\nend of text\n"'
69
+ }
70
+ }
71
+ }
72
 
73
+ # Run the interface
74
+ interface.launch(share=True)