braintrust 0.0.97 → 0.0.99

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.
@@ -1,10 +1,10 @@
1
1
  import chalk from "chalk";
2
- import { Experiment, ExperimentSummary, Metadata, Span, EvalCase } from "./logger";
2
+ import { Experiment, ExperimentSummary, Span, EvalCase, BaseMetadata, DefaultMetadataType } from "./logger";
3
3
  import { Score } from "@braintrust/core";
4
4
  import { ProgressReporter } from "./progress";
5
- export type BaseExperiment<Input, Expected> = {
5
+ export type BaseExperiment<Input, Expected, Metadata extends BaseMetadata = DefaultMetadataType> = {
6
6
  _type: "BaseExperiment";
7
- _phantom?: [Input, Expected];
7
+ _phantom?: [Input, Expected, Metadata];
8
8
  name?: string;
9
9
  };
10
10
  /**
@@ -17,24 +17,24 @@ export type BaseExperiment<Input, Expected> = {
17
17
  * using your git history (or fall back to timestamps).
18
18
  * @returns
19
19
  */
20
- export declare function BaseExperiment<Input = unknown, Expected = unknown>(options?: {
20
+ export declare function BaseExperiment<Input = unknown, Expected = unknown, Metadata extends BaseMetadata = DefaultMetadataType>(options?: {
21
21
  name?: string;
22
- }): BaseExperiment<Input, Expected>;
23
- export type EvalData<Input, Expected> = EvalCase<Input, Expected>[] | (() => EvalCase<Input, Expected>[]) | (() => Promise<EvalCase<Input, Expected>[]>) | AsyncGenerator<EvalCase<Input, Expected>> | BaseExperiment<Input, Expected> | (() => BaseExperiment<Input, Expected>);
22
+ }): BaseExperiment<Input, Expected, Metadata>;
23
+ export type EvalData<Input, Expected, Metadata extends BaseMetadata = DefaultMetadataType> = EvalCase<Input, Expected, Metadata>[] | (() => EvalCase<Input, Expected, Metadata>[]) | (() => Promise<EvalCase<Input, Expected, Metadata>[]>) | AsyncGenerator<EvalCase<Input, Expected, Metadata>> | AsyncIterable<EvalCase<Input, Expected, Metadata>> | BaseExperiment<Input, Expected, Metadata> | (() => BaseExperiment<Input, Expected, Metadata>);
24
24
  export type EvalTask<Input, Output> = ((input: Input, hooks: EvalHooks) => Promise<Output>) | ((input: Input, hooks: EvalHooks) => Output);
25
25
  export interface EvalHooks {
26
26
  meta: (info: Record<string, unknown>) => void;
27
27
  span: Span;
28
28
  }
29
- export type EvalScorerArgs<Input, Output, Expected> = EvalCase<Input, Expected> & {
29
+ export type EvalScorerArgs<Input, Output, Expected, Metadata extends BaseMetadata = DefaultMetadataType> = EvalCase<Input, Expected, Metadata> & {
30
30
  output: Output;
31
31
  };
32
- export type EvalScorer<Input, Output, Expected> = (args: EvalScorerArgs<Input, Output, Expected>) => Score | Promise<Score>;
33
- export interface Evaluator<Input, Output, Expected> {
32
+ export type EvalScorer<Input, Output, Expected, Metadata extends BaseMetadata = DefaultMetadataType> = (args: EvalScorerArgs<Input, Output, Expected, Metadata>) => Score | Promise<Score>;
33
+ export interface Evaluator<Input, Output, Expected, Metadata extends BaseMetadata = DefaultMetadataType> {
34
34
  /**
35
35
  * A function that returns a list of inputs, expected outputs, and metadata.
36
36
  */
37
- data: EvalData<Input, Expected>;
37
+ data: EvalData<Input, Expected, Metadata>;
38
38
  /**
39
39
  * A function that takes an input and returns an output.
40
40
  */
@@ -42,7 +42,7 @@ export interface Evaluator<Input, Output, Expected> {
42
42
  /**
43
43
  * A set of functions that take an input, output, and expected value and return a score.
44
44
  */
45
- scores: EvalScorer<Input, Output, Expected>[];
45
+ scores: EvalScorer<Input, Output, Expected, Metadata>[];
46
46
  /**
47
47
  * An optional name for the experiment.
48
48
  */
@@ -56,24 +56,24 @@ export interface Evaluator<Input, Output, Expected> {
56
56
  /**
57
57
  * Optional additional metadata for the experiment.
58
58
  */
59
- metadata?: Metadata;
59
+ metadata?: Record<string, unknown>;
60
60
  /**
61
61
  * Whether the experiment should be public. Defaults to false.
62
62
  */
63
63
  isPublic?: boolean;
64
64
  }
65
- export type EvaluatorDef<Input, Output, Expected> = {
65
+ export type EvaluatorDef<Input, Output, Expected, Metadata extends BaseMetadata = DefaultMetadataType> = {
66
66
  projectName: string;
67
67
  evalName: string;
68
- } & Evaluator<Input, Output, Expected>;
68
+ } & Evaluator<Input, Output, Expected, Metadata>;
69
69
  export type EvaluatorFile = {
70
- [evalName: string]: EvaluatorDef<any, any, any>;
70
+ [evalName: string]: EvaluatorDef<any, any, any, any>;
71
71
  };
72
72
  declare global {
73
73
  var _evals: EvaluatorFile;
74
74
  var _lazy_load: boolean;
75
75
  }
76
- export declare function Eval<Input, Output, Expected>(name: string, evaluator: Evaluator<Input, Output, Expected>): Promise<ExperimentSummary>;
76
+ export declare function Eval<Input, Output, Expected, Metadata extends BaseMetadata = DefaultMetadataType>(name: string, evaluator: Evaluator<Input, Output, Expected, Metadata>): Promise<ExperimentSummary>;
77
77
  export declare function getLoadedEvals(): EvaluatorFile;
78
78
  export interface Filter {
79
79
  path: string[];
@@ -88,10 +88,10 @@ export declare function deserializePlainStringAsJSON(s: string): {
88
88
  error: unknown;
89
89
  };
90
90
  export declare function parseFilters(filters: string[]): Filter[];
91
- export declare function runEvaluator(experiment: Experiment | null, evaluator: EvaluatorDef<unknown, unknown, unknown>, progressReporter: ProgressReporter, filters: Filter[]): Promise<{
91
+ export declare function runEvaluator(experiment: Experiment | null, evaluator: EvaluatorDef<any, any, any | void, any | void>, progressReporter: ProgressReporter, filters: Filter[]): Promise<{
92
92
  results: {
93
93
  output: any;
94
- metadata: Metadata;
94
+ metadata: Record<string, unknown>;
95
95
  scores: Record<string, number | null>;
96
96
  error: unknown;
97
97
  }[];
package/dist/gitutil.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { GitMetadataSettings, RepoStatus } from "@braintrust/core";
1
+ import { GitMetadataSettings, RepoInfo } from "@braintrust/core";
2
2
  /**
3
3
  * Information about the current HEAD of the repo.
4
4
  */
5
5
  export declare function currentRepo(): Promise<import("simple-git").SimpleGit | null>;
6
6
  export declare function getPastNAncestors(n?: number, remote?: string | undefined): Promise<string[]>;
7
- export declare function getRepoStatus(settings?: GitMetadataSettings): Promise<RepoStatus | undefined>;
7
+ export declare function getRepoInfo(settings?: GitMetadataSettings): Promise<RepoInfo | undefined>;
package/dist/index.d.ts CHANGED
@@ -45,3 +45,4 @@
45
45
  export * from "./logger";
46
46
  export { BaseExperiment, Evaluator, EvalTask, Eval, EvalScorerArgs, } from "./framework";
47
47
  export * from "./oai";
48
+ export { ParentExperimentIds, ParentProjectLogIds, IdField, InputField, InputsField, OtherExperimentLogFields, ExperimentLogPartialArgs, ExperimentLogFullArgs, LogFeedbackFullArgs, LogCommentFullArgs, CommentEvent, DatasetRecord, } from "@braintrust/core";