@arizeai/phoenix-evals 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +42 -0
  2. package/dist/esm/core/EvaluatorBase.d.ts +19 -0
  3. package/dist/esm/core/EvaluatorBase.d.ts.map +1 -0
  4. package/dist/esm/core/EvaluatorBase.js +18 -0
  5. package/dist/esm/core/EvaluatorBase.js.map +1 -0
  6. package/dist/esm/index.d.ts +1 -0
  7. package/dist/esm/index.d.ts.map +1 -1
  8. package/dist/esm/index.js +1 -0
  9. package/dist/esm/index.js.map +1 -1
  10. package/dist/esm/llm/ClassificationEvaluator.d.ts +19 -2
  11. package/dist/esm/llm/ClassificationEvaluator.d.ts.map +1 -1
  12. package/dist/esm/llm/ClassificationEvaluator.js +29 -2
  13. package/dist/esm/llm/ClassificationEvaluator.js.map +1 -1
  14. package/dist/esm/llm/LLMEvaluator.d.ts +4 -7
  15. package/dist/esm/llm/LLMEvaluator.d.ts.map +1 -1
  16. package/dist/esm/llm/LLMEvaluator.js +4 -7
  17. package/dist/esm/llm/LLMEvaluator.js.map +1 -1
  18. package/dist/esm/llm/createClassificationEvaluator.d.ts +1 -1
  19. package/dist/esm/llm/createClassificationEvaluator.d.ts.map +1 -1
  20. package/dist/esm/llm/createClassificationEvaluator.js.map +1 -1
  21. package/dist/esm/llm/createDocumentRelevancyEvaluator.d.ts +8 -7
  22. package/dist/esm/llm/createDocumentRelevancyEvaluator.d.ts.map +1 -1
  23. package/dist/esm/llm/createDocumentRelevancyEvaluator.js +1 -2
  24. package/dist/esm/llm/createDocumentRelevancyEvaluator.js.map +1 -1
  25. package/dist/esm/llm/createHallucinationEvaluator.d.ts +6 -6
  26. package/dist/esm/llm/createHallucinationEvaluator.d.ts.map +1 -1
  27. package/dist/esm/llm/createHallucinationEvaluator.js +1 -2
  28. package/dist/esm/llm/createHallucinationEvaluator.js.map +1 -1
  29. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  30. package/dist/esm/types/data.d.ts +194 -0
  31. package/dist/esm/types/data.d.ts.map +1 -0
  32. package/dist/esm/types/data.js +2 -0
  33. package/dist/esm/types/data.js.map +1 -0
  34. package/dist/esm/types/evals.d.ts +17 -3
  35. package/dist/esm/types/evals.d.ts.map +1 -1
  36. package/dist/esm/types/index.d.ts +1 -0
  37. package/dist/esm/types/index.d.ts.map +1 -1
  38. package/dist/esm/types/index.js +1 -0
  39. package/dist/esm/types/index.js.map +1 -1
  40. package/dist/esm/types/otel.d.ts +14 -13
  41. package/dist/esm/types/otel.d.ts.map +1 -1
  42. package/dist/esm/utils/bindEvaluator.d.ts +219 -0
  43. package/dist/esm/utils/bindEvaluator.d.ts.map +1 -0
  44. package/dist/esm/utils/bindEvaluator.js +163 -0
  45. package/dist/esm/utils/bindEvaluator.js.map +1 -0
  46. package/dist/esm/utils/index.d.ts +2 -0
  47. package/dist/esm/utils/index.d.ts.map +1 -0
  48. package/dist/esm/utils/index.js +2 -0
  49. package/dist/esm/utils/index.js.map +1 -0
  50. package/dist/esm/utils/objectMappingUtils.d.ts +166 -0
  51. package/dist/esm/utils/objectMappingUtils.d.ts.map +1 -0
  52. package/dist/esm/utils/objectMappingUtils.js +191 -0
  53. package/dist/esm/utils/objectMappingUtils.js.map +1 -0
  54. package/dist/src/core/EvaluatorBase.d.ts +19 -0
  55. package/dist/src/core/EvaluatorBase.d.ts.map +1 -0
  56. package/dist/src/core/EvaluatorBase.js +17 -0
  57. package/dist/src/core/EvaluatorBase.js.map +1 -0
  58. package/dist/src/index.d.ts +1 -0
  59. package/dist/src/index.d.ts.map +1 -1
  60. package/dist/src/index.js +1 -0
  61. package/dist/src/index.js.map +1 -1
  62. package/dist/src/llm/ClassificationEvaluator.d.ts +19 -2
  63. package/dist/src/llm/ClassificationEvaluator.d.ts.map +1 -1
  64. package/dist/src/llm/ClassificationEvaluator.js +13 -2
  65. package/dist/src/llm/ClassificationEvaluator.js.map +1 -1
  66. package/dist/src/llm/LLMEvaluator.d.ts +4 -7
  67. package/dist/src/llm/LLMEvaluator.d.ts.map +1 -1
  68. package/dist/src/llm/LLMEvaluator.js +16 -5
  69. package/dist/src/llm/LLMEvaluator.js.map +1 -1
  70. package/dist/src/llm/createClassificationEvaluator.d.ts +1 -1
  71. package/dist/src/llm/createClassificationEvaluator.d.ts.map +1 -1
  72. package/dist/src/llm/createClassificationEvaluator.js.map +1 -1
  73. package/dist/src/llm/createDocumentRelevancyEvaluator.d.ts +8 -7
  74. package/dist/src/llm/createDocumentRelevancyEvaluator.d.ts.map +1 -1
  75. package/dist/src/llm/createDocumentRelevancyEvaluator.js +2 -2
  76. package/dist/src/llm/createDocumentRelevancyEvaluator.js.map +1 -1
  77. package/dist/src/llm/createHallucinationEvaluator.d.ts +6 -6
  78. package/dist/src/llm/createHallucinationEvaluator.d.ts.map +1 -1
  79. package/dist/src/llm/createHallucinationEvaluator.js +2 -2
  80. package/dist/src/llm/createHallucinationEvaluator.js.map +1 -1
  81. package/dist/src/types/data.d.ts +194 -0
  82. package/dist/src/types/data.d.ts.map +1 -0
  83. package/dist/src/types/data.js +3 -0
  84. package/dist/src/types/data.js.map +1 -0
  85. package/dist/src/types/evals.d.ts +17 -3
  86. package/dist/src/types/evals.d.ts.map +1 -1
  87. package/dist/src/types/index.d.ts +1 -0
  88. package/dist/src/types/index.d.ts.map +1 -1
  89. package/dist/src/types/index.js +1 -0
  90. package/dist/src/types/index.js.map +1 -1
  91. package/dist/src/types/otel.d.ts +14 -13
  92. package/dist/src/types/otel.d.ts.map +1 -1
  93. package/dist/src/utils/bindEvaluator.d.ts +219 -0
  94. package/dist/src/utils/bindEvaluator.d.ts.map +1 -0
  95. package/dist/src/utils/bindEvaluator.js +166 -0
  96. package/dist/src/utils/bindEvaluator.js.map +1 -0
  97. package/dist/src/utils/index.d.ts +2 -0
  98. package/dist/src/utils/index.d.ts.map +1 -0
  99. package/dist/src/utils/index.js +18 -0
  100. package/dist/src/utils/index.js.map +1 -0
  101. package/dist/src/utils/objectMappingUtils.d.ts +166 -0
  102. package/dist/src/utils/objectMappingUtils.d.ts.map +1 -0
  103. package/dist/src/utils/objectMappingUtils.js +191 -0
  104. package/dist/src/utils/objectMappingUtils.js.map +1 -0
  105. package/dist/tsconfig.tsbuildinfo +1 -1
  106. package/package.json +2 -1
  107. package/src/core/EvaluatorBase.ts +43 -0
  108. package/src/index.ts +1 -0
  109. package/src/llm/ClassificationEvaluator.ts +39 -3
  110. package/src/llm/LLMEvaluator.ts +7 -16
  111. package/src/llm/createClassificationEvaluator.ts +1 -1
  112. package/src/llm/createDocumentRelevancyEvaluator.ts +17 -12
  113. package/src/llm/createHallucinationEvaluator.ts +12 -10
  114. package/src/types/data.ts +200 -0
  115. package/src/types/evals.ts +25 -5
  116. package/src/types/index.ts +1 -0
  117. package/src/types/otel.ts +15 -13
  118. package/src/utils/bindEvaluator.ts +229 -0
  119. package/src/utils/index.ts +1 -0
  120. package/src/utils/objectMappingUtils.ts +202 -0
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClassificationEvaluator = void 0;
4
4
  const template_1 = require("../template");
