Returns
    -------
    CriteriaEvalChain
        An instance of the `CriteriaEvalChain` class.
    Examples
    --------
    >>> from langchain.chat_models import ChatAnthropic
    >>> from langchain.evaluation.criteria import CriteriaEvalChain
    >>> llm = ChatAnthropic(temperature=0)
    >>> criteria = {"my-custom-criterion": "Is the submission the most amazing ever?"}
    >>> evaluator = CriteriaEvalChain.from_llm(llm=llm, criteria=criteria)
    >>> evaluator.evaluate_strings(prediction="Imagine an ice cream flavor for the color aquamarine", input="Tell me an idea")
    {
        'reasoning': 'Here is my step-by-step reasoning for the given criteria:\\n\\nThe criterion is: "Is the submission the most amazing ever?" This is a subjective criterion and open to interpretation. The submission suggests an aquamarine-colored ice cream flavor which is creative but may or may not be considered the most amazing idea ever conceived. There are many possible amazing ideas and this one ice cream flavor suggestion may or may not rise to that level for every person. \\n\\nN',
        'value': 'N',
        'score': 0,
    }
    >>> from langchain.chat_models import ChatOpenAI
    >>> from langchain.evaluation.criteria import LabeledCriteriaEvalChain
    >>> llm = ChatOpenAI(model="gpt-4", temperature=0)
    >>> criteria = "correctness"
    >>> evaluator = LabeledCriteriaEvalChain.from_llm(
    ...     llm=llm,
    ...     criteria=criteria,
    ... )
    >>> evaluator.evaluate_strings(
    ...   prediction="The answer is 4",
    ...   input="How many apples are there?",
    ...   reference="There are 3 apples",