Spaces:
Build error
Build error
Add flag for backstory generator
Browse files
app.py
CHANGED
@@ -8,7 +8,7 @@ filename = "mistral-7b-instruct-v0.1.Q4_K_M.gguf"
|
|
8 |
model_file_path = hf_hub_download(repo_id=repo_id, filename=filename)
|
9 |
|
10 |
|
11 |
-
def generate_characters():
|
12 |
class_list = ["Barbarian", "Bard", "Cleric", "Druid", "Fighter",
|
13 |
"Monk", "Paladin", "Ranger", "Rogue", "Sorcerer", "Warlock", "Wizard"]
|
14 |
sub_class_list = ["Barbarian - Beserker", "Barbarian - Wildheart", "Barbarian - Wild Magic", "Bard - College of Lore", "Bard - College of Valour", "Bard - College of Swords", "Cleric - Life Domain", "Cleric - Light Domain", "Cleric - Trickery Domain", "Cleric - Knowledge Domain", "Cleric - Nature Domain", "Cleric - Tempest Domain", "Cleric - War Domain", "Druid - Circle of the moon", "Druid - Circle of the Land", "Druid - Circle of the Spores", "Fighter - Battle Master", "Fighter - Eldritch Knight", "Fighter - Champion", "Monk - Way of the open hand", "Monk - Way of shadow", "Monk - Way of the four elements",
|
@@ -44,22 +44,23 @@ def generate_characters():
|
|
44 |
|
45 |
characters = [generate_character() for _ in range(2)]
|
46 |
characters.append(generate_multiclass_character())
|
47 |
-
|
48 |
-
def create_character_output(character):
|
49 |
output = ""
|
50 |
for key, value in character.items():
|
51 |
output += f"- **{key}:** {value}\n"
|
52 |
output += "\n"
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
|
|
57 |
return output
|
58 |
|
59 |
output = ""
|
60 |
for idx, char in enumerate(characters, 1):
|
61 |
output += f"### Character {idx}:\n"
|
62 |
-
output += create_character_output(char)
|
63 |
|
64 |
return output
|
65 |
|
@@ -95,6 +96,8 @@ def generate_backstory(character):
|
|
95 |
if __name__ == "__main__":
|
96 |
iface = gr.Interface(fn=generate_characters,
|
97 |
title="D&D Character Generator",
|
|
|
|
|
98 |
description="Generates 3 random D&D characters.",
|
99 |
-
|
100 |
iface.launch()
|
|
|
8 |
model_file_path = hf_hub_download(repo_id=repo_id, filename=filename)
|
9 |
|
10 |
|
11 |
+
def generate_characters(generate_backstories=False):
|
12 |
class_list = ["Barbarian", "Bard", "Cleric", "Druid", "Fighter",
|
13 |
"Monk", "Paladin", "Ranger", "Rogue", "Sorcerer", "Warlock", "Wizard"]
|
14 |
sub_class_list = ["Barbarian - Beserker", "Barbarian - Wildheart", "Barbarian - Wild Magic", "Bard - College of Lore", "Bard - College of Valour", "Bard - College of Swords", "Cleric - Life Domain", "Cleric - Light Domain", "Cleric - Trickery Domain", "Cleric - Knowledge Domain", "Cleric - Nature Domain", "Cleric - Tempest Domain", "Cleric - War Domain", "Druid - Circle of the moon", "Druid - Circle of the Land", "Druid - Circle of the Spores", "Fighter - Battle Master", "Fighter - Eldritch Knight", "Fighter - Champion", "Monk - Way of the open hand", "Monk - Way of shadow", "Monk - Way of the four elements",
|
|
|
44 |
|
45 |
characters = [generate_character() for _ in range(2)]
|
46 |
characters.append(generate_multiclass_character())
|
47 |
+
|
48 |
+
def create_character_output(character, generate_backstory=False):
|
49 |
output = ""
|
50 |
for key, value in character.items():
|
51 |
output += f"- **{key}:** {value}\n"
|
52 |
output += "\n"
|
53 |
+
if generate_backstory:
|
54 |
+
backstory = generate_backstory(character)
|
55 |
+
# Remove everything up to and including `[/INST]\n`
|
56 |
+
output += backstory[backstory.find("[/INST]\n") + 8:]
|
57 |
+
|
58 |
return output
|
59 |
|
60 |
output = ""
|
61 |
for idx, char in enumerate(characters, 1):
|
62 |
output += f"### Character {idx}:\n"
|
63 |
+
output += create_character_output(char, generate_backstories)
|
64 |
|
65 |
return output
|
66 |
|
|
|
96 |
if __name__ == "__main__":
|
97 |
iface = gr.Interface(fn=generate_characters,
|
98 |
title="D&D Character Generator",
|
99 |
+
inputs=[gr.inputs.Checkbox(
|
100 |
+
label="Generate Backstories?")],
|
101 |
description="Generates 3 random D&D characters.",
|
102 |
+
outputs="markdown")
|
103 |
iface.launch()
|