I have this gradio code:
from chromadb.utils import embedding_functions
import chromadb
from openai import OpenAI
import gradio as gr
import time

anyscale_base_url = "https://api.endpoints.anyscale.com/v1"
multilingual_embeddings = embedding_functions.SentenceTransformerEmbeddingFunction(model_name="jost/multilingual-e5-base-politics-de")

def predict(api_key, user_input, model1, model2, prompt_manipulation=None, direct_steering_option=None):
    # client = chromadb.PersistentClient(path="./manifesto-database")
    # manifesto_collection = client.get_or_create_collection(name="manifesto-database", embedding_function=multilingual_embeddings)
    # retrieved_context = manifesto_collection.query(query_texts=[user_input], n_results=3, where={"ideology": "Authoritarian-right"})
    # contexts = [context for context in retrieved_context['documents']]
    # print(contexts[0])
    
    prompt = f"""
 {user_input} 
"""
    
    client = OpenAI(base_url=anyscale_base_url, api_key=api_key)
    
    response1 = client.completions.create(
        model=model1,
        prompt=prompt,
        temperature=0.7,
        max_tokens=1000).choices[0].text
    
    response2 = client.completions.create(
        model=model2,
        prompt=prompt,
        temperature=0.7,
        max_tokens=1000).choices[0].text

    return response1, response2

    
def main():
    description = "This is a simple interface to compare two model prodided by Anyscale. Please enter your API key and your message."
    with gr.Blocks() as demo:

        # Prompt manipulation setup
        with gr.Row():
            prompt_manipulation = gr.Dropdown(
                label="Prompt Manipulation",
                choices=[
                    "Impersonation (direct steering)", 
                    "Most similar RAG (indirect steering with related context)", 
                    "Random RAG (indirect steering with randomized context)"
                ]
            )
        
        # Conditional dropdown - options revealed based on ‘Prompt Manipulation’ selection
        with gr.Row():
            direct_steering_option = gr.Dropdown(
                label="Direct Steering Options",
                choices=["Option 1", "Option 2", "Option 3", "Option 4"],
                visible=False  # Initially hidden
            )
        
        # Making direct_steering_option visible based on prompt_manipulation choice
        def show_direct_steering_options(prompt_choice):
            return prompt_choice == "Impersonation (direct steering)"
        
        prompt_manipulation.change(fn=show_direct_steering_options, 
                                   inputs=[prompt_manipulation], 
                                   outputs=[direct_steering_option])

        
        with gr.Row():
            api_key_input = gr.Textbox(label="API Key", placeholder="Enter your API key here", show_label=True, type="password")
            user_input = gr.Textbox(label="Prompt", placeholder="Enter your message here")
            model_selector1 = gr.Dropdown(label="Model 1", choices=["mistralai/Mixtral-8x7B-Instruct-v0.1", "mistralai/Mixtral-8x22B-Instruct-v0.1"])
            model_selector2 = gr.Dropdown(label="Model 2", choices=["mistralai/Mixtral-8x7B-Instruct-v0.1", "mistralai/Mixtral-8x22B-Instruct-v0.1"])
            submit_btn = gr.Button("Submit")

        
        with gr.Row():
            output1 = gr.Textbox(label="Model 1 Response")
            output2 = gr.Textbox(label="Model 2 Response")
        
        submit_btn.click(fn=predict, inputs=[api_key_input, user_input, model_selector1, model_selector2], outputs=[output1, output2])

    demo.launch()

if __name__ == "__main__":
    main()


I want to another drop down menu next to the prompt manipulation menu. But this can only be accesssed when something is selected from the Pompt manipulation drop down. Based on this selection, there should be four different options in the new drop down menu