liteDungeon / app.py
Logan Zoellner
initial commit
5cee86f
raw
history blame
2.62 kB
from asyncio import constants
import gradio as gr
import requests
import os
import re
import random
from words import *
basePrompt="""
The following session was recorded from a text adventure game.
----
"""
story="""
Computer: You approach the enterance of the dungeon.
"""
def fallbackResponse():
"You are attacked by a {monster}!".format(monster=random.choice(monsters))
def continue_story(prompt):
p=basePrompt+story+"player:"+prompt
print(f"*****Inside desc_generate - Prompt is :{p}")
json_ = {"inputs": p,
"parameters":
{
"top_p": 0.9,
"temperature": 1.1,
"max_new_tokens": 50,
"return_full_text": False,
}}
#response = requests.post(API_URL, headers=headers, json=json_)
response = requests.post(API_URL, json=json_)
output = response.json()
print(f"If there was an error? Reason is : {output}")
#error handling
if "error" in output:
print("using fallback description method!")
#fallback method
computerResponse=fallbackResponse()
else:
output_tmp = output[0]['generated_text']
#truncate response at first newline
if "\n" in output_tmp:
idx = output_tmp.find('\n')
output_tmp = output_tmp[:idx]
#check if response starts with "computer:", if not add it
if ":" not in output_tmp:
output_tmp = "computer:"+output_tmp
story=story+"player:"+prompt+"\n"+output_tmp+"\n"
demo = gr.Blocks()
with demo:
gr.Markdown("<h1><center>NPC Generator</center></h1>")
gr.Markdown(
"based on <a href=https://huggingface.co/spaces/Gradio-Blocks/GPTJ6B_Poetry_LatentDiff_Illustration> Gradio poetry generator</a>."
"<div>first input name, race and class (or generate them randomly)</div>"
"<div>Next, use GPT-J to generate a short description</div>"
"<div>Finally, Generate an illustration 🎨 provided by <a href=https://huggingface.co/spaces/multimodalart/latentdiffusion>Latent Diffusion model</a>.</div>"
)
with gr.Row():
b0 = gr.Button("Submit")
with gr.Row():
input_command = gr.Textbox(label="input",placeholder="look around")
with gr.Row():
story = gr.Textbox(label="description",lines=7)
b0.click(continue_story,inputs=[],outputs=[input_name,input_race,input_class,input_pronoun])
b1.click(npc_generate, inputs=[ input_name,input_race,input_class,input_pronoun], outputs=desc_txt)
b2.click(desc_to_image, desc_txt, output_image)
#examples=examples
demo.launch(enable_queue=True, debug=True)