Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import openai | |
| def generate_scene_descriptions(api_key, theme, story): | |
| openai.api_key = api_key | |
| # Base introduction for the prompt | |
| intro = f"Generate structured scene descriptions for a series of scenes for a video on the theme \"{theme}\":\n" | |
| story_prompt = f"Story: {story}\n\n" if story else "" | |
| # Constructing the prompt for multiple scenes | |
| scenes_prompt = "" | |
| for i in range(1, 6): # For generating up to 5 scenes | |
| scenes_prompt += ( | |
| f"Scene #{i}\n" | |
| "Narrator's voice: \n" | |
| "Video prompt: \n" | |
| "Voice over: \n" | |
| "Music style: \n\n" | |
| ) | |
| # Combine intro, optional story, and scenes into the full prompt | |
| full_prompt = intro + story_prompt + scenes_prompt | |
| # Call to OpenAI's GPT-3.5 API with the custom prompt | |
| response = openai.Completion.create( | |
| engine="text-davinci-003", | |
| prompt=full_prompt, | |
| max_tokens=1000 # Increased max_tokens to accommodate longer responses | |
| ) | |
| # The response from the AI is formatted text based on our structured prompt | |
| return response.choices[0].text.strip() | |
| # Create the Gradio interface with appropriate inputs and outputs | |
| iface = gr.Interface( | |
| fn=generate_scene_descriptions, | |
| inputs=[ | |
| gr.Textbox(label="Your OpenAI API Key", type="password", placeholder="Enter your OpenAI API Key here"), # Secure API key input | |
| gr.Textbox(label="Thematic Area", placeholder="Enter a thematic area, e.g., Climate Crisis"), # Thematic area input | |
| gr.Textbox(label="Story (Optional)", placeholder="Enter a story to base the scenes on (optional)") # Story input, optional by default | |
| ], | |
| outputs="text", # The output is a text field | |
| title="Multi-Scene Generator", # Title of the Gradio app | |
| description="This app generates structured scene descriptions for multiple scenes of a video based on the given thematic area and optional story input using GPT-3.5." # Description for the Gradio app | |
| ) | |
| # Launch the interface locally for testing | |
| iface.launch() | |