def get_zeroshot_answer(question, mm_data=None):
    """Getting the zero-shot answer from an LLM without optimizing the response at test time."""
    # The system prompt is from: https://github.com/openai/simple-evals/blob/main/sampler/chat_completion_sampler.py
    STARTING_SYSTEM_PROMPT = (
        "You are ChatGPT, a large language model trained by OpenAI, based on the GPT-4 architecture."
        + "\nKnowledge cutoff: 2023-12\nCurrent date: 2024-07-01"
    )
    if args.question_role is not None:
        question_role = args.question_role
    else:
        question_role = "question to the language model"
    if args.image_role is not None:
        image_role = args.image_role
    else:
        image_role = "image associate with question to the language model"
    system_prompt = tg.Variable(STARTING_SYSTEM_PROMPT, requires_grad=False, role_description="system prompt to the language model")
    if mm_data is None: # vanilla text.
        model = tg.BlackboxLLM(llm_engine, system_prompt)
        response = model(tg.Variable(question, requires_grad=False, role_description=question_role))
    else: # multi-modal (such as image).
        from textgrad.autograd import MultimodalLLMCall
        variable_mm_data = tg.Variable(mm_data, requires_grad=False, role_description=image_role)
        variable_question = tg.Variable(question, requires_grad=False, role_description=question_role)
        response = MultimodalLLMCall(args.engine)([variable_mm_data, variable_question])
    return response
Getting the zero-shot answer from an LLM without optimizing the response at test time.
evaluation/solution_optimization_mm.py