Spaces:
Running
Running
import os | |
os.system('pip install ipython') | |
from IPython.display import clear_output | |
os.system('pip install python-dotenv pydub ffmpeg-python nltk gradio==3.48.0 OpenAI gradio_client emoji') | |
from utils.tts import * | |
from utils.llm import * | |
clear_output() | |
import gradio as gr | |
# Define the main function for the API endpoint that takes the input text and chatbot role | |
def generate_story(secret_token, input_text, chatbot_role): | |
if secret_token != SECRET_TOKEN: | |
raise gr.Error( | |
f'Invalid secret token. Secret Token: secret') | |
# Initialize a list of lists for history with the user input as the first entry | |
history = [[input_text, None]] | |
story_sentences = get_sentence(history, chatbot_role) # get_sentence function generates text | |
story_text = "" # Initialize variable to hold the full story text | |
last_history = None # To store the last history after all sentences | |
# Iterate over the sentences generated by get_sentence and concatenate them | |
for sentence, updated_history in story_sentences: | |
if sentence: | |
story_text += sentence.strip() + " " # Add each sentence to the story_text | |
last_history = updated_history # Keep track of the last history update | |
if last_history is not None: | |
# Convert the list of lists back into a list of tuples for the history | |
history_tuples = [tuple(entry) for entry in last_history] | |
#return history_tuples, chatbot_role, story_text | |
return generate_speech_from_history2(history_tuples, chatbot_role, story_text) | |
else: | |
return [] | |
# Create a Gradio Interface using only the `generate_story_and_speech()` function and the 'json' output type | |
demo = gr.Interface( | |
fn=generate_story, | |
inputs=[gr.Text(label='Secret Token'),gr.Textbox(placeholder="Enter your text here"), gr.Dropdown(choices=ROLES, label="Select Chatbot Role")], | |
outputs="json" | |
) | |
demo.queue() | |
demo.launch(debug=True) |