@mastra/evals 0.0.0-commonjs-20250227130920
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.
- package/.turbo/turbo-build.log +37 -0
- package/CHANGELOG.md +777 -0
- package/LICENSE +44 -0
- package/README.md +185 -0
- package/dist/_tsup-dts-rollup.d.cts +764 -0
- package/dist/_tsup-dts-rollup.d.ts +764 -0
- package/dist/chunk-4VNS5WPM.js +37 -0
- package/dist/chunk-TXXJUIES.js +15 -0
- package/dist/dist-MSGH6PAG.js +17947 -0
- package/dist/index.cjs +19675 -0
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +86 -0
- package/dist/magic-string.es-5UDOWOAZ.js +1296 -0
- package/dist/metrics/judge/index.cjs +17 -0
- package/dist/metrics/judge/index.d.cts +1 -0
- package/dist/metrics/judge/index.d.ts +1 -0
- package/dist/metrics/judge/index.js +2 -0
- package/dist/metrics/llm/index.cjs +2482 -0
- package/dist/metrics/llm/index.d.cts +11 -0
- package/dist/metrics/llm/index.d.ts +11 -0
- package/dist/metrics/llm/index.js +2459 -0
- package/dist/metrics/nlp/index.cjs +202 -0
- package/dist/metrics/nlp/index.d.cts +5 -0
- package/dist/metrics/nlp/index.d.ts +5 -0
- package/dist/metrics/nlp/index.js +189 -0
- package/eslint.config.js +6 -0
- package/package.json +89 -0
- package/src/attachListeners.ts +40 -0
- package/src/constants.ts +1 -0
- package/src/evaluation.test.ts +29 -0
- package/src/evaluation.ts +58 -0
- package/src/index.ts +2 -0
- package/src/metrics/index.ts +3 -0
- package/src/metrics/judge/index.ts +14 -0
- package/src/metrics/llm/answer-relevancy/index.test.ts +156 -0
- package/src/metrics/llm/answer-relevancy/index.ts +58 -0
- package/src/metrics/llm/answer-relevancy/metricJudge.ts +56 -0
- package/src/metrics/llm/answer-relevancy/prompts.ts +214 -0
- package/src/metrics/llm/bias/index.test.ts +152 -0
- package/src/metrics/llm/bias/index.ts +52 -0
- package/src/metrics/llm/bias/metricJudge.ts +53 -0
- package/src/metrics/llm/bias/prompts.ts +109 -0
- package/src/metrics/llm/context-position/index.test.ts +275 -0
- package/src/metrics/llm/context-position/index.ts +69 -0
- package/src/metrics/llm/context-position/metricJudge.ts +55 -0
- package/src/metrics/llm/context-position/prompts.ts +135 -0
- package/src/metrics/llm/context-precision/index.test.ts +213 -0
- package/src/metrics/llm/context-precision/index.ts +68 -0
- package/src/metrics/llm/context-precision/metricJudge.ts +55 -0
- package/src/metrics/llm/context-precision/prompts.ts +139 -0
- package/src/metrics/llm/context-relevancy/index.test.ts +162 -0
- package/src/metrics/llm/context-relevancy/index.ts +59 -0
- package/src/metrics/llm/context-relevancy/metricJudge.ts +51 -0
- package/src/metrics/llm/context-relevancy/prompts.ts +111 -0
- package/src/metrics/llm/contextual-recall/index.test.ts +90 -0
- package/src/metrics/llm/contextual-recall/index.ts +56 -0
- package/src/metrics/llm/contextual-recall/metricJudge.ts +52 -0
- package/src/metrics/llm/contextual-recall/prompts.ts +82 -0
- package/src/metrics/llm/faithfulness/index.test.ts +254 -0
- package/src/metrics/llm/faithfulness/index.ts +59 -0
- package/src/metrics/llm/faithfulness/metricJudge.ts +62 -0
- package/src/metrics/llm/faithfulness/prompts.ts +166 -0
- package/src/metrics/llm/hallucination/index.test.ts +214 -0
- package/src/metrics/llm/hallucination/index.ts +59 -0
- package/src/metrics/llm/hallucination/metricJudge.ts +44 -0
- package/src/metrics/llm/hallucination/prompts.ts +143 -0
- package/src/metrics/llm/index.ts +11 -0
- package/src/metrics/llm/prompt-alignment/index.test.ts +335 -0
- package/src/metrics/llm/prompt-alignment/index.ts +116 -0
- package/src/metrics/llm/prompt-alignment/metricJudge.ts +43 -0
- package/src/metrics/llm/prompt-alignment/prompts.ts +224 -0
- package/src/metrics/llm/summarization/index.test.ts +274 -0
- package/src/metrics/llm/summarization/index.ts +72 -0
- package/src/metrics/llm/summarization/metricJudge.ts +101 -0
- package/src/metrics/llm/summarization/prompts.ts +252 -0
- package/src/metrics/llm/toxicity/index.test.ts +84 -0
- package/src/metrics/llm/toxicity/index.ts +54 -0
- package/src/metrics/llm/toxicity/metricJudge.ts +39 -0
- package/src/metrics/llm/toxicity/prompts.ts +87 -0
- package/src/metrics/llm/types.ts +7 -0
- package/src/metrics/llm/utils.ts +20 -0
- package/src/metrics/nlp/completeness/index.test.ts +98 -0
- package/src/metrics/nlp/completeness/index.ts +121 -0
- package/src/metrics/nlp/content-similarity/index.test.ts +76 -0
- package/src/metrics/nlp/content-similarity/index.ts +49 -0
- package/src/metrics/nlp/index.ts +5 -0
- package/src/metrics/nlp/keyword-coverage/index.test.ts +85 -0
- package/src/metrics/nlp/keyword-coverage/index.ts +49 -0
- package/src/metrics/nlp/textual-difference/index.test.ts +88 -0
- package/src/metrics/nlp/textual-difference/index.ts +38 -0
- package/src/metrics/nlp/tone/index.test.ts +100 -0
- package/src/metrics/nlp/tone/index.ts +55 -0
- package/tsconfig.json +5 -0
- package/vitest.config.ts +12 -0
package/dist/index.d.cts
ADDED
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import './chunk-4VNS5WPM.js';
|
|
2
|
+
import { evaluate as evaluate$1 } from '@mastra/core';
|
|
3
|
+
import { registerHook, AvailableHooks } from '@mastra/core/hooks';
|
|
4
|
+
import { TABLE_EVALS } from '@mastra/core/storage';
|
|
5
|
+
|
|
6
|
+
// src/constants.ts
|
|
7
|
+
var GLOBAL_RUN_ID_ENV_KEY = "_MASTRA_GLOBAL_RUN_ID_";
|
|
8
|
+
|
|
9
|
+
// src/evaluation.ts
|
|
10
|
+
async function evaluate(agent, input, metric) {
|
|
11
|
+
const testInfo = await getCurrentTestInfo();
|
|
12
|
+
let globalRunId = process.env[GLOBAL_RUN_ID_ENV_KEY];
|
|
13
|
+
const runId = crypto.randomUUID();
|
|
14
|
+
const agentOutput = await agent.generate(input, {
|
|
15
|
+
runId
|
|
16
|
+
});
|
|
17
|
+
if (!globalRunId) {
|
|
18
|
+
globalRunId = process.env[GLOBAL_RUN_ID_ENV_KEY] = crypto.randomUUID();
|
|
19
|
+
console.warn('Global run id not set, you should run "globalSetup" from "@mastra/evals" before evaluating.');
|
|
20
|
+
}
|
|
21
|
+
const metricResult = await evaluate$1({
|
|
22
|
+
agentName: agent.name,
|
|
23
|
+
input,
|
|
24
|
+
metric,
|
|
25
|
+
output: agentOutput.text,
|
|
26
|
+
globalRunId,
|
|
27
|
+
runId,
|
|
28
|
+
testInfo,
|
|
29
|
+
instructions: agent.instructions
|
|
30
|
+
});
|
|
31
|
+
return metricResult;
|
|
32
|
+
}
|
|
33
|
+
var getCurrentTestInfo = async () => {
|
|
34
|
+
if (typeof expect !== "undefined" && expect.getState) {
|
|
35
|
+
const state = expect.getState();
|
|
36
|
+
return {
|
|
37
|
+
testName: state.currentTestName,
|
|
38
|
+
testPath: state.testPath
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
const vitest = await import('./dist-MSGH6PAG.js');
|
|
43
|
+
if (typeof vitest !== "undefined" && vitest.expect?.getState) {
|
|
44
|
+
const state = vitest.expect.getState();
|
|
45
|
+
return {
|
|
46
|
+
testName: state.currentTestName,
|
|
47
|
+
testPath: state.testPath
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
} catch {
|
|
51
|
+
}
|
|
52
|
+
return void 0;
|
|
53
|
+
};
|
|
54
|
+
async function attachListeners(mastra) {
|
|
55
|
+
if (mastra?.storage) {
|
|
56
|
+
await mastra.storage.init();
|
|
57
|
+
}
|
|
58
|
+
registerHook(AvailableHooks.ON_EVALUATION, async (traceObject) => {
|
|
59
|
+
if (mastra?.storage) {
|
|
60
|
+
await mastra.storage.insert({
|
|
61
|
+
tableName: TABLE_EVALS,
|
|
62
|
+
record: {
|
|
63
|
+
input: traceObject.input,
|
|
64
|
+
output: traceObject.output,
|
|
65
|
+
result: JSON.stringify(traceObject.result),
|
|
66
|
+
agent_name: traceObject.agentName,
|
|
67
|
+
metric_name: traceObject.metricName,
|
|
68
|
+
instructions: traceObject.instructions,
|
|
69
|
+
test_info: traceObject.testInfo ? JSON.stringify(traceObject.testInfo) : null,
|
|
70
|
+
global_run_id: traceObject.globalRunId,
|
|
71
|
+
run_id: traceObject.runId,
|
|
72
|
+
created_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
async function globalSetup() {
|
|
79
|
+
if (process.env[GLOBAL_RUN_ID_ENV_KEY]) {
|
|
80
|
+
throw new Error('Global run id already set, you should only run "GlobalSetup" once');
|
|
81
|
+
}
|
|
82
|
+
const globalRunId = crypto.randomUUID();
|
|
83
|
+
process.env[GLOBAL_RUN_ID_ENV_KEY] = globalRunId;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export { attachListeners, evaluate, globalSetup };
|