Amanda Griffith commited on
Commit
7b5454e
·
unverified ·
0 Parent(s):

Add files via upload

Browse files
Files changed (5) hide show
  1. README.md +13 -0
  2. app.py +58 -0
  3. gitattributes.txt +34 -0
  4. requirements.txt +4 -0
  5. spell_bg.JPG +0 -0
README.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Fantasy Spell Generation with GPT2
3
+ emoji: 🪄
4
+ colorFrom: pink
5
+ colorTo: blue
6
+ sdk: gradio
7
+ sdk_version: 3.16.2
8
+ app_file: app.py
9
+ pinned: true
10
+ tags: ["text generation", "gpt", "spells", "rpg"]
11
+ ---
12
+
13
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import gradio as gr
3
+ from transformers import pipeline
4
+
5
+ HF_API = os.environ.get("HF_API")
6
+
7
+ model = "aegrif/gpt2_spell_gen"
8
+ tokenizer = "aegrif/gpt2_spell_gen"
9
+ pipeline = pipeline(task="text-generation", model=model, tokenizer=tokenizer, use_auth_token=HF_API)
10
+
11
+
12
+ def predict(text, temperature, top_k, top_p, max_length):
13
+ input_text = f"<|name|> {text} <|spell|>"
14
+ pipeline.model.config.pad_token_id = pipeline.model.config.eos_token_id
15
+ pipeline.model.config.temperature = temperature
16
+ pipeline.model.config.top_k = top_k
17
+ pipeline.model.config.top_p = top_p
18
+ predictions = pipeline(input_text, max_length=max_length, num_return_sequences=1)[0]["generated_text"]
19
+ spell_start = len(text) + 19
20
+ output = text + "\n\n" + predictions[spell_start:]
21
+ return output.strip()
22
+
23
+
24
+ title = "# Spell generation with GPT-2"
25
+ description = "## Generate your own spells"
26
+ examples = [["Speak with Objects"], ["Summon Burley"], ["Moon Step"], ["Burden of the Gods"], ["Shape Rock"], ["Bard's Laughter"], ["Mundane Foresight"], ["Word of Cancellation"]]
27
+
28
+ with gr.Blocks(css="#spell-row {justify-content: flex-start; }") as interface:
29
+ gr.Markdown(title)
30
+ gr.Markdown(description)
31
+ with gr.Row(variant="compact", elem_id="spell-row"):
32
+ with gr.Column(scale=1):
33
+ name = gr.Textbox(lines=1, label="Spell Name", placeholder="Enter your spell name here...")
34
+ with gr.Row(variant="compact", elem_id="spell-row"):
35
+ with gr.Column(scale=3):
36
+ gr.Examples(examples, inputs=name)
37
+ with gr.Row(variant="compact", elem_id="spell-row"):
38
+ gr.Markdown("## Model Settings")
39
+ with gr.Row(variant="compact", elem_id="spell-row"):
40
+ with gr.Column(scale=1):
41
+ max_length = gr.Slider(minimum=50, maximum=800, step=50, value=400, label="Max Length")
42
+ with gr.Column(scale=1):
43
+ temperature = gr.Slider(minimum=0.1, maximum=float(1.9), step=0.1, value=float(1), label="Temperature")
44
+ with gr.Row(variant="compact", elem_id="spell-row"):
45
+ with gr.Column(scale=1):
46
+ top_k = gr.Slider(minimum=0, maximum=1000, step=10, value=50, label="Top K")
47
+ with gr.Column(scale=1):
48
+ top_p = gr.Slider(minimum=0.0, maximum=1.0, step=0.1, value=1, label="Top P")
49
+ with gr.Row(variant="compact", elem_id="spell-row"):
50
+ output = gr.Textbox(label="Generated Spell", placeholder="Your spell will appear here.")
51
+ generate_btn = gr.Button("Generate Spell")
52
+ with gr.Row(variant="compact", elem_id="spell-row"):
53
+ gr.Markdown(
54
+ "**Max Length**: The maximum length of the generated spell.\n\n**Temperature**: The randomness of the generated spell. Higher values are more random, lower values are more deterministic.\n\n**Top K**: The number of highest probability vocabulary tokens to keep for top-k-filtering.\n\n**Top P**: The cumulative probability for top-p-filtering.")
55
+
56
+ generate_btn.click(fn=predict, inputs=[name,temperature,top_k,top_p, max_length], outputs=output)
57
+
58
+ interface.launch()
gitattributes.txt ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tflite filter=lfs diff=lfs merge=lfs -text
29
+ *.tgz filter=lfs diff=lfs merge=lfs -text
30
+ *.wasm filter=lfs diff=lfs merge=lfs -text
31
+ *.xz filter=lfs diff=lfs merge=lfs -text
32
+ *.zip filter=lfs diff=lfs merge=lfs -text
33
+ *.zst filter=lfs diff=lfs merge=lfs -text
34
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ gradio
2
+ transformers
3
+ huggingface_hub
4
+ torch
spell_bg.JPG ADDED