{"version":3,"file":"loader.cjs","names":["CriteriaEvalChain","LabeledCriteriaEvalChain","PairwiseStringEvalChain","LabeledPairwiseStringEvalChain","BaseChatModel","TrajectoryEvalChain","EmbeddingDistanceEvalChain","PairwiseEmbeddingDistanceEvalChain"],"sources":["../../src/evaluation/loader.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport {\n  CriteriaLike,\n  CriteriaEvalChain,\n  LabeledCriteriaEvalChain,\n} from \"./criteria/index.js\";\nimport type { EvaluatorType } from \"./types.js\";\nimport { LLMEvalChainInput } from \"./base.js\";\nimport {\n  LabeledPairwiseStringEvalChain,\n  PairwiseStringEvalChain,\n} from \"./comparison/index.js\";\nimport {\n  EmbeddingDistanceEvalChain,\n  EmbeddingDistanceEvalChainInput,\n  PairwiseEmbeddingDistanceEvalChain,\n} from \"./embedding_distance/index.js\";\nimport { TrajectoryEvalChain } from \"./agents/index.js\";\n\nexport type LoadEvaluatorOptions = EmbeddingDistanceEvalChainInput & {\n  /**\n   * The language model to use for the evaluator.\n   */\n  llm: BaseLanguageModelInterface;\n  /**\n   * The options to pass to the evaluator chain.\n   */\n  chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>;\n  /**\n   * The criteria to use for the evaluator.\n   */\n  criteria?: CriteriaLike;\n\n  /**\n   * A list of tools available to the agent, for TrajectoryEvalChain.\n   */\n  agentTools?: StructuredToolInterface[];\n};\n\n/**\n * Load the requested evaluation chain specified by a string\n * @param type The type of evaluator to load.\n * @param options\n *        - llm The language model to use for the evaluator.\n *        - criteria The criteria to use for the evaluator.\n *        - agentTools A list of tools available to the agent,for TrajectoryEvalChain.\n */\nexport async function loadEvaluator<T extends keyof EvaluatorType>(\n  type: T,\n  options: LoadEvaluatorOptions\n): Promise<EvaluatorType[T]> {\n  const { llm, chainOptions, criteria, agentTools } = options;\n\n  let evaluator: unknown;\n  switch (type) {\n    case \"criteria\":\n      evaluator = await CriteriaEvalChain.fromLLM(llm, criteria, chainOptions);\n      break;\n    case \"labeled_criteria\":\n      evaluator = await LabeledCriteriaEvalChain.fromLLM(\n        llm,\n        criteria,\n        chainOptions\n      );\n      break;\n    case \"pairwise_string\":\n      evaluator = await PairwiseStringEvalChain.fromLLM(\n        llm,\n        criteria,\n        chainOptions\n      );\n      break;\n    case \"labeled_pairwise_string\":\n      evaluator = await LabeledPairwiseStringEvalChain.fromLLM(\n        llm,\n        criteria,\n        chainOptions\n      );\n      break;\n    case \"trajectory\":\n      // oxlint-disable-next-line no-instanceof/no-instanceof\n      if (!(llm instanceof BaseChatModel)) {\n        throw new Error(\"LLM must be an instance of a base chat model.\");\n      }\n      evaluator = await TrajectoryEvalChain.fromLLM(\n        llm,\n        agentTools,\n        chainOptions\n      );\n      break;\n    case \"embedding_distance\":\n      evaluator = new EmbeddingDistanceEvalChain({\n        embedding: options?.embedding,\n        distanceMetric: options?.distanceMetric,\n      });\n      break;\n    case \"pairwise_embedding_distance\":\n      evaluator = new PairwiseEmbeddingDistanceEvalChain({});\n      break;\n    default:\n      throw new Error(`Unknown type: ${type}`);\n  }\n\n  return evaluator as EvaluatorType[T];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAiDA,eAAsB,cACpB,MACA,SAC2B;CAC3B,MAAM,EAAE,KAAK,cAAc,UAAU,eAAe;CAEpD,IAAI;AACJ,SAAQ,MAAR;EACE,KAAK;AACH,eAAY,MAAMA,iBAAAA,kBAAkB,QAAQ,KAAK,UAAU,aAAa;AACxE;EACF,KAAK;AACH,eAAY,MAAMC,iBAAAA,yBAAyB,QACzC,KACA,UACA,aACD;AACD;EACF,KAAK;AACH,eAAY,MAAMC,iBAAAA,wBAAwB,QACxC,KACA,UACA,aACD;AACD;EACF,KAAK;AACH,eAAY,MAAMC,iBAAAA,+BAA+B,QAC/C,KACA,UACA,aACD;AACD;EACF,KAAK;AAEH,OAAI,EAAE,eAAeC,4CAAAA,eACnB,OAAM,IAAI,MAAM,gDAAgD;AAElE,eAAY,MAAMC,mBAAAA,oBAAoB,QACpC,KACA,YACA,aACD;AACD;EACF,KAAK;AACH,eAAY,IAAIC,aAAAA,2BAA2B;IACzC,WAAW,SAAS;IACpB,gBAAgB,SAAS;IAC1B,CAAC;AACF;EACF,KAAK;AACH,eAAY,IAAIC,aAAAA,mCAAmC,EAAE,CAAC;AACtD;EACF,QACE,OAAM,IAAI,MAAM,iBAAiB,OAAO;;AAG5C,QAAO"}