@arizeai/phoenix-evals 0.5.0 → 0.5.1

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 (44) hide show
  1. package/dist/esm/llm/ClassificationEvaluator.d.ts +2 -2
  2. package/dist/esm/llm/ClassificationEvaluator.d.ts.map +1 -1
  3. package/dist/esm/llm/ClassificationEvaluator.js.map +1 -1
  4. package/dist/esm/template/applyTemplate.d.ts +3 -3
  5. package/dist/esm/template/applyTemplate.d.ts.map +1 -1
  6. package/dist/esm/template/applyTemplate.js +15 -1
  7. package/dist/esm/template/applyTemplate.js.map +1 -1
  8. package/dist/esm/template/createTemplateVariablesProxy.d.ts +1 -1
  9. package/dist/esm/template/createTemplateVariablesProxy.d.ts.map +1 -1
  10. package/dist/esm/template/createTemplateVariablesProxy.js.map +1 -1
  11. package/dist/esm/template/getTemplateVariables.d.ts +2 -2
  12. package/dist/esm/template/getTemplateVariables.d.ts.map +1 -1
  13. package/dist/esm/template/getTemplateVariables.js +16 -0
  14. package/dist/esm/template/getTemplateVariables.js.map +1 -1
  15. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  16. package/dist/esm/types/evals.d.ts +2 -2
  17. package/dist/esm/types/evals.d.ts.map +1 -1
  18. package/dist/esm/types/templating.d.ts +8 -6
  19. package/dist/esm/types/templating.d.ts.map +1 -1
  20. package/dist/src/llm/ClassificationEvaluator.d.ts +2 -2
  21. package/dist/src/llm/ClassificationEvaluator.d.ts.map +1 -1
  22. package/dist/src/template/applyTemplate.d.ts +3 -3
  23. package/dist/src/template/applyTemplate.d.ts.map +1 -1
  24. package/dist/src/template/applyTemplate.js +12 -1
  25. package/dist/src/template/applyTemplate.js.map +1 -1
  26. package/dist/src/template/createTemplateVariablesProxy.d.ts +1 -1
  27. package/dist/src/template/createTemplateVariablesProxy.d.ts.map +1 -1
  28. package/dist/src/template/createTemplateVariablesProxy.js.map +1 -1
  29. package/dist/src/template/getTemplateVariables.d.ts +2 -2
  30. package/dist/src/template/getTemplateVariables.d.ts.map +1 -1
  31. package/dist/src/template/getTemplateVariables.js +16 -0
  32. package/dist/src/template/getTemplateVariables.js.map +1 -1
  33. package/dist/src/types/evals.d.ts +2 -2
  34. package/dist/src/types/evals.d.ts.map +1 -1
  35. package/dist/src/types/templating.d.ts +8 -6
  36. package/dist/src/types/templating.d.ts.map +1 -1
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +2 -1
  39. package/src/llm/ClassificationEvaluator.ts +2 -2
  40. package/src/template/applyTemplate.ts +22 -9
  41. package/src/template/createTemplateVariablesProxy.ts +3 -3
  42. package/src/template/getTemplateVariables.ts +18 -2
  43. package/src/types/evals.ts +2 -2
  44. package/src/types/templating.ts +9 -6
@@ -3,17 +3,17 @@
3
3
  * This allows Mustache to access properties of objects (e.g., {{user.name}}) while
4
4
  * stringifying objects that are accessed as leaf values (e.g., {{user.profile}}).
5
5
  */
6
- export function createTemplateVariablesProxy(obj: unknown): unknown {
6
+ export function createTemplateVariablesProxy<T>(obj: T): T {
7
7
  if (obj === null || obj === undefined) {
8
8
  return obj;
9
9
  }
10
10
 
11
11
  if (Array.isArray(obj)) {
12
- return obj.map(createTemplateVariablesProxy);
12
+ return obj.map(createTemplateVariablesProxy) as T;
13
13
  }
14
14
 
15
15
  if (typeof obj === "object") {
16
- return new Proxy(obj as Record<string, unknown>, {
16
+ return new Proxy(obj, {
17
17
  get(target, prop: string | symbol) {
18
18
  // Handle toString and valueOf to stringify the object when accessed directly
19
19
  if (prop === "toString") {
@@ -1,9 +1,9 @@
1
- import { Template } from "../types/templating";
1
+ import { PromptTemplate } from "../types/templating";
2
2
 
3
3
  import Mustache from "mustache";
4
4
 
5
5
  type GetTemplateVariableArgs = {
6
- template: Template;
6
+ template: PromptTemplate;
7
7
  };
8
8
  /**
9
9
  * Parse out the template variables of a prompt
@@ -12,6 +12,22 @@ type GetTemplateVariableArgs = {
12
12
  */
13
13
  export function getTemplateVariables(args: GetTemplateVariableArgs): string[] {
14
14
  const { template } = args;
15
+ if (typeof template === "string") {
16
+ return getTemplateVariablesFromString(template);
17
+ }
18
+ return template.reduce((acc, message) => {
19
+ if (message.content !== undefined && typeof message.content === "string") {
20
+ return [...acc, ...getTemplateVariablesFromString(message.content)];
21
+ }
22
+ return acc;
23
+ }, [] as string[]);
24
+ }
25
+ /**
26
+ * Parse out the template variables of a string template
27
+ * @param template - The template to get the variables from
28
+ * @returns {string[]} a list of prompt template variables
29
+ */
30
+ function getTemplateVariablesFromString(template: string): string[] {
15
31
  const templateSpans = Mustache.parse(template);
16
32
  return templateSpans.reduce((acc, templateSpan) => {
17
33
  const [spanType, value] = templateSpan;
@@ -1,5 +1,5 @@
1
1
  import { WithTelemetry } from "./otel";
2
- import { Template } from "./templating";
2
+ import { PromptTemplate } from "./templating";
3
3
 
4
4
  import { LanguageModel } from "ai";
5
5
 
@@ -78,7 +78,7 @@ export interface CreateClassifierArgs extends WithTelemetry {
78
78
  /**
79
79
  * The prompt template to use for classification
80
80
  */
81
- promptTemplate: Template;
81
+ promptTemplate: PromptTemplate;
82
82
  }
83
83
 
84
84
  export interface CreateEvaluatorArgs {
@@ -1,10 +1,13 @@
1
- export type Template = string;
1
+ import type { ModelMessage } from "ai";
2
+
3
+ export type PromptTemplate = string | Array<ModelMessage>;
4
+ export type RenderedPrompt = string | Array<ModelMessage>;
2
5
  export type TemplateVariables = Record<string, unknown>;
3
6
 
4
- /**
5
- * A class or object that has a prompt template
6
- */
7
7
  export interface WithPromptTemplate {
8
- readonly promptTemplate: Template;
9
- get promptTemplateVariables(): string[];
8
+ readonly promptTemplate: PromptTemplate;
9
+ /**
10
+ * List out the prompt template variables needed to perform evaluation
11
+ */
12
+ readonly promptTemplateVariables: string[];
10
13
  }