TANVEERMAKHDOOM's picture
Update app.py
cb7b1ec verified
raw
history blame
4.69 kB
import gradio as gr
import anthropic
# Initialize the Anthropic client
client = anthropic.Anthropic()
def generate_game_environment(description_prompt):
message = client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=500,
temperature=0.7,
system="You are a creative writer specialized in generating immersive game environments.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": description_prompt
}
]
}
]
)
return message.content
def generate_protagonist(description_prompt):
message = client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=500,
temperature=0.7,
system="You are a character designer specializing in creating detailed protagonists for games.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": description_prompt
}
]
}
]
)
return message.content
def generate_antagonist(description_prompt):
message = client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=500,
temperature=0.7,
system="You are a character designer specializing in creating compelling antagonists for games.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": description_prompt
}
]
}
]
)
return message.content
def generate_game_story(environment, protagonist, antagonist):
description_prompt = (
f"Create a compelling game story based on the following details:\n"
f"Game Environment: {environment}\n"
f"Protagonist: {protagonist}\n"
f"Antagonist: {antagonist}\n"
"Please provide a narrative that ties these elements together in an engaging way."
)
message = client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=1000,
temperature=0.7,
system="You are a master storyteller. Generate an engaging game story from the given details.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": description_prompt
}
]
}
]
)
return message.content
def generate_game_design(environment, protagonist, antagonist):
# Generate each part of the game design
env_description = generate_game_environment(environment)
prot_description = generate_protagonist(protagonist)
antag_description = generate_antagonist(antagonist)
game_story = generate_game_story(env_description, prot_description, antag_description)
return env_description, prot_description, antag_description, game_story
def main():
with gr.Blocks() as demo:
gr.Markdown("# StoryForge\nA tool to help you generate engaging game design ideas.")
with gr.Row():
with gr.Column():
gr.Markdown("## Game Development")
environment = gr.Textbox(label="Game Environment", placeholder="e.g., a post-apocalyptic city")
protagonist = gr.Textbox(label="Protagonist", placeholder="e.g., a young warrior with a mysterious past")
antagonist = gr.Textbox(label="Antagonist", placeholder="e.g., a dark sorcerer seeking to conquer the world")
submit_btn = gr.Button("Generate Game Design")
with gr.Column():
gr.Markdown("## Protagonist")
gr.Markdown("## Antagonist")
gr.Markdown("## Game Story")
env_output = gr.Textbox(label="Game Environment", interactive=False)
prot_output = gr.Textbox(label="Protagonist", interactive=False)
antag_output = gr.Textbox(label="Antagonist", interactive=False)
game_story_output = gr.Textbox(label="Game Story", interactive=False)
submit_btn.click(generate_game_design, inputs=[environment, protagonist, antagonist], outputs=[env_output, prot_output, antag_output, game_story_output])
demo.launch()
if __name__ == "__main__":
main()