Spaces:
Runtime error
Runtime error
import gradio as gr | |
import ai | |
import github_manager | |
import webbrowser | |
def main(): | |
pre_prompt = """using pygame and no sprites, create: """ | |
initial_prompt = """Conway's game of life, but the user controls one of the squares. If the square dies, the game is over.""" | |
add_example = False | |
post_prompt = """ | |
run the game with asyncio.run(main()) | |
""" | |
if add_example: | |
example_code_file_path = "resources/main.py" | |
with open(example_code_file_path, "r") as file: | |
example_code = file.read() | |
post_prompt = example_code | |
with gr.Blocks() as app: | |
inp = gr.Textbox(label="Input Prompt", | |
value=initial_prompt) | |
with gr.Row(): | |
model_choice = gr.Dropdown(label="Select Model", | |
choices=[m for m in ai.models], | |
value=ai.models[0], | |
type="index", | |
interactive=True) | |
no_tokens = gr.Number(label="Tokens", value=1000) | |
btn = gr.Button(value="Generate Game") | |
with gr.Column(visible=False) as save_col: | |
save_button = gr.Button("Build The Game") | |
with gr.Column(visible=False) as play_col: | |
play_button = gr.Button("Play The Game") | |
out = gr.Code(label="Generated Code") | |
def generate(prompt, model_index, max_tokens): | |
final_prompt = f"""{pre_prompt} {prompt}. {post_prompt}""" | |
generated_code = ai.generate_code(prompt=final_prompt, | |
model_index=model_index, | |
max_tokens=max_tokens) | |
return { | |
out: generated_code, | |
save_col: gr.Column(visible=True), | |
} | |
def save(text): | |
github_manager.update_repo(text) | |
return { | |
play_col: gr.Column(visible=True) | |
} | |
def play(): | |
webbrowser.open(github_manager.game_link()) | |
btn.click(generate, inputs=[inp, model_choice, no_tokens], outputs=[out, save_col], queue=True) | |
save_button.click(save, inputs=[out], outputs=[play_col]) | |
play_button.click(play, inputs=[], outputs=[]) | |
app.launch(share=True) | |
if __name__ == "__main__": | |
main() | |