@arizeai/phoenix-client 4.1.0 → 4.2.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.
- package/dist/esm/datasets/createOrGetDataset.d.ts +18 -0
- package/dist/esm/datasets/createOrGetDataset.d.ts.map +1 -0
- package/dist/esm/datasets/createOrGetDataset.js +29 -0
- package/dist/esm/datasets/createOrGetDataset.js.map +1 -0
- package/dist/esm/datasets/index.d.ts +1 -0
- package/dist/esm/datasets/index.d.ts.map +1 -1
- package/dist/esm/datasets/index.js +1 -0
- package/dist/esm/datasets/index.js.map +1 -1
- package/dist/esm/experiments/instrumentation.d.ts +7 -1
- package/dist/esm/experiments/instrumentation.d.ts.map +1 -1
- package/dist/esm/experiments/instrumentation.js +5 -3
- package/dist/esm/experiments/instrumentation.js.map +1 -1
- package/dist/esm/experiments/runExperiment.d.ts +13 -2
- package/dist/esm/experiments/runExperiment.d.ts.map +1 -1
- package/dist/esm/experiments/runExperiment.js +7 -3
- package/dist/esm/experiments/runExperiment.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/src/datasets/createOrGetDataset.d.ts +18 -0
- package/dist/src/datasets/createOrGetDataset.d.ts.map +1 -0
- package/dist/src/datasets/createOrGetDataset.js +32 -0
- package/dist/src/datasets/createOrGetDataset.js.map +1 -0
- package/dist/src/datasets/index.d.ts +1 -0
- package/dist/src/datasets/index.d.ts.map +1 -1
- package/dist/src/datasets/index.js +1 -0
- package/dist/src/datasets/index.js.map +1 -1
- package/dist/src/experiments/instrumentation.d.ts +7 -1
- package/dist/src/experiments/instrumentation.d.ts.map +1 -1
- package/dist/src/experiments/instrumentation.js +4 -2
- package/dist/src/experiments/instrumentation.js.map +1 -1
- package/dist/src/experiments/runExperiment.d.ts +13 -2
- package/dist/src/experiments/runExperiment.d.ts.map +1 -1
- package/dist/src/experiments/runExperiment.js +6 -2
- package/dist/src/experiments/runExperiment.js.map +1 -1
- package/dist/src/prompts/sdks/toSDK.d.ts +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/datasets/createOrGetDataset.ts +39 -0
- package/src/datasets/index.ts +1 -0
- package/src/experiments/instrumentation.ts +9 -1
- package/src/experiments/runExperiment.ts +22 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arizeai/phoenix-client",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"description": "A client for the Phoenix API",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"tsx": "^4.19.3",
|
|
68
68
|
"typescript": "^5.8.2",
|
|
69
69
|
"vitest": "^2.1.9",
|
|
70
|
-
"@arizeai/phoenix-evals": "0.2.
|
|
70
|
+
"@arizeai/phoenix-evals": "0.2.2"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
73
|
"@arizeai/openinference-semantic-conventions": "^1.1.0",
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
"prebuild": "pnpm run clean && pnpm run generate",
|
|
99
99
|
"generate": "openapi-typescript --empty-objects-unknown=true --default-non-nullable=false ../../../schemas/openapi.json -o ./src/__generated__/api/v1.ts",
|
|
100
100
|
"build": "tsc --build tsconfig.json tsconfig.esm.json && tsc-alias -p tsconfig.esm.json",
|
|
101
|
-
"postbuild": "echo '{\"type\": \"module\"}' > ./dist/esm/package.json
|
|
101
|
+
"postbuild": "echo '{\"type\": \"module\"}' > ./dist/esm/package.json",
|
|
102
102
|
"type:check": "tsc --noEmit",
|
|
103
103
|
"test": "vitest --typecheck"
|
|
104
104
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createClient } from "../client";
|
|
2
|
+
import { CreateDatasetParams, createDataset } from "./createDataset";
|
|
3
|
+
import { getDatasetInfoByName } from "./getDatasetInfoByName";
|
|
4
|
+
|
|
5
|
+
export type CreateOrGetDatasetParams = CreateDatasetParams;
|
|
6
|
+
|
|
7
|
+
export type CreateOrGetDatasetResponse = {
|
|
8
|
+
datasetId: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Given the parameters to create a dataset, this function will either
|
|
13
|
+
* retrieve an existing dataset by name or create a new one with the provided parameters.
|
|
14
|
+
*
|
|
15
|
+
* This is useful in cases where you would like to re-run a pipeline like:
|
|
16
|
+
* - ensure dataset exists
|
|
17
|
+
* - create a task
|
|
18
|
+
* - run experiment
|
|
19
|
+
* - evaluate experiment
|
|
20
|
+
* without having to create a new dataset each time.
|
|
21
|
+
*/
|
|
22
|
+
export async function createOrGetDataset({
|
|
23
|
+
name,
|
|
24
|
+
description,
|
|
25
|
+
examples,
|
|
26
|
+
client: _client,
|
|
27
|
+
}: CreateOrGetDatasetParams): Promise<CreateOrGetDatasetResponse> {
|
|
28
|
+
const client = _client || createClient();
|
|
29
|
+
// start by fetching an existing dataset by name, catching any errors that occur
|
|
30
|
+
try {
|
|
31
|
+
const dataset = await getDatasetInfoByName({ datasetName: name, client });
|
|
32
|
+
return {
|
|
33
|
+
datasetId: dataset.id,
|
|
34
|
+
};
|
|
35
|
+
} catch {
|
|
36
|
+
// If the dataset doesn't exist, create it, falling back to the error handling inside createDataset
|
|
37
|
+
return await createDataset({ name, description, examples, client });
|
|
38
|
+
}
|
|
39
|
+
}
|
package/src/datasets/index.ts
CHANGED
|
@@ -20,6 +20,7 @@ export function createProvider({
|
|
|
20
20
|
baseUrl,
|
|
21
21
|
headers,
|
|
22
22
|
useBatchSpanProcessor = true,
|
|
23
|
+
diagLogLevel,
|
|
23
24
|
}: {
|
|
24
25
|
projectName: string;
|
|
25
26
|
headers: HeadersOptions;
|
|
@@ -32,8 +33,15 @@ export function createProvider({
|
|
|
32
33
|
* The base URL of the Phoenix. Doesn't include the /v1/traces path.
|
|
33
34
|
*/
|
|
34
35
|
baseUrl: string;
|
|
36
|
+
/**
|
|
37
|
+
* The diag log level to set for the built in DiagConsoleLogger instance.
|
|
38
|
+
* Omit to disable built in logging.
|
|
39
|
+
*/
|
|
40
|
+
diagLogLevel?: DiagLogLevel;
|
|
35
41
|
}) {
|
|
36
|
-
|
|
42
|
+
if (diagLogLevel) {
|
|
43
|
+
diag.setLogger(new DiagConsoleLogger(), diagLogLevel);
|
|
44
|
+
}
|
|
37
45
|
|
|
38
46
|
const exporter = new OTLPTraceExporter({
|
|
39
47
|
url: `${baseUrl}/v1/traces`,
|
|
@@ -23,7 +23,12 @@ import { pluralize } from "../utils/pluralize";
|
|
|
23
23
|
import { promisifyResult } from "../utils/promisifyResult";
|
|
24
24
|
import { AnnotatorKind } from "../types/annotations";
|
|
25
25
|
import { createProvider, createNoOpProvider } from "./instrumentation";
|
|
26
|
-
import {
|
|
26
|
+
import {
|
|
27
|
+
type DiagLogLevel,
|
|
28
|
+
SpanStatusCode,
|
|
29
|
+
Tracer,
|
|
30
|
+
trace,
|
|
31
|
+
} from "@opentelemetry/api";
|
|
27
32
|
import {
|
|
28
33
|
MimeType,
|
|
29
34
|
OpenInferenceSpanKind,
|
|
@@ -111,6 +116,11 @@ export type RunExperimentParams = ClientFn & {
|
|
|
111
116
|
* @default true
|
|
112
117
|
*/
|
|
113
118
|
useBatchSpanProcessor?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Log level to set for the default DiagConsoleLogger when tracing.
|
|
121
|
+
* Omit to disable default diag logging, or to bring your own.
|
|
122
|
+
*/
|
|
123
|
+
diagLogLevel?: DiagLogLevel;
|
|
114
124
|
};
|
|
115
125
|
|
|
116
126
|
/**
|
|
@@ -160,6 +170,7 @@ export async function runExperiment({
|
|
|
160
170
|
setGlobalTracerProvider = true,
|
|
161
171
|
repetitions = 1,
|
|
162
172
|
useBatchSpanProcessor = true,
|
|
173
|
+
diagLogLevel,
|
|
163
174
|
}: RunExperimentParams): Promise<RanExperiment> {
|
|
164
175
|
// Validation
|
|
165
176
|
assert(
|
|
@@ -227,6 +238,7 @@ export async function runExperiment({
|
|
|
227
238
|
baseUrl,
|
|
228
239
|
headers: client.config.headers ?? {},
|
|
229
240
|
useBatchSpanProcessor,
|
|
241
|
+
diagLogLevel,
|
|
230
242
|
});
|
|
231
243
|
// Register the provider
|
|
232
244
|
if (setGlobalTracerProvider) {
|
|
@@ -298,6 +310,8 @@ export async function runExperiment({
|
|
|
298
310
|
concurrency,
|
|
299
311
|
dryRun,
|
|
300
312
|
tracerProvider: provider,
|
|
313
|
+
diagLogLevel,
|
|
314
|
+
useBatchSpanProcessor,
|
|
301
315
|
});
|
|
302
316
|
ranExperiment.evaluationRuns = evaluationRuns;
|
|
303
317
|
|
|
@@ -468,6 +482,7 @@ export async function evaluateExperiment({
|
|
|
468
482
|
setGlobalTracerProvider = true,
|
|
469
483
|
useBatchSpanProcessor = true,
|
|
470
484
|
tracerProvider: paramsTracerProvider,
|
|
485
|
+
diagLogLevel,
|
|
471
486
|
}: {
|
|
472
487
|
/**
|
|
473
488
|
* The experiment to evaluate
|
|
@@ -502,6 +517,11 @@ export async function evaluateExperiment({
|
|
|
502
517
|
* Intended as a pass-through from runExperiment
|
|
503
518
|
*/
|
|
504
519
|
tracerProvider?: NodeTracerProvider | null;
|
|
520
|
+
/**
|
|
521
|
+
* Log level to set for the default DiagConsoleLogger when tracing.
|
|
522
|
+
* Omit to disable default diag logging, or to bring your own.
|
|
523
|
+
*/
|
|
524
|
+
diagLogLevel?: DiagLogLevel;
|
|
505
525
|
}): Promise<RanExperiment> {
|
|
506
526
|
const isDryRun = typeof dryRun === "number" || dryRun === true;
|
|
507
527
|
const client = _client ?? createClient();
|
|
@@ -521,6 +541,7 @@ export async function evaluateExperiment({
|
|
|
521
541
|
baseUrl,
|
|
522
542
|
headers: client.config.headers ?? {},
|
|
523
543
|
useBatchSpanProcessor,
|
|
544
|
+
diagLogLevel,
|
|
524
545
|
});
|
|
525
546
|
if (setGlobalTracerProvider) {
|
|
526
547
|
provider.register();
|