Manofem commited on
Commit
d031c18
·
verified ·
1 Parent(s): b6e8d74

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -96
app.py CHANGED
@@ -1,100 +1,13 @@
1
  import gradio as gr
2
- import random
3
 
4
- def generate_poem(topic):
5
- # A list of possible rhymes for each line
6
- rhymes = [
7
- ["sky", "fly", "high", "eye", "why"],
8
- ["moon", "soon", "tune", "spoon", "dune"],
9
- ["star", "far", "car", "bar", "jar"],
10
- ["light", "night", "bright", "sight", "fight"],
11
- ["day", "way", "say", "play", "stay"]
12
- ]
13
- # A list of possible adjectives for each line
14
- adjectives = [
15
- ["blue", "clear", "vast", "deep", "bright"],
16
- ["white", "full", "round", "shiny", "silver"],
17
- ["sparkling", "distant", "shooting", "glowing", "twinkling"],
18
- ["warm", "soft", "gentle", "calm", "sweet"],
19
- ["sunny", "happy", "beautiful", "lovely", "wonderful"]
20
- ]
21
- # A list of possible nouns for each line
22
- nouns = [
23
- ["sky", "heaven", "cloud", "bird", "plane"],
24
- ["moon", "lune", "globe", "cheese", "dream"],
25
- ["star", "fire", "light", "wish", "heart"],
26
- ["light", "sun", "ray", "glow", "smile"],
27
- ["day", "life", "joy", "love", "hope"]
28
- ]
29
- # A list of possible verbs for each line
30
- verbs = [
31
- ["see", "feel", "touch", "reach", "dream"],
32
- ["watch", "follow", "sing", "dance", "love"],
33
- ["catch", "hold", "keep", "make", "share"],
34
- ["shine", "burn", "glow", "spark", "blaze"],
35
- ["live", "enjoy", "celebrate", "cherish", "embrace"]
36
- ]
37
- # A list of possible prepositions for each line
38
- prepositions = [
39
- ["in", "on", "under", "above", "over"],
40
- ["by", "with", "from", "to", "for"],
41
- ["of", "about", "around", "through", "across"],
42
- ["like", "as", "than", "more", "less"],
43
- ["at", "during", "since", "until", "after"]
44
- ]
45
- # A list of possible connectors for each line
46
- connectors = [
47
- ["and", "but", "or", "nor", "yet"],
48
- ["so", "for", "because", "although", "though"],
49
- ["if", "then", "else", "when", "while"],
50
- ["where", "how", "why", "what", "who"],
51
- ["which", "that", "this", "these", "those"]
52
- ]
53
- # A template for each line of the poem
54
- template = [
55
- "I {verb} the {adjective} {noun} {preposition} the {rhyme}",
56
- "{connector}, I {verb} the {adjective} {noun} {preposition} the {rhyme}",
57
- "I {verb} the {adjective} {noun} {preposition} the {rhyme}",
58
- "{connector}, I {verb} the {adjective} {noun} {preposition} the {rhyme}",
59
- "I {verb} the {adjective} {noun} {preposition} the {rhyme}"
60
- ]
61
- # Choose a random rhyme scheme for the poem
62
- rhyme_scheme = random.choice(rhymes)
63
- # Generate the poem line by line
64
- poem = ""
65
- for i in range(5):
66
- # Choose a random word for each placeholder in the template
67
- verb = random.choice(verbs[i])
68
- adjective = random.choice(adjectives[i])
69
- noun = random.choice(nouns[i])
70
- preposition = random.choice(prepositions[i])
71
- connector = random.choice(connectors[i])
72
- rhyme = rhyme_scheme[i]
73
- # Replace the placeholders with the chosen words
74
- line = template[i].format(verb=verb, adjective=adjective, noun=noun, preposition=preposition, connector=connector, rhyme=rhyme)
75
- # Capitalize the first letter of the line
76
- line = line[0].upper() + line[1:]
77
- # Add the line to the poem
78
- poem += line
79
- # Add a comma or a period at the end of the line
80
- if i < 4:
81
- poem += ","
82
- else:
83
- poem += "."
84
- # Add a newline character after the line
85
- poem += "\n"
86
- # Yield the poem so far
87
- yield poem
88
 
89
- # Create a text streaming mode interface with gradio
90
- demo = gr.Interface(
91
- generate_poem, # The function to run
92
- gr.Textbox("Enter a topic for the poem"), # The input component
93
- gr.Textbox(streaming=True), # The output component
94
- title="Poem Generator", # The title of the interface
95
- description="This is a simple poem generator that creates a 5-line poem based on a topic. The poem has a random rhyme scheme and uses random words from a predefined list. Enter a topic and see the poem being generated in real time." # The description of the interface
96
- )
97
 
98
- # Launch the interface
99
- demo.launch()
100
-
 
 
 
1
  import gradio as gr
 
2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
+ def my_streaming_function(input_text):
5
+ for i in range(5):
6
+ yield f"Processing step {i+1}: {input_text}"
7
+ time.sleep(1) # Simulate processing time
 
 
 
 
8
 
9
+ gr.Interface(
10
+ my_streaming_function,
11
+ gr.Textbox(lines=2, label="Input text"),
12
+ gr.Textbox(streaming=True, label="Streaming output"),
13
+ )