from typing import Dict, Callable
from agent_inspect.clients.llm_client import LLMClient
from agent_inspect.metrics.constants import STATUS_200
from agent_inspect.exception.error_codes import ErrorCode
from agent_inspect.exception import EvaluationError
from agent_inspect.models.llm_response import LLMResponse
[docs]
async def llm_check(client: LLMClient, variables: Dict, template: str, post_process: Callable[[LLMResponse], bool]) -> bool:
prompt = template.format(**variables)
response = await client.make_llm_request(prompt)
if response.status != STATUS_200:
raise EvaluationError(internal_code=ErrorCode.INVALID_LLM_JUDGE_RESULT_ERROR.value,
message=f"LLM request failed with status: {response.status}, "
f"error message: {response.error_message}")
return post_process(response)