# ruff: noqa: F401
from importlib.metadata import version

from .classify import llm_classify, run_evals
from .default_templates import (
    CODE_FUNCTIONALITY_PROMPT_BASE_TEMPLATE,
    CODE_FUNCTIONALITY_PROMPT_RAILS_MAP,
    CODE_FUNCTIONALITY_PROMPT_TEMPLATE,
    CODE_FUNCTIONALITY_PROMPT_TEMPLATE_WITH_EXPLANATION,
    CODE_READABILITY_PROMPT_BASE_TEMPLATE,
    CODE_READABILITY_PROMPT_RAILS_MAP,
    CODE_READABILITY_PROMPT_TEMPLATE,
    CODE_READABILITY_PROMPT_TEMPLATE_WITH_EXPLANATION,
    HALLUCINATION_PROMPT_BASE_TEMPLATE,
    HALLUCINATION_PROMPT_RAILS_MAP,
    HALLUCINATION_PROMPT_TEMPLATE,
    HALLUCINATION_PROMPT_TEMPLATE_WITH_EXPLANATION,
    HUMAN_VS_AI_PROMPT_BASE_TEMPLATE,
    HUMAN_VS_AI_PROMPT_RAILS_MAP,
    HUMAN_VS_AI_PROMPT_TEMPLATE,
    HUMAN_VS_AI_PROMPT_TEMPLATE_WITH_EXPLANATION,
    QA_PROMPT_BASE_TEMPLATE,
    QA_PROMPT_RAILS_MAP,
    QA_PROMPT_TEMPLATE,
    QA_PROMPT_TEMPLATE_WITH_EXPLANATION,
    RAG_RELEVANCY_PROMPT_BASE_TEMPLATE,
    RAG_RELEVANCY_PROMPT_RAILS_MAP,
    RAG_RELEVANCY_PROMPT_TEMPLATE,
    RAG_RELEVANCY_PROMPT_TEMPLATE_WITH_EXPLANATION,
    REFERENCE_LINK_CORRECTNESS_PROMPT_BASE_TEMPLATE,
    REFERENCE_LINK_CORRECTNESS_PROMPT_RAILS_MAP,
    REFERENCE_LINK_CORRECTNESS_PROMPT_TEMPLATE,
    REFERENCE_LINK_CORRECTNESS_PROMPT_TEMPLATE_WITH_EXPLANATION,
    SQL_GEN_EVAL_PROMPT_BASE_TEMPLATE,
    SQL_GEN_EVAL_PROMPT_RAILS_MAP,
    SQL_GEN_EVAL_PROMPT_TEMPLATE,
    SQL_GEN_EVAL_PROMPT_TEMPLATE_WITH_EXPLANATION,
    TOOL_CALLING_BASE_TEMPLATE,
    TOOL_CALLING_PROMPT_RAILS_MAP,
    TOOL_CALLING_PROMPT_TEMPLATE,
    TOOL_CALLING_TEMPLATE_WITH_EXPLANATION,
    TOXICITY_PROMPT_RAILS_MAP,
    TOXICITY_PROMPT_TEMPLATE,
    TOXICITY_PROMPT_TEMPLATE_BASE_TEMPLATE,
    TOXICITY_PROMPT_TEMPLATE_WITH_EXPLANATION,
    USER_FRUSTRATION_PROMPT_BASE_TEMPLATE,
    USER_FRUSTRATION_PROMPT_RAILS_MAP,
    USER_FRUSTRATION_PROMPT_TEMPLATE,
    USER_FRUSTRATION_PROMPT_TEMPLATE_WITH_EXPLANATION,
)
from .evaluators import (
    HallucinationEvaluator,
    LLMEvaluator,
    QAEvaluator,
    RelevanceEvaluator,
    SQLEvaluator,
    SummarizationEvaluator,
    ToxicityEvaluator,
)
from .generate import llm_generate
from .models import (
    AnthropicModel,
    BedrockModel,
    GeminiModel,
    GoogleGenAIModel,
    LiteLLMModel,
    MistralAIModel,
    OpenAIModel,
    VertexAIModel,
)
from .retrievals import compute_precisions_at_k
from .span_templates import (
    HALLUCINATION_SPAN_PROMPT_TEMPLATE,
    QA_SPAN_PROMPT_TEMPLATE,
    TOOL_CALLING_SPAN_PROMPT_TEMPLATE,
)
from .templates import (
    ClassificationTemplate,
    PromptTemplate,
)
from .utils import NOT_PARSABLE, download_benchmark_dataset

__version__ = version("arize-phoenix-evals")
