aliabid94 HF staff commited on
Commit
5ec1f8d
·
1 Parent(s): 8244494

Upload folder using huggingface_hub

Browse files
Files changed (5) hide show
  1. README.md +7 -9
  2. requirements.txt +2 -0
  3. run.py +115 -0
  4. test/a +0 -0
  5. wordlist.json +152 -0
README.md CHANGED
@@ -1,12 +1,10 @@
1
  ---
2
- title: Abcdef
3
- emoji: 📉
4
- colorFrom: red
5
- colorTo: pink
 
6
  sdk: gradio
7
- sdk_version: 3.29.0
8
- app_file: app.py
9
- pinned: false
10
  ---
11
-
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: abcdef
3
+ app_file: run.py
4
+ emoji: 🤯
5
+ colorFrom: blue
6
+ colorTo: blue
7
  sdk: gradio
8
+ python_version: 3.8.9
9
+ sdk_version: 3.30.0
 
10
  ---
 
 
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ pandas
2
+ numpy
run.py ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import json
3
+ import random
4
+ # from transformers import pipeline
5
+
6
+ # generator = pipeline("text-generation", model="gpt2", max_length=60)
7
+
8
+ with open("wordlist.json") as wordlist_json:
9
+ wordlist = json.load(wordlist_json)
10
+
11
+
12
+ def autocomplete(text):
13
+ return "more words"
14
+ # end_text = " ".join(text.split(" ")[-30:-1])
15
+ # generated_text = generator(
16
+ # end_text, return_full_text=False, clean_up_tokenization_spaces=True
17
+ # )[0]["generated_text"]
18
+ # generated_text = generated_text.replace("\n", "")
19
+ # return generated_text
20
+
21
+
22
+ with gr.Blocks() as demo:
23
+ gr.Markdown(
24
+ """
25
+ # GPT Golf
26
+
27
+ How many turns will it take you to get GPT to say the target word?
28
+ Here are the rules of the game:
29
+ - Your goal is to get GPT to say a target word in as few turns as possible.
30
+ - Each turn, you add up to 5 words to its dialogue.
31
+ - When you click submit, your prompt will be added to the dialogue. Then GPT will also add to the dialogue.
32
+ - You can't say the target word, but as soon as GPT does, you win!
33
+ """
34
+ )
35
+ error_box = gr.Textbox(label="Error", elem_id="error", visible=False)
36
+ dialogue_var = gr.Variable(value=[])
37
+
38
+ start_btn = gr.Button("Start", variant="primary")
39
+ with gr.Column(visible=False) as game:
40
+ with gr.Row() as stats:
41
+ target_word_box = gr.Textbox(
42
+ label="Target Word", elem_id="target", interactive=False
43
+ )
44
+ num_turns_box = gr.Number(0, label="# of Turns so Far", elem_id="num_turns")
45
+ dialogue_box = gr.HighlightedText(label="Dialogue")
46
+ with gr.Column() as prompt_set:
47
+ prompt_box = gr.Textbox(label="Prompt", placeholder="Enter Next 5 Words...")
48
+ submit_btn = gr.Button("Submit").style(full_width=True)
49
+ win = gr.HTML(
50
+ "<div style='width: 100%; padding: 3rem; font-size: 4rem; color: green; text-align: center; font-weight: bold'>You Won!</div>",
51
+ visible=False,
52
+ )
53
+
54
+ def start_game():
55
+ return {
56
+ start_btn: gr.update(visible=False),
57
+ game: gr.update(visible=True),
58
+ target_word_box: random.choice(wordlist),
59
+ }
60
+
61
+ start_btn.click(start_game, inputs=None, outputs=[start_btn, game, target_word_box])
62
+
63
+ def submit(prompt, target_word, dialogue, num_turns):
64
+ if len(prompt.split(" ")) > 5:
65
+ return {
66
+ error_box: gr.update(
67
+ visible=True, value="Prompt must be a maximum of 5 words!"
68
+ )
69
+ }
70
+ if target_word in prompt:
71
+ return {
72
+ error_box: gr.update(
73
+ visible=True, value="You can't use the target word in the prompt!"
74
+ )
75
+ }
76
+ dialogue.append(prompt)
77
+ response = autocomplete(" ".join(dialogue))
78
+ dialogue.append(response)
79
+ labeled_dialogue = [
80
+ (text, None if i % 2 == 0 else "gpt") for i, text in enumerate(dialogue)
81
+ ]
82
+ if target_word in response:
83
+ return {
84
+ dialogue_box: labeled_dialogue,
85
+ prompt_set: gr.update(visible=False),
86
+ win: gr.update(visible=True),
87
+ num_turns_box: num_turns + 1,
88
+ dialogue_var: dialogue,
89
+ error_box: gr.update(visible=False),
90
+ }
91
+ else:
92
+ return {
93
+ dialogue_box: labeled_dialogue,
94
+ prompt_box: "",
95
+ num_turns_box: num_turns + 1,
96
+ dialogue_var: dialogue,
97
+ error_box: gr.update(visible=False),
98
+ }
99
+
100
+ submit_btn.click(
101
+ submit,
102
+ inputs=[prompt_box, target_word_box, dialogue_var, num_turns_box],
103
+ outputs=[
104
+ dialogue_var,
105
+ dialogue_box,
106
+ prompt_box,
107
+ num_turns_box,
108
+ error_box,
109
+ prompt_set,
110
+ win,
111
+ ],
112
+ )
113
+
114
+
115
+ demo.launch()
test/a ADDED
File without changes
wordlist.json ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ "needle",
3
+ "space",
4
+ "collar",
5
+ "yarn",
6
+ "web",
7
+ "chin",
8
+ "wall",
9
+ "look",
10
+ "north",
11
+ "business",
12
+ "queen",
13
+ "rain",
14
+ "basket",
15
+ "plant",
16
+ "stocking",
17
+ "hope",
18
+ "horse",
19
+ "stranger",
20
+ "mistake",
21
+ "picture",
22
+ "insurance",
23
+ "question",
24
+ "song",
25
+ "cart",
26
+ "month",
27
+ "sun",
28
+ "tiger",
29
+ "walk",
30
+ "tin",
31
+ "regret",
32
+ "system",
33
+ "person",
34
+ "pancake",
35
+ "mom",
36
+ "branch",
37
+ "wound",
38
+ "committee",
39
+ "line",
40
+ "yak",
41
+ "kettle",
42
+ "veil",
43
+ "jail",
44
+ "scene",
45
+ "orange",
46
+ "cactus",
47
+ "trip",
48
+ "blow",
49
+ "sister",
50
+ "activity",
51
+ "books",
52
+ "umbrella",
53
+ "invention",
54
+ "apparel",
55
+ "pocket",
56
+ "temper",
57
+ "power",
58
+ "corn",
59
+ "wrist",
60
+ "sink",
61
+ "rock",
62
+ "balance",
63
+ "quiver",
64
+ "sense",
65
+ "payment",
66
+ "bait",
67
+ "meeting",
68
+ "fang",
69
+ "play",
70
+ "furniture",
71
+ "playground",
72
+ "pollution",
73
+ "bubble",
74
+ "sort",
75
+ "pear",
76
+ "straw",
77
+ "class",
78
+ "friends",
79
+ "memory",
80
+ "governor",
81
+ "rice",
82
+ "waste",
83
+ "alarm",
84
+ "man",
85
+ "sidewalk",
86
+ "powder",
87
+ "theory",
88
+ "zephyr",
89
+ "sugar",
90
+ "quince",
91
+ "plane",
92
+ "friend",
93
+ "tramp",
94
+ "eye",
95
+ "exchange",
96
+ "force",
97
+ "hate",
98
+ "cows",
99
+ "field",
100
+ "oatmeal",
101
+ "degree",
102
+ "duck",
103
+ "creator",
104
+ "weight",
105
+ "tongue",
106
+ "note",
107
+ "stove",
108
+ "downtown",
109
+ "trade",
110
+ "stem",
111
+ "magic",
112
+ "fireman",
113
+ "thing",
114
+ "anger",
115
+ "lunchroom",
116
+ "scarecrow",
117
+ "jellyfish",
118
+ "mind",
119
+ "soup",
120
+ "structure",
121
+ "cattle",
122
+ "form",
123
+ "slope",
124
+ "airport",
125
+ "talk",
126
+ "camp",
127
+ "acoustics",
128
+ "crime",
129
+ "tail",
130
+ "order",
131
+ "brick",
132
+ "level",
133
+ "quill",
134
+ "cow",
135
+ "leg",
136
+ "language",
137
+ "bomb",
138
+ "land",
139
+ "recess",
140
+ "swim",
141
+ "limit",
142
+ "quiet",
143
+ "partner",
144
+ "store",
145
+ "fear",
146
+ "cover",
147
+ "sticks",
148
+ "scent",
149
+ "thread",
150
+ "teaching",
151
+ "transport"
152
+ ]