{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * Copyright 2024 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { EvaluatorAction, Genkit, ModelArgument, z } from 'genkit';\nimport type { GenerationCommonConfigSchema } from 'genkit/model';\nimport { genkitPlugin, type GenkitPlugin } from 'genkit/plugin';\nimport type { Criteria } from 'langchain/evaluation';\nimport { langchainEvaluator } from './evaluators.mjs';\n\nexport { GenkitTracer } from './tracing.mjs';\n\ninterface LangchainPluginParams<\n  ModelCustomOptions extends z.ZodTypeAny = typeof GenerationCommonConfigSchema,\n> {\n  evaluators?: {\n    criteria?: Criteria[];\n    labeledCriteria?: Criteria[];\n    judge: ModelArgument<ModelCustomOptions>;\n    judgeConfig?: z.infer<ModelCustomOptions>;\n  };\n}\n\nexport function langchain(params: LangchainPluginParams): GenkitPlugin {\n  return genkitPlugin('langchain', async (ai: Genkit) => {\n    const evaluators: EvaluatorAction[] = [];\n    if (params.evaluators) {\n      for (const criteria of params.evaluators.criteria ?? []) {\n        evaluators.push(\n          langchainEvaluator(\n            ai,\n            'criteria',\n            criteria,\n            params.evaluators.judge,\n            params.evaluators?.judgeConfig\n          )\n        );\n      }\n      for (const criteria of params.evaluators.labeledCriteria ?? []) {\n        evaluators.push(\n          langchainEvaluator(\n            ai,\n            'labeled_criteria',\n            criteria,\n            params.evaluators.judge,\n            params.evaluators?.judgeConfig\n          )\n        );\n      }\n    }\n  });\n}\n"],"mappings":"AAkBA,SAAS,oBAAuC;AAEhD,SAAS,0BAA0B;AAEnC,SAAS,oBAAoB;AAatB,SAAS,UAAU,QAA6C;AACrE,SAAO,aAAa,aAAa,OAAO,OAAe;AACrD,UAAM,aAAgC,CAAC;AACvC,QAAI,OAAO,YAAY;AACrB,iBAAW,YAAY,OAAO,WAAW,YAAY,CAAC,GAAG;AACvD,mBAAW;AAAA,UACT;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA,OAAO,WAAW;AAAA,YAClB,OAAO,YAAY;AAAA,UACrB;AAAA,QACF;AAAA,MACF;AACA,iBAAW,YAAY,OAAO,WAAW,mBAAmB,CAAC,GAAG;AAC9D,mBAAW;AAAA,UACT;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA,OAAO,WAAW;AAAA,YAClB,OAAO,YAAY;AAAA,UACrB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACH;","names":[]}