The custom prompt requires 3 input variables: "query", "answer" and "result". Where "query" is the question, "answer" is the ground truth answer, and "result" is the predicted answer.from langchain.prompts.prompt import PromptTemplate_PROMPT_TEMPLATE = """You are an expert professor specialized in grading students' answers to questions.You are grading the following question:{query}Here is the real answer:{answer}You are grading the following predicted answer:{result}What grade do you give from 0 to 10, where 0 is the lowest (very low similarity) and 10 is the highest (very high similarity)?"""PROMPT = PromptTemplate(    input_variables=["query", "answer", "result"], template=_PROMPT_TEMPLATE)evalchain = QAEvalChain.from_llm(llm=llm, prompt=PROMPT)evalchain.evaluate(    examples,    predictions,    question_key="question",    answer_key="answer",    prediction_key="text",)Evaluation without Ground Truthâ€‹Its possible to evaluate question answering systems without ground truth. You would need a "context" input that reflects what the information the LLM uses to answer the question. This context can be obtained by any retreival system. Here's an example of how it works:context_examples = [    {        "question": "How old am I?",        "context": "I am 30 years old. I live in New York and take the train to work everyday.",    },    {        "question": 'Who won the NFC championship game in 2023?"',        "context": "NFC Championship Game 2023: Philadelphia Eagles 31, San Francisco 49ers