5
+ const objectMappingUtils_1 = require("../utils/objectMappingUtils");
5
6
  const createClassifierFn_1 = require("./createClassifierFn");
6
7
  const LLMEvaluator_1 = require("./LLMEvaluator");
7
8
  /**
@@ -11,10 +12,14 @@ class ClassificationEvaluator extends LLMEvaluator_1.LLMEvaluator {
11
12
  constructor(args) {
12
13
  super(args);
13
14
  this.evaluate = (example) => {
14
- return this.evaluatorFn(example);
15
+ return this.evaluatorFn(this.inputMapping
16
+ ? (0, objectMappingUtils_1.remapObject)(example, this.inputMapping)
17
+ : example);
15
18
  };
16
19
  this.promptTemplate = args.promptTemplate;
17
- this.evaluatorFn = (0, createClassifierFn_1.createClassifierFn)(args);
20
+ this.model = args.model;
21
+ this.choices = args.choices;
22
+ this.evaluatorFn = (0, createClassifierFn_1.createClassifierFn)(Object.assign({}, args));
18
23
  }
19
24
  /**
20
25
  * List out the prompt template variables needed to perform evaluation
@@ -29,6 +34,12 @@ class ClassificationEvaluator extends LLMEvaluator_1.LLMEvaluator {
29
34
  // Give a copy of the variables
30
35
  return [...this._promptTemplateVariables];
31
36
  }
37
+ /**
38
+ * Binds the input mapping to the evaluator. It makes a a copy of the evaluator and returns it.
39
+ */
40
+ bindInputMapping(inputMapping) {
41
+ return new ClassificationEvaluator(Object.assign(Object.assign({}, this), { inputMapping }));
42
+ }
32
43
  }
33
44
  exports.ClassificationEvaluator = ClassificationEvaluator;
34
45
  //# sourceMappingURL=ClassificationEvaluator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClassificationEvaluator.js","sourceRoot":"","sources":["../../../src/llm/ClassificationEvaluator.ts"],"names":[],"mappings":";;;AAAA,0CAAmD;AAQnD,6DAA0D;AAC1D,iDAA8C;AAE9C;;GAEG;AACH,MAAa,uBACX,SAAQ,2BAAwB;IAMhC,YAAY,IAAuC;QACjD,KAAK,CAAC,IAAI,CAAC,CAAC;QAId,aAAQ,GAAG,CAAC,OAAmB,EAAE,EAAE;YACjC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC;QALA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAA,uCAAkB,EAAa,IAAI,CAAC,CAAC;IAC1D,CAAC;IAID;;OAEG;IACH,IAAI,uBAAuB;QACzB,0DAA0D;QAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,wBAAwB,GAAG,IAAA,+BAAoB,EAAC;gBACnD,QAAQ,EAAE,IAAI,CAAC,cAAc;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,+BAA+B;QAC/B,OAAO,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;CACF;AA5BD,0DA4BC"}
