@arizeai/phoenix-client 2.3.2 → 2.3.4
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/experiments/instrumention.d.ts.map +1 -1
- package/dist/esm/experiments/instrumention.js +11 -7
- package/dist/esm/experiments/instrumention.js.map +1 -1
- package/dist/esm/experiments/runExperiment.d.ts +14 -2
- package/dist/esm/experiments/runExperiment.d.ts.map +1 -1
- package/dist/esm/experiments/runExperiment.js +11 -3
- package/dist/esm/experiments/runExperiment.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/src/datasets/appendDatasetExamples.js +34 -45
- package/dist/src/datasets/appendDatasetExamples.js.map +1 -1
- package/dist/src/datasets/createDataset.js +25 -36
- package/dist/src/datasets/createDataset.js.map +1 -1
- package/dist/src/datasets/getDataset.js +7 -18
- package/dist/src/datasets/getDataset.js.map +1 -1
- package/dist/src/datasets/getDatasetExamples.js +25 -36
- package/dist/src/datasets/getDatasetExamples.js.map +1 -1
- package/dist/src/datasets/getDatasetInfo.js +22 -33
- package/dist/src/datasets/getDatasetInfo.js.map +1 -1
- package/dist/src/datasets/getDatasetInfoByName.js +21 -32
- package/dist/src/datasets/getDatasetInfoByName.js.map +1 -1
- package/dist/src/datasets/listDatasets.js +6 -17
- package/dist/src/datasets/listDatasets.js.map +1 -1
- package/dist/src/experiments/getExperiment.js +13 -24
- package/dist/src/experiments/getExperiment.js.map +1 -1
- package/dist/src/experiments/getExperimentInfo.js +15 -26
- package/dist/src/experiments/getExperimentInfo.js.map +1 -1
- package/dist/src/experiments/getExperimentRuns.js +24 -35
- package/dist/src/experiments/getExperimentRuns.js.map +1 -1
- package/dist/src/experiments/instrumention.d.ts.map +1 -1
- package/dist/src/experiments/instrumention.js +11 -7
- package/dist/src/experiments/instrumention.js.map +1 -1
- package/dist/src/experiments/runExperiment.d.ts +14 -2
- package/dist/src/experiments/runExperiment.d.ts.map +1 -1
- package/dist/src/experiments/runExperiment.js +286 -293
- package/dist/src/experiments/runExperiment.js.map +1 -1
- package/dist/src/prompts/createPrompt.js +14 -25
- package/dist/src/prompts/createPrompt.js.map +1 -1
- package/dist/src/prompts/getPrompt.js +4 -15
- package/dist/src/prompts/getPrompt.js.map +1 -1
- package/dist/src/spans/addSpanAnnotation.js +14 -25
- package/dist/src/spans/addSpanAnnotation.js.map +1 -1
- package/dist/src/spans/getSpanAnnotations.js +29 -40
- package/dist/src/spans/getSpanAnnotations.js.map +1 -1
- package/dist/src/spans/getSpans.js +29 -40
- package/dist/src/spans/getSpans.js.map +1 -1
- package/dist/src/spans/logSpanAnnotations.js +14 -25
- package/dist/src/spans/logSpanAnnotations.js.map +1 -1
- package/dist/src/utils/getPromptBySelector.js +37 -48
- package/dist/src/utils/getPromptBySelector.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/src/experiments/instrumention.ts +7 -5
- package/src/experiments/runExperiment.ts +23 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arizeai/phoenix-client",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.4",
|
|
4
4
|
"description": "A client for the Phoenix API",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -57,10 +57,11 @@
|
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"@arizeai/openinference-semantic-conventions": "^1.1.0",
|
|
60
|
+
"@arizeai/openinference-vercel": "^2.3.1",
|
|
60
61
|
"@opentelemetry/api": "^1.9.0",
|
|
61
62
|
"@opentelemetry/core": "^1.25.1",
|
|
62
|
-
"@opentelemetry/instrumentation": "^0.57.2",
|
|
63
63
|
"@opentelemetry/exporter-trace-otlp-proto": "^0.57.2",
|
|
64
|
+
"@opentelemetry/instrumentation": "^0.57.2",
|
|
64
65
|
"@opentelemetry/resources": "^2.0.0",
|
|
65
66
|
"@opentelemetry/sdk-trace-base": "^1.30.1",
|
|
66
67
|
"@opentelemetry/sdk-trace-node": "^1.30.1",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { diag, DiagConsoleLogger, DiagLogLevel } from "@opentelemetry/api";
|
|
2
2
|
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";
|
|
3
3
|
import { resourceFromAttributes } from "@opentelemetry/resources";
|
|
4
|
-
import { SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
|
|
5
4
|
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
|
|
6
5
|
import { SEMRESATTRS_PROJECT_NAME } from "@arizeai/openinference-semantic-conventions";
|
|
7
6
|
import { HeadersOptions } from "openapi-fetch";
|
|
7
|
+
import { OpenInferenceSimpleSpanProcessor } from "@arizeai/openinference-vercel";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Creates a provider that exports traces to Phoenix.
|
|
@@ -28,14 +28,16 @@ export function createProvider({
|
|
|
28
28
|
[SEMRESATTRS_PROJECT_NAME]: projectName,
|
|
29
29
|
}),
|
|
30
30
|
spanProcessors: [
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
// We opt to use the OpenInferenceSimpleSpanProcessor instead of the SimpleSpanProcessor
|
|
32
|
+
// Since so many AI applications use the AI SDK
|
|
33
|
+
new OpenInferenceSimpleSpanProcessor({
|
|
34
|
+
exporter: new OTLPTraceExporter({
|
|
33
35
|
url: `${baseUrl}/v1/traces`,
|
|
34
36
|
headers: Array.isArray(headers)
|
|
35
37
|
? Object.fromEntries(headers)
|
|
36
38
|
: headers,
|
|
37
|
-
})
|
|
38
|
-
),
|
|
39
|
+
}),
|
|
40
|
+
}),
|
|
39
41
|
],
|
|
40
42
|
});
|
|
41
43
|
|
|
@@ -87,6 +87,13 @@ export type RunExperimentParams = ClientFn & {
|
|
|
87
87
|
* @default false
|
|
88
88
|
*/
|
|
89
89
|
dryRun?: number | boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Whether to set the global tracer provider when running the task.
|
|
92
|
+
* If set to false, a locally scoped tracer will be created but will not get registered.
|
|
93
|
+
* This may cause certain spans to not be picked up by Phoenix. Notably libraries like the AI SDK that leverage the global tracer.
|
|
94
|
+
* @default true
|
|
95
|
+
*/
|
|
96
|
+
setGlobalTracerProvider?: boolean;
|
|
90
97
|
};
|
|
91
98
|
|
|
92
99
|
/**
|
|
@@ -133,6 +140,7 @@ export async function runExperiment({
|
|
|
133
140
|
record = true,
|
|
134
141
|
concurrency = 5,
|
|
135
142
|
dryRun = false,
|
|
143
|
+
setGlobalTracerProvider = true,
|
|
136
144
|
}: RunExperimentParams): Promise<RanExperiment> {
|
|
137
145
|
let provider: NodeTracerProvider | undefined;
|
|
138
146
|
const isDryRun = typeof dryRun === "number" || dryRun === true;
|
|
@@ -194,6 +202,10 @@ export async function runExperiment({
|
|
|
194
202
|
baseUrl,
|
|
195
203
|
headers: client.config.headers ?? {},
|
|
196
204
|
});
|
|
205
|
+
// Register the provider
|
|
206
|
+
if (setGlobalTracerProvider) {
|
|
207
|
+
provider.register();
|
|
208
|
+
}
|
|
197
209
|
taskTracer = provider.getTracer(projectName);
|
|
198
210
|
}
|
|
199
211
|
if (!record) {
|
|
@@ -263,6 +275,7 @@ export async function runExperiment({
|
|
|
263
275
|
logger,
|
|
264
276
|
concurrency,
|
|
265
277
|
dryRun,
|
|
278
|
+
setGlobalTracerProvider,
|
|
266
279
|
});
|
|
267
280
|
ranExperiment.evaluationRuns = evaluationRuns;
|
|
268
281
|
|
|
@@ -407,6 +420,7 @@ export async function evaluateExperiment({
|
|
|
407
420
|
logger = console,
|
|
408
421
|
concurrency = 5,
|
|
409
422
|
dryRun = false,
|
|
423
|
+
setGlobalTracerProvider = true,
|
|
410
424
|
}: {
|
|
411
425
|
/**
|
|
412
426
|
* The experiment to evaluate
|
|
@@ -426,6 +440,11 @@ export async function evaluateExperiment({
|
|
|
426
440
|
* @default false
|
|
427
441
|
* */
|
|
428
442
|
dryRun?: boolean | number;
|
|
443
|
+
/**
|
|
444
|
+
* Whether to set the global tracer provider when running the evaluators
|
|
445
|
+
* @default true
|
|
446
|
+
*/
|
|
447
|
+
setGlobalTracerProvider?: boolean;
|
|
429
448
|
}): Promise<RanExperiment> {
|
|
430
449
|
const isDryRun = typeof dryRun === "number" || dryRun === true;
|
|
431
450
|
const client = _client ?? createClient();
|
|
@@ -441,6 +460,9 @@ export async function evaluateExperiment({
|
|
|
441
460
|
baseUrl,
|
|
442
461
|
headers: client.config.headers ?? {},
|
|
443
462
|
});
|
|
463
|
+
if (setGlobalTracerProvider) {
|
|
464
|
+
provider.register();
|
|
465
|
+
}
|
|
444
466
|
} else {
|
|
445
467
|
provider = createNoOpProvider();
|
|
446
468
|
}
|
|
@@ -449,7 +471,7 @@ export async function evaluateExperiment({
|
|
|
449
471
|
: provider.getTracer("evaluators");
|
|
450
472
|
const nRuns =
|
|
451
473
|
typeof dryRun === "number"
|
|
452
|
-
? Math.
|
|
474
|
+
? Math.min(dryRun, Object.keys(experiment.runs).length)
|
|
453
475
|
: Object.keys(experiment.runs).length;
|
|
454
476
|
const dataset = await getDataset({
|
|
455
477
|
dataset: { datasetId: experiment.datasetId },
|