I made this gradio app:
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 dropdown
        with gr.Row():
            prompt_manipulation = gr.Dropdown(
                label="Prompt Manipulation",
                choices=[
                    "None",
                    "Impersonation (direct steering)", 
                    "Most similar RAG (indirect steering with related context)", 
                    "Random RAG (indirect steering with randomized context)"
                ],
                value="None", # default value
            )

            direct_steering_option = gr.Dropdown(label="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()


As you can see, the direct_steering_option dropdown has no values so far. This dropdown menu should show different options depending on the value selected in the prompt_manipulation dropdown. How can I achieve this?