1
+ {"version":3,"file":"ClassificationEvaluator.js","sourceRoot":"","sources":["../../../src/llm/ClassificationEvaluator.ts"],"names":[],"mappings":";;;AAAA,0CAAmD;AASnD,oEAA0D;AAE1D,6DAA0D;AAC1D,iDAA8C;AAI9C;;GAEG;AACH,MAAa,uBACX,SAAQ,2BAAwB;IAkBhC,YAAY,IAAmD;QAC7D,KAAK,CAAC,IAAI,CAAC,CAAC;QAQd,aAAQ,GAAG,CAAC,OAAmB,EAAE,EAAE;YACjC,OAAO,IAAI,CAAC,WAAW,CACrB,IAAI,CAAC,YAAY;gBACf,CAAC,CAAC,IAAA,gCAAW,EAAa,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;gBACrD,CAAC,CAAC,OAAO,CACZ,CAAC;QACJ,CAAC,CAAC;QAbA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAA,uCAAkB,oBAChC,IAAI,EACP,CAAC;IACL,CAAC;IAQD;;OAEG;IACH,IAAI,uBAAuB;QACzB,0DAA0D;QAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,wBAAwB,GAAG,IAAA,+BAAoB,EAAC;gBACnD,QAAQ,EAAE,IAAI,CAAC,cAAc;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,+BAA+B;QAC/B,OAAO,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD;;OAEG;IACH,gBAAgB,CACd,YAAuC;QAEvC,OAAO,IAAI,uBAAuB,iCAC7B,IAAI,KACP,YAAY,IACZ,CAAC;IACL,CAAC;CACF;AA3DD,0DA2DC"}
@@ -1,12 +1,9 @@
1
- import { CreateEvaluatorArgs, EvaluationResult, Evaluator, OptimizationDirection } from "../types";
1
+ import { EvaluatorBase } from "../core/EvaluatorBase";
2
+ import { CreateLLMEvaluatorArgs } from "../types";
2
3
  /**
3
4
  * Base class for llm evaluation metrics / scores
4
5
  */
5
- export declare abstract class LLMEvaluator<RecordType extends Record<string, unknown>> implements Evaluator<RecordType> {
6
- readonly name: string;
7
- readonly kind: "LLM";
8
- readonly optimizationDirection?: OptimizationDirection;
9
- constructor({ name, optimizationDirection }: CreateEvaluatorArgs);
10
- abstract evaluate(_example: RecordType): Promise<EvaluationResult>;
6
+ export declare abstract class LLMEvaluator<RecordType extends Record<string, unknown>> extends EvaluatorBase<RecordType> {
7
+ constructor({ ...args }: CreateLLMEvaluatorArgs<RecordType>);
11
8
  }
12
9
  //# sourceMappingURL=LLMEvaluator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LLMEvaluator.d.ts","sourceRoot":"","sources":["../../../src/llm/LLMEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,8BAAsB,YAAY,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC3E,YAAW,SAAS,CAAC,UAAU,CAAC;IAEhC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAC/B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;gBAC3C,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,mBAAmB;IAIhE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;CACnE"}
1
+ {"version":3,"file":"LLMEvaluator.d.ts","sourceRoot":"","sources":["../../../src/llm/LLMEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,8BAAsB,YAAY,CAChC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC1C,SAAQ,aAAa,CAAC,UAAU,CAAC;gBACrB,EAAE,GAAG,IAAI,EAAE,EAAE,sBAAsB,CAAC,UAAU,CAAC;CAG5D"}
@@ -1,14 +1,25 @@
1
1
  "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
2
13
  Object.defineProperty(exports, "__esModule", { value: true });
3
14
  exports.LLMEvaluator = void 0;
15
+ const EvaluatorBase_1 = require("../core/EvaluatorBase");
4
16
  /**
5
17
  * Base class for llm evaluation metrics / scores
6
18
  */
7
- class LLMEvaluator {
8
- constructor({ name, optimizationDirection }) {
9
- this.kind = "LLM";
10
- this.name = name;
11
- this.optimizationDirection = optimizationDirection;
19
+ class LLMEvaluator extends EvaluatorBase_1.EvaluatorBase {
20
+ constructor(_a) {
21
+ var args = __rest(_a, []);
22
+ super(Object.assign({ kind: "LLM" }, args));
12
23
  }
13
24
  }
14
25
  exports.LLMEvaluator = LLMEvaluator;
@@ -1 +1 @@
1
- {"version":3,"file":"LLMEvaluator.js","sourceRoot":"","sources":["../../../src/llm/LLMEvaluator.ts"],"names":[],"mappings":";;;AAOA;;GAEG;AACH,MAAsB,YAAY;IAMhC,YAAY,EAAE,IAAI,EAAE,qBAAqB,EAAuB;QAFvD,SAAI,GAAG,KAAc,CAAC;QAG7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;IACrD,CAAC;CAEF;AAXD,oCAWC"}
1
+ {"version":3,"file":"LLMEvaluator.js","sourceRoot":"","sources":["../../../src/llm/LLMEvaluator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,yDAAsD;AAGtD;;GAEG;AACH,MAAsB,YAEpB,SAAQ,6BAAyB;IACjC,YAAY,EAA+C;YAA1C,IAAI,cAAT,EAAW,CAAF;QACnB,KAAK,iBAAG,IAAI,EAAE,KAAK,IAAK,IAAI,EAAG,CAAC;IAClC,CAAC;CACF;AAND,oCAMC"}
@@ -1,4 +1,4 @@
1
1
  import { CreateClassificationEvaluatorArgs } from "../types/evals";
2
2
  import { ClassificationEvaluator } from "./ClassificationEvaluator";
3
- export declare function createClassificationEvaluator<RecordType extends Record<string, unknown>>(args: CreateClassificationEvaluatorArgs): ClassificationEvaluator<RecordType>;
3
+ export declare function createClassificationEvaluator<RecordType extends Record<string, unknown>>(args: CreateClassificationEvaluatorArgs<RecordType>): ClassificationEvaluator<RecordType>;
4
4
  //# sourceMappingURL=createClassificationEvaluator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createClassificationEvaluator.d.ts","sourceRoot":"","sources":["../../../src/llm/createClassificationEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,wBAAgB,6BAA6B,CAC3C,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE1C,IAAI,EAAE,iCAAiC,GACtC,uBAAuB,CAAC,UAAU,CAAC,CAErC"}
1
+ {"version":3,"file":"createClassificationEvaluator.d.ts","sourceRoot":"","sources":["../../../src/llm/createClassificationEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,wBAAgB,6BAA6B,CAC3C,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE1C,IAAI,EAAE,iCAAiC,CAAC,UAAU,CAAC,GAClD,uBAAuB,CAAC,UAAU,CAAC,CAErC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createClassificationEvaluator.js","sourceRoot":"","sources":["../../../src/llm/createClassificationEvaluator.ts"],"names":[],"mappings":";;AAIA,sEAMC;AARD,uEAAoE;AAEpE,SAAgB,6BAA6B,CAG3C,IAAuC;IAEvC,OAAO,IAAI,iDAAuB,CAAa,IAAI,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"createClassificationEvaluator.js","sourceRoot":"","sources":["../../../src/llm/createClassificationEvaluator.ts"],"names":[],"mappings":";;AAIA,sEAMC;AARD,uEAAoE;AAEpE,SAAgB,6BAA6B,CAG3C,IAAmD;IAEnD,OAAO,IAAI,iDAAuB,CAAa,IAAI,CAAC,CAAC;AACvD,CAAC"}
@@ -1,9 +1,10 @@
1
- import { CreateClassificationEvaluatorArgs, Evaluator } from "../types/evals";
2
- export interface DocumentRelevancyEvaluatorArgs extends Omit<CreateClassificationEvaluatorArgs, "promptTemplate" | "choices" | "optimizationDirection" | "name"> {
3
- optimizationDirection?: CreateClassificationEvaluatorArgs["optimizationDirection"];
4
- name?: CreateClassificationEvaluatorArgs["name"];
5
- choices?: CreateClassificationEvaluatorArgs["choices"];
6
- promptTemplate?: CreateClassificationEvaluatorArgs["promptTemplate"];
1
+ import { CreateClassificationEvaluatorArgs } from "../types/evals";
2
+ import { ClassificationEvaluator } from "./ClassificationEvaluator";
3
+ export interface DocumentRelevancyEvaluatorArgs<RecordType extends Record<string, unknown> = DocumentRelevancyEvaluationRecord> extends Omit<CreateClassificationEvaluatorArgs<RecordType>, "promptTemplate" | "choices" | "optimizationDirection" | "name"> {
4
+ optimizationDirection?: CreateClassificationEvaluatorArgs<RecordType>["optimizationDirection"];
5
+ name?: CreateClassificationEvaluatorArgs<RecordType>["name"];
6
+ choices?: CreateClassificationEvaluatorArgs<RecordType>["choices"];
7
+ promptTemplate?: CreateClassificationEvaluatorArgs<RecordType>["promptTemplate"];
7
8
  }
8
9
  /**
9
10
  * A record to be evaluated by the document relevancy evaluator.
@@ -39,5 +40,5 @@ export interface DocumentRelevancyEvaluationRecord {
39
40
  * console.log(result.label); // "relevant" or "unrelated"
40
41
  * ```
41
42
  */
42
- export declare function createDocumentRelevancyEvaluator<RecordType extends Record<string, unknown> = DocumentRelevancyEvaluationRecord>(args: DocumentRelevancyEvaluatorArgs): Evaluator<RecordType>;
43
+ export declare function createDocumentRelevancyEvaluator<RecordType extends Record<string, unknown> = DocumentRelevancyEvaluationRecord>(args: DocumentRelevancyEvaluatorArgs<RecordType>): ClassificationEvaluator<RecordType>;
43
44
  //# sourceMappingURL=createDocumentRelevancyEvaluator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createDocumentRelevancyEvaluator.d.ts","sourceRoot":"","sources":["../../../src/llm/createDocumentRelevancyEvaluator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iCAAiC,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI9E,MAAM,WAAW,8BACf,SAAQ,IAAI,CACV,iCAAiC,EACjC,gBAAgB,GAAG,SAAS,GAAG,uBAAuB,GAAG,MAAM,CAChE;IACD,qBAAqB,CAAC,EAAE,iCAAiC,CAAC,uBAAuB,CAAC,CAAC;IACnF,IAAI,CAAC,EAAE,iCAAiC,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,iCAAiC,CAAC,SAAS,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,iCAAiC,CAAC,gBAAgB,CAAC,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,SAAS,MAAM,CACvB,MAAM,EACN,OAAO,CACR,GAAG,iCAAiC,EACrC,IAAI,EAAE,8BAA8B,GAAG,SAAS,CAAC,UAAU,CAAC,CAiB7D"}
1
+ {"version":3,"file":"createDocumentRelevancyEvaluator.d.ts","sourceRoot":"","sources":["../../../src/llm/createDocumentRelevancyEvaluator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,MAAM,WAAW,8BAA8B,CAC7C,UAAU,SAAS,MAAM,CACvB,MAAM,EACN,OAAO,CACR,GAAG,iCAAiC,CACrC,SAAQ,IAAI,CACV,iCAAiC,CAAC,UAAU,CAAC,EAC7C,gBAAgB,GAAG,SAAS,GAAG,uBAAuB,GAAG,MAAM,CAChE;IACD,qBAAqB,CAAC,EAAE,iCAAiC,CAAC,UAAU,CAAC,CAAC,uBAAuB,CAAC,CAAC;IAC/F,IAAI,CAAC,EAAE,iCAAiC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7D,OAAO,CAAC,EAAE,iCAAiC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC;IACnE,cAAc,CAAC,EAAE,iCAAiC,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,CAAC;CAClF;AAED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,SAAS,MAAM,CACvB,MAAM,EACN,OAAO,CACR,GAAG,iCAAiC,EAErC,IAAI,EAAE,8BAA8B,CAAC,UAAU,CAAC,GAC/C,uBAAuB,CAAC,UAAU,CAAC,CAerC"}
@@ -42,9 +42,9 @@ const createClassificationEvaluator_1 = require("./createClassificationEvaluator
42
42
  */
43
43
  function createDocumentRelevancyEvaluator(args) {
44
44
  const { choices = DOCUMENT_RELEVANCY_TEMPLATE_1.DOCUMENT_RELEVANCY_CHOICES, promptTemplate = DOCUMENT_RELEVANCY_TEMPLATE_1.DOCUMENT_RELEVANCY_TEMPLATE, optimizationDirection = "MAXIMIZE", name = "document_relevancy" } = args, rest = __rest(args, ["choices", "promptTemplate", "optimizationDirection", "name"]);
45
- return (0, createClassificationEvaluator_1.createClassificationEvaluator)(Object.assign(Object.assign(Object.assign({}, args), { promptTemplate,
45
+ return (0, createClassificationEvaluator_1.createClassificationEvaluator)(Object.assign(Object.assign({}, rest), { promptTemplate,
46
46
  choices,
47
47
  optimizationDirection,
48
- name }), rest));
48
+ name }));
49
49
  }
50
50
  //# sourceMappingURL=createDocumentRelevancyEvaluator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createDocumentRelevancyEvaluator.js","sourceRoot":"","sources":["../../../src/llm/createDocumentRelevancyEvaluator.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAsDA,4EAsBC;AA5ED,kGAG0D;AAG1D,mFAAgF;AAsBhF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,gCAAgC,CAK9C,IAAoC;IACpC,MAAM,EACJ,OAAO,GAAG,wDAA0B,EACpC,cAAc,GAAG,yDAA2B,EAC5C,qBAAqB,GAAG,UAAU,EAClC,IAAI,GAAG,oBAAoB,KAEzB,IAAI,EADH,IAAI,UACL,IAAI,EANF,8DAML,CAAO,CAAC;IAET,OAAO,IAAA,6DAA6B,gDAC/B,IAAI,KACP,cAAc;QACd,OAAO;QACP,qBAAqB;QACrB,IAAI,KACD,IAAI,EACP,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"createDocumentRelevancyEvaluator.js","sourceRoot":"","sources":["../../../src/llm/createDocumentRelevancyEvaluator.ts"],"names":[],"mappings":";;;;;;;;;;;;;AA2DA,4EAsBC;AAjFD,kGAG0D;AAI1D,mFAAgF;AA0BhF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,gCAAgC,CAM9C,IAAgD;IAEhD,MAAM,EACJ,OAAO,GAAG,wDAA0B,EACpC,cAAc,GAAG,yDAA2B,EAC5C,qBAAqB,GAAG,UAAU,EAClC,IAAI,GAAG,oBAAoB,KAEzB,IAAI,EADH,IAAI,UACL,IAAI,EANF,8DAML,CAAO,CAAC;IACT,OAAO,IAAA,6DAA6B,kCAC/B,IAAI,KACP,cAAc;QACd,OAAO;QACP,qBAAqB;QACrB,IAAI,IACJ,CAAC;AACL,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { CreateClassificationEvaluatorArgs } from "../types/evals";
2
2
  import { ClassificationEvaluator } from "./ClassificationEvaluator";
3
- export interface HallucinationEvaluatorArgs extends Omit<CreateClassificationEvaluatorArgs, "promptTemplate" | "choices" | "optimizationDirection" | "name"> {
4
- optimizationDirection?: CreateClassificationEvaluatorArgs["optimizationDirection"];
5
- name?: CreateClassificationEvaluatorArgs["name"];
6
- choices?: CreateClassificationEvaluatorArgs["choices"];
7
- promptTemplate?: CreateClassificationEvaluatorArgs["promptTemplate"];
3
+ export interface HallucinationEvaluatorArgs<RecordType extends Record<string, unknown> = HallucinationEvaluationRecord> extends Omit<CreateClassificationEvaluatorArgs<RecordType>, "promptTemplate" | "choices" | "optimizationDirection" | "name"> {
4
+ optimizationDirection?: CreateClassificationEvaluatorArgs<RecordType>["optimizationDirection"];
5
+ name?: CreateClassificationEvaluatorArgs<RecordType>["name"];
6
+ choices?: CreateClassificationEvaluatorArgs<RecordType>["choices"];
7
+ promptTemplate?: CreateClassificationEvaluatorArgs<RecordType>["promptTemplate"];
8
8
  }
9
9
  /**
10
10
  * A record to be evaluated by the hallucination evaluator.
@@ -21,5 +21,5 @@ export type HallucinationEvaluationRecord = {
21
21
  * @param args - The arguments for creating the hallucination evaluator.
22
22
  * @returns A function that evaluates whether an answer is factual or hallucinated based on a query and reference text.
23
23
  */
24
- export declare function createHallucinationEvaluator<RecordType extends Record<string, unknown> = HallucinationEvaluationRecord>(args: HallucinationEvaluatorArgs): ClassificationEvaluator<RecordType>;
24
+ export declare function createHallucinationEvaluator<RecordType extends Record<string, unknown> = HallucinationEvaluationRecord>(args: HallucinationEvaluatorArgs<RecordType>): ClassificationEvaluator<RecordType>;
25
25
  //# sourceMappingURL=createHallucinationEvaluator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createHallucinationEvaluator.d.ts","sourceRoot":"","sources":["../../../src/llm/createHallucinationEvaluator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,MAAM,WAAW,0BACf,SAAQ,IAAI,CACV,iCAAiC,EACjC,gBAAgB,GAAG,SAAS,GAAG,uBAAuB,GAAG,MAAM,CAChE;IACD,qBAAqB,CAAC,EAAE,iCAAiC,CAAC,uBAAuB,CAAC,CAAC;IACnF,IAAI,CAAC,EAAE,iCAAiC,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,iCAAiC,CAAC,SAAS,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,iCAAiC,CAAC,gBAAgB,CAAC,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AACF;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,6BAA6B,EAC1E,IAAI,EAAE,0BAA0B,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAgBvE"}
1
+ {"version":3,"file":"createHallucinationEvaluator.d.ts","sourceRoot":"","sources":["../../../src/llm/createHallucinationEvaluator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,MAAM,WAAW,0BAA0B,CACzC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,6BAA6B,CAC1E,SAAQ,IAAI,CACV,iCAAiC,CAAC,UAAU,CAAC,EAC7C,gBAAgB,GAAG,SAAS,GAAG,uBAAuB,GAAG,MAAM,CAChE;IACD,qBAAqB,CAAC,EAAE,iCAAiC,CAAC,UAAU,CAAC,CAAC,uBAAuB,CAAC,CAAC;IAC/F,IAAI,CAAC,EAAE,iCAAiC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7D,OAAO,CAAC,EAAE,iCAAiC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC;IACnE,cAAc,CAAC,EAAE,iCAAiC,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,CAAC;CAClF;AAED;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AACF;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,6BAA6B,EAE1E,IAAI,EAAE,0BAA0B,CAAC,UAAU,CAAC,GAC3C,uBAAuB,CAAC,UAAU,CAAC,CAerC"}
@@ -22,9 +22,9 @@ const createClassificationEvaluator_1 = require("./createClassificationEvaluator
22
22
  */
23
23
  function createHallucinationEvaluator(args) {
24
24
  const { choices = HALLUCINATION_TEMPLATE_1.HALLUCINATION_CHOICES, promptTemplate = HALLUCINATION_TEMPLATE_1.HALLUCINATION_TEMPLATE, optimizationDirection = "MINIMIZE", name = "hallucination" } = args, rest = __rest(args, ["choices", "promptTemplate", "optimizationDirection", "name"]);
25
- return (0, createClassificationEvaluator_1.createClassificationEvaluator)(Object.assign(Object.assign(Object.assign({}, args), { promptTemplate,
25
+ return (0, createClassificationEvaluator_1.createClassificationEvaluator)(Object.assign(Object.assign({}, rest), { promptTemplate,
26
26
  choices,
27
27
  optimizationDirection,
28
- name }), rest));
28
+ name }));
29
29
  }
30
30
  //# sourceMappingURL=createHallucinationEvaluator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createHallucinationEvaluator.js","sourceRoot":"","sources":["../../../src/llm/createHallucinationEvaluator.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAmCA,oEAkBC;AArDD,wFAGqD;AAIrD,mFAAgF;AAsBhF;;;;;GAKG;AACH,SAAgB,4BAA4B,CAE1C,IAAgC;IAChC,MAAM,EACJ,OAAO,GAAG,8CAAqB,EAC/B,cAAc,GAAG,+CAAsB,EACvC,qBAAqB,GAAG,UAAU,EAClC,IAAI,GAAG,eAAe,KAEpB,IAAI,EADH,IAAI,UACL,IAAI,EANF,8DAML,CAAO,CAAC;IACT,OAAO,IAAA,6DAA6B,gDAC/B,IAAI,KACP,cAAc;QACd,OAAO;QACP,qBAAqB;QACrB,IAAI,KACD,IAAI,EACP,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"createHallucinationEvaluator.js","sourceRoot":"","sources":["../../../src/llm/createHallucinationEvaluator.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAoCA,oEAmBC;AAvDD,wFAGqD;AAIrD,mFAAgF;AAuBhF;;;;;GAKG;AACH,SAAgB,4BAA4B,CAG1C,IAA4C;IAE5C,MAAM,EACJ,OAAO,GAAG,8CAAqB,EAC/B,cAAc,GAAG,+CAAsB,EACvC,qBAAqB,GAAG,UAAU,EAClC,IAAI,GAAG,eAAe,KAEpB,IAAI,EADH,IAAI,UACL,IAAI,EANF,8DAML,CAAO,CAAC;IACT,OAAO,IAAA,6DAA6B,kCAC/B,IAAI,KACP,cAAc;QACd,OAAO;QACP,qBAAqB;QACrB,IAAI,IACJ,CAAC;AACL,CAAC"}
@@ -0,0 +1,194 @@
1
+ /**
2
+ * A value extractor that can retrieve data from an object using various methods.
3
+ *
4
+ * This type supports multiple ways to extract values from your data structure:
5
+ * - **String paths**: Simple property names, dot notation, or JSONPath expressions
6
+ * - **Function extractors**: Custom transformation functions
7
+ *
8
+ * @example
9
+ * **Simple property access:**
10
+ * ```typescript
11
+ * const getter: ValueGetter<{ name: string }> = "name";
12
+ * ```
13
+ *
14
+ * @example
15
+ * **Dot notation for nested properties:**
16
+ * ```typescript
17
+ * const getter: ValueGetter<{ user: { profile: { name: string } } }> = "user.profile.name";
18
+ * ```
19
+ *
20
+ * @example
21
+ * **Array element access:**
22
+ * ```typescript
23
+ * const getter: ValueGetter<{ items: string[] }> = "items[0]";
24
+ * ```
25
+ *
26
+ * @example
27
+ * **JSONPath expression:**
28
+ * ```typescript
29
+ * const getter: ValueGetter<{ items: Array<{ id: number }> }> = "$.items[*].id";
30
+ * ```
31
+ *
32
+ * @example
33
+ * **Function-based extraction:**
34
+ * ```typescript
35
+ * const getter: ValueGetter<{ firstName: string; lastName: string }> =
36
+ * (data) => `${data.firstName} ${data.lastName}`;
37
+ * ```
38
+ *
39
+ * @example
40
+ * **Complex transformation:**
41
+ * ```typescript
42
+ * const getter: ValueGetter<{ scores: number[] }> =
43
+ * (data) => data.scores.reduce((a, b) => a + b, 0) / data.scores.length;
44
+ * ```
45
+ *
46
+ * @typeParam DataType - The type of the data object to extract values from
47
+ */
48
+ export type ValueGetter<DataType extends Record<string, unknown>> = string | ((data: DataType) => any);
49
+ /**
50
+ * A mapping configuration that transforms data from one structure to another.
51
+ *
52
+ * This type defines how to map fields from your data structure to the fields
53
+ * expected by an evaluator or other component. The mapping is flexible and
54
+ * supports multiple extraction methods.
55
+ *
56
+ * **Key Features:**
57
+ * - Preserves original data fields
58
+ * - Adds/overrides fields with mapped values
59
+ * - Supports nested property access
60
+ * - Supports array element access
61
+ * - Supports JSONPath expressions for complex queries
62
+ * - Supports function-based transformations
63
+ *
64
+ * @example
65
+ * **Basic field mapping:**
66
+ * ```typescript
67
+ * type MyData = {
68
+ * userQuery: string;
69
+ * context: string;
70
+ * response: string;
71
+ * };
72
+ *
73
+ * const mapping: ObjectMapping<MyData> = {
74
+ * input: "userQuery", // Map "input" to "userQuery"
75
+ * reference: "context", // Map "reference" to "context"
76
+ * output: "response", // Map "output" to "response"
77
+ * };
78
+ * ```
79
+ *
80
+ * @example
81
+ * **Nested property mapping:**
82
+ * ```typescript
83
+ * type ApiData = {
84
+ * request: {
85
+ * body: {
86
+ * query: string;
87
+ * context: string;
88
+ * };
89
+ * };
90
+ * response: {
91
+ * data: {
92
+ * text: string;
93
+ * };
94
+ * };
95
+ * };
96
+ *
97
+ * const mapping: ObjectMapping<ApiData> = {
98
+ * input: "request.body.query",
99
+ * reference: "request.body.context",
100
+ * output: "response.data.text",
101
+ * };
102
+ * ```
103
+ *
104
+ * @example
105
+ * **Array element access:**
106
+ * ```typescript
107
+ * type DataWithArrays = {
108
+ * messages: Array<{ role: string; content: string }>;
109
+ * sources: string[];
110
+ * };
111
+ *
112
+ * const mapping: ObjectMapping<DataWithArrays> = {
113
+ * firstMessage: "messages[0].content",
114
+ * lastSource: "sources[-1]", // Last element
115
+ * allRoles: "$.messages[*].role", // JSONPath for all roles
116
+ * };
117
+ * ```
118
+ *
119
+ * @example
120
+ * **Function-based transformations:**
121
+ * ```typescript
122
+ * type RawData = {
123
+ * firstName: string;
124
+ * lastName: string;
125
+ * contexts: string[];
126
+ * scores: number[];
127
+ * };
128
+ *
129
+ * const mapping: ObjectMapping<RawData> = {
130
+ * // Combine fields
131
+ * fullName: (data) => `${data.firstName} ${data.lastName}`,
132
+ * // Transform array to string
133
+ * contextText: (data) => data.contexts.join("\n\n"),
134
+ * // Calculate derived value
135
+ * averageScore: (data) =>
136
+ * data.scores.reduce((a, b) => a + b, 0) / data.scores.length,
137
+ * // Conditional logic
138
+ * status: (data) => data.scores.length > 0 ? "active" : "inactive",
139
+ * };
140
+ * ```
141
+ *
142
+ * @example
143
+ * **Mixed mapping types:**
144
+ * ```typescript
145
+ * type ComplexData = {
146
+ * user: {
147
+ * name: string;
148
+ * email: string;
149
+ * };
150
+ * items: Array<{ id: number; name: string }>;
151
+ * metadata: {
152
+ * tags: string[];
153
+ * };
154
+ * };
155
+ *
156
+ * const mapping: ObjectMapping<ComplexData> = {
157
+ * // Simple dot notation
158
+ * userName: "user.name",
159
+ * // Array access
160
+ * firstItemId: "items[0].id",
161
+ * // JSONPath for complex query
162
+ * allItemNames: "$.items[*].name",
163
+ * // Function for transformation
164
+ * formattedTags: (data) => data.metadata.tags.map(t => `#${t}`).join(" "),
165
+ * };
166
+ * ```
167
+ *
168
+ * @example
169
+ * **Real-world evaluator binding:**
170
+ * ```typescript
171
+ * import { bindEvaluator, createHallucinationEvaluator } from "@arizeai/phoenix-evals";
172
+ *
173
+ * type QAData = {
174
+ * question: string;
175
+ * context: string;
176
+ * answer: string;
177
+ * };
178
+ *
179
+ * const mapping: ObjectMapping<QAData> = {
180
+ * input: "question", // Evaluator expects "input"
181
+ * reference: "context", // Evaluator expects "reference"
182
+ * output: "answer", // Evaluator expects "output"
183
+ * };
184
+ *
185
+ * const evaluator = bindEvaluator(
186
+ * createHallucinationEvaluator({ model: openai("gpt-4") }),
187
+ * { inputMapping: mapping }
188
+ * );
189
+ * ```
190
+ *
191
+ * @typeParam DataType - The type of the data object being mapped
192
+ */
193
+ export type ObjectMapping<DataType extends Record<string, unknown>> = Record<string, ValueGetter<DataType>>;
194
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/types/data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,MAAM,WAAW,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC5D,MAAM,GAEN,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,GAAG,CAAC,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+IG;AACH,MAAM,MAAM,aAAa,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,MAAM,CAC1E,MAAM,EACN,WAAW,CAAC,QAAQ,CAAC,CACtB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/types/data.ts"],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
+ import { ObjectMapping } from "./data";
1
2
  import { WithTelemetry } from "./otel";
2
3
  import { PromptTemplate } from "./templating";
3
4
  import { LanguageModel } from "ai";
@@ -68,19 +69,32 @@ export interface CreateClassifierArgs extends WithTelemetry {
68
69
  */
69
70
  promptTemplate: PromptTemplate;
70
71
  }
71
- export interface CreateEvaluatorArgs {
72
+ export interface CreateEvaluatorArgs<ExampleType extends Record<string, unknown> = Record<string, unknown>> extends WithTelemetry {
72
73
  /**
73
74
  * The name of the metric that the evaluator produces
74
75
  * E.x. "correctness"
75
76
  */
76
77
  name: string;
78
+ /**
79
+ * The kind of the evaluation. Also known as the "kind" of evaluator.
80
+ */
81
+ kind: EvaluationKind;
77
82
  /**
78
83
  * If present, represents the direction in which you want the metric to be optimized
79
84
  * E.x. "MAXIMIZE" means you want the number to be higher.
80
85
  */
81
86
  optimizationDirection?: OptimizationDirection;
87
+ /**
88
+ * The mapping of the input to evaluate to the shape that the evaluator expects
89
+ */
90
+ inputMapping?: ObjectMapping<ExampleType>;
82
91
  }
83
- export interface CreateClassificationEvaluatorArgs extends CreateClassifierArgs, CreateEvaluatorArgs {
92
+ export type CreateLLMEvaluatorArgs<RecordType extends Record<string, unknown>> = Omit<CreateEvaluatorArgs<RecordType>, "kind">;
93
+ export interface CreateClassificationEvaluatorArgs<RecordType extends Record<string, unknown>> extends CreateClassifierArgs, CreateLLMEvaluatorArgs<RecordType> {
94
+ /**
95
+ * The prompt template to use for classification
96
+ */
97
+ promptTemplate: PromptTemplate;
84
98
  }
85
99
  export type EvaluatorFn<ExampleType extends Record<string, unknown>> = (args: ExampleType) => Promise<EvaluationResult>;
86
100
  /**
@@ -114,7 +128,7 @@ interface EvaluatorDescription {
114
128
  * The Base Evaluator interface
115
129
  * This is the interface that all evaluators must implement
116
130
  */
117
- export interface Evaluator<ExampleType extends Record<string, unknown>> extends EvaluatorDescription {
131
+ export interface EvaluatorInterface<ExampleType extends Record<string, unknown>> extends EvaluatorDescription {
118
132
  /**
119
133
  * The function that evaluates the example
120
134
  */
@@ -1 +1 @@
1
- {"version":3,"file":"evals.d.ts","sourceRoot":"","sources":["../../../src/types/evals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,UAAU,EAAE,SAAS;IAClD,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,aAAa,CAAC;CACtB;AAGD,MAAM,WAAW,iBAAkB,SAAQ,OAAO;CAAG;AAErD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IAIzD,KAAK,EAAE,aAAa,CAAC;IACrB;;;OAGG;IACH,OAAO,EAAE,wBAAwB,CAAC;IAClC;;OAEG;IACH,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C;AAED,MAAM,WAAW,iCACf,SAAQ,oBAAoB,EAC1B,mBAAmB;CAAG;AAE1B,MAAM,MAAM,WAAW,CAAC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CACrE,IAAI,EAAE,WAAW,KACd,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,CAAC;AAE5C;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D;;GAEG;AACH,UAAU,oBAAoB;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,cAAc,CAAC;IACrB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS,CAAC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACpE,SAAQ,oBAAoB;IAC5B;;OAEG;IACH,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;CACpC"}
1
+ {"version":3,"file":"evals.d.ts","sourceRoot":"","sources":["../../../src/types/evals.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from "./evals";
2
2
  export * from "./templating";
3
3
  export * from "./otel";
4
+ export * from "./data";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./evals"), exports);
18
18
  __exportStar(require("./templating"), exports);
19
19
  __exportStar(require("./otel"), exports);
20
+ __exportStar(require("./data"), exports);
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,+CAA6B;AAC7B,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,+CAA6B;AAC7B,yCAAuB;AACvB,yCAAuB"}
@@ -1,17 +1,18 @@
1
1
  import { Tracer } from "@opentelemetry/api";
2
+ export type TelemetryConfig = {
3
+ /**
4
+ * Whether OpenTelemetry is enabled on the call.
5
+ * Defaults to true for visibility into the evals calls.
6
+ * @default true
7
+ */
8
+ isEnabled?: boolean;
9
+ /**
10
+ * The tracer to use for the call.
11
+ * If not provided, the traces will get picked up by the global tracer.
12
+ */
13
+ tracer?: Tracer;
14
+ };
2
15
  export type WithTelemetry = {
3
- telemetry?: {
4
- /**
5
- * Whether OpenTelemetry is enabled on the call.
6
- * Defaults to true for visibility into the evals calls.
7
- * @default true
8
- */
9
- isEnabled?: boolean;
10
- /**
11
- * The tracer to use for the call.
12
- * If not provided, the traces will get picked up by the global tracer.
13
- */
14
- tracer?: Tracer;
15
- };
16
+ telemetry?: TelemetryConfig;
16
17
  };
17
18
  //# sourceMappingURL=otel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../../src/types/otel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE;QACV;;;;WAIG;QACH,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../../src/types/otel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,CAAC"}