@arizeai/phoenix-client 6.5.0 → 6.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.
- package/dist/esm/constants/serverRequirements.d.ts +1 -0
- package/dist/esm/constants/serverRequirements.d.ts.map +1 -1
- package/dist/esm/constants/serverRequirements.js +8 -0
- package/dist/esm/constants/serverRequirements.js.map +1 -1
- package/dist/esm/prompts/sdks/toAI.d.ts.map +1 -1
- package/dist/esm/prompts/sdks/toAI.js +29 -6
- package/dist/esm/prompts/sdks/toAI.js.map +1 -1
- package/dist/esm/spans/getSpans.d.ts +8 -1
- package/dist/esm/spans/getSpans.d.ts.map +1 -1
- package/dist/esm/spans/getSpans.js +14 -2
- package/dist/esm/spans/getSpans.js.map +1 -1
- package/dist/esm/spans/index.d.ts +1 -0
- package/dist/esm/spans/index.d.ts.map +1 -1
- package/dist/esm/spans/index.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/types/spans.d.ts +11 -0
- package/dist/esm/types/spans.d.ts.map +1 -0
- package/dist/esm/types/spans.js +2 -0
- package/dist/esm/types/spans.js.map +1 -0
- package/dist/src/constants/serverRequirements.d.ts +1 -0
- package/dist/src/constants/serverRequirements.d.ts.map +1 -1
- package/dist/src/constants/serverRequirements.js +9 -1
- package/dist/src/constants/serverRequirements.js.map +1 -1
- package/dist/src/prompts/sdks/toAI.d.ts.map +1 -1
- package/dist/src/prompts/sdks/toAI.js +28 -7
- package/dist/src/prompts/sdks/toAI.js.map +1 -1
- package/dist/src/spans/getSpans.d.ts +8 -1
- package/dist/src/spans/getSpans.d.ts.map +1 -1
- package/dist/src/spans/getSpans.js +13 -1
- package/dist/src/spans/getSpans.js.map +1 -1
- package/dist/src/spans/index.d.ts +1 -0
- package/dist/src/spans/index.d.ts.map +1 -1
- package/dist/src/spans/index.js.map +1 -1
- package/dist/src/types/spans.d.ts +11 -0
- package/dist/src/types/spans.d.ts.map +1 -0
- package/dist/src/types/spans.js +3 -0
- package/dist/src/types/spans.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/constants/serverRequirements.ts +9 -0
- package/src/prompts/sdks/toAI.ts +34 -8
- package/src/spans/getSpans.ts +29 -1
- package/src/spans/index.ts +1 -0
- package/src/types/spans.ts +12 -0
package/package.json
CHANGED
|
@@ -61,6 +61,14 @@ export const GET_SPANS_TRACE_IDS: ParameterRequirement = {
|
|
|
61
61
|
minServerVersion: [13, 9, 0],
|
|
62
62
|
};
|
|
63
63
|
|
|
64
|
+
export const GET_SPANS_FILTERS: ParameterRequirement = {
|
|
65
|
+
kind: "parameter",
|
|
66
|
+
parameterName: "span_kind",
|
|
67
|
+
parameterLocation: "query",
|
|
68
|
+
route: "GET /v1/projects/{id}/spans",
|
|
69
|
+
minServerVersion: [13, 15, 0],
|
|
70
|
+
};
|
|
71
|
+
|
|
64
72
|
/**
|
|
65
73
|
* Aggregate list of every known capability requirement.
|
|
66
74
|
*
|
|
@@ -74,4 +82,5 @@ export const ALL_REQUIREMENTS: readonly CapabilityRequirement[] = [
|
|
|
74
82
|
LIST_PROJECT_SESSIONS,
|
|
75
83
|
ANNOTATE_SESSIONS,
|
|
76
84
|
GET_SPANS_TRACE_IDS,
|
|
85
|
+
GET_SPANS_FILTERS,
|
|
77
86
|
] as const;
|
package/src/prompts/sdks/toAI.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type { ModelMessage, ToolChoice, ToolSet } from "ai";
|
|
2
2
|
import invariant from "tiny-invariant";
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
safelyConvertMessageToProvider,
|
|
6
|
+
safelyConvertToolChoiceToProvider,
|
|
7
|
+
safelyConvertToolDefinitionToProvider,
|
|
8
|
+
} from "../../schemas/llm/converters";
|
|
9
|
+
import { findToolDefinitionName } from "../../schemas/llm/utils";
|
|
5
10
|
import { formatPromptMessages } from "../../utils/formatPromptMessages";
|
|
6
11
|
import type { Variables, toSDKParamsBase } from "./types";
|
|
7
12
|
|
|
@@ -62,19 +67,40 @@ export const toAI = <V extends Variables>({
|
|
|
62
67
|
return vercelAIMessage;
|
|
63
68
|
});
|
|
64
69
|
|
|
65
|
-
|
|
66
|
-
if (prompt.tools?.tools && prompt.tools
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
let tools: ToolSet | undefined;
|
|
71
|
+
if (prompt.tools?.tools && prompt.tools.tools.length > 0) {
|
|
72
|
+
const toolsRecord: Record<string, unknown> = {};
|
|
73
|
+
for (const tool of prompt.tools.tools) {
|
|
74
|
+
const name = findToolDefinitionName(tool);
|
|
75
|
+
invariant(name, "Tool definition name is not valid");
|
|
76
|
+
const converted = safelyConvertToolDefinitionToProvider({
|
|
77
|
+
toolDefinition: tool,
|
|
78
|
+
targetProvider: "VERCEL_AI",
|
|
79
|
+
});
|
|
80
|
+
invariant(converted, "Tool definition is not valid");
|
|
81
|
+
toolsRecord[name] = converted;
|
|
82
|
+
}
|
|
83
|
+
tools =
|
|
84
|
+
Object.keys(toolsRecord).length > 0
|
|
85
|
+
? (toolsRecord as ToolSet)
|
|
86
|
+
: undefined;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
let toolChoice: PartialAIParams["toolChoice"];
|
|
90
|
+
if (tools && prompt.tools?.tool_choice) {
|
|
91
|
+
toolChoice =
|
|
92
|
+
safelyConvertToolChoiceToProvider({
|
|
93
|
+
toolChoice: prompt.tools.tool_choice,
|
|
94
|
+
targetProvider: "VERCEL_AI",
|
|
95
|
+
}) ?? undefined;
|
|
71
96
|
}
|
|
72
97
|
|
|
73
98
|
// combine base and computed params
|
|
74
99
|
const completionParams: PartialAIParams = {
|
|
75
100
|
...baseCompletionParams,
|
|
76
101
|
messages,
|
|
77
|
-
tools,
|
|
102
|
+
...(tools !== undefined && { tools }),
|
|
103
|
+
...(toolChoice !== undefined && { toolChoice }),
|
|
78
104
|
};
|
|
79
105
|
|
|
80
106
|
return completionParams;
|
package/src/spans/getSpans.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import type { operations } from "../__generated__/api/v1";
|
|
2
2
|
import { createClient } from "../client";
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
GET_SPANS_FILTERS,
|
|
5
|
+
GET_SPANS_TRACE_IDS,
|
|
6
|
+
} from "../constants/serverRequirements";
|
|
4
7
|
import type { ClientFn } from "../types/core";
|
|
5
8
|
import type { ProjectIdentifier } from "../types/projects";
|
|
6
9
|
import { resolveProjectIdentifier } from "../types/projects";
|
|
10
|
+
import type { SpanKindFilter, SpanStatusCode } from "../types/spans";
|
|
7
11
|
import { ensureServerCapability } from "../utils/serverVersionUtils";
|
|
8
12
|
|
|
9
13
|
/**
|
|
@@ -24,6 +28,12 @@ export interface GetSpansParams extends ClientFn {
|
|
|
24
28
|
traceIds?: string[] | null;
|
|
25
29
|
/** Filter by parent span ID. Use `null` or the string `"null"` to get root spans only. */
|
|
26
30
|
parentId?: string | null;
|
|
31
|
+
/** Filter by span name(s) */
|
|
32
|
+
name?: string | string[] | null;
|
|
33
|
+
/** Filter by span kind(s) (LLM, CHAIN, TOOL, RETRIEVER, etc.) */
|
|
34
|
+
spanKind?: SpanKindFilter | SpanKindFilter[] | null;
|
|
35
|
+
/** Filter by status code(s) (OK, ERROR, UNSET) */
|
|
36
|
+
statusCode?: SpanStatusCode | SpanStatusCode[] | null;
|
|
27
37
|
}
|
|
28
38
|
|
|
29
39
|
export type GetSpansResponse = operations["getSpans"]["responses"]["200"];
|
|
@@ -103,11 +113,17 @@ export async function getSpans({
|
|
|
103
113
|
endTime,
|
|
104
114
|
traceIds,
|
|
105
115
|
parentId,
|
|
116
|
+
name,
|
|
117
|
+
spanKind,
|
|
118
|
+
statusCode,
|
|
106
119
|
}: GetSpansParams): Promise<GetSpansResult> {
|
|
107
120
|
const client = _client ?? createClient();
|
|
108
121
|
if (traceIds) {
|
|
109
122
|
await ensureServerCapability({ client, requirement: GET_SPANS_TRACE_IDS });
|
|
110
123
|
}
|
|
124
|
+
if (name != null || spanKind != null || statusCode != null) {
|
|
125
|
+
await ensureServerCapability({ client, requirement: GET_SPANS_FILTERS });
|
|
126
|
+
}
|
|
111
127
|
const projectIdentifier = resolveProjectIdentifier(project);
|
|
112
128
|
|
|
113
129
|
const params: NonNullable<operations["getSpans"]["parameters"]["query"]> = {
|
|
@@ -135,6 +151,18 @@ export async function getSpans({
|
|
|
135
151
|
params.parent_id = parentId === null ? "null" : parentId;
|
|
136
152
|
}
|
|
137
153
|
|
|
154
|
+
if (name) {
|
|
155
|
+
params.name = Array.isArray(name) ? name : [name];
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (spanKind) {
|
|
159
|
+
params.span_kind = Array.isArray(spanKind) ? spanKind : [spanKind];
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
if (statusCode) {
|
|
163
|
+
params.status_code = Array.isArray(statusCode) ? statusCode : [statusCode];
|
|
164
|
+
}
|
|
165
|
+
|
|
138
166
|
const { data, error } = await client.GET(
|
|
139
167
|
"/v1/projects/{project_identifier}/spans",
|
|
140
168
|
{
|
package/src/spans/index.ts
CHANGED
|
@@ -4,5 +4,6 @@ export * from "./logSpanAnnotations";
|
|
|
4
4
|
export * from "./addDocumentAnnotation";
|
|
5
5
|
export * from "./logDocumentAnnotations";
|
|
6
6
|
export * from "./getSpans";
|
|
7
|
+
export type { SpanKindFilter, SpanStatusCode } from "../types/spans";
|
|
7
8
|
export * from "./getSpanAnnotations";
|
|
8
9
|
export * from "./deleteSpan";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { OpenInferenceSpanKind } from "@arizeai/openinference-semantic-conventions";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Status codes for spans.
|
|
5
|
+
*/
|
|
6
|
+
export type SpanStatusCode = "OK" | "ERROR" | "UNSET";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Span kind filter value. Accepts well-known OpenInference span kinds
|
|
10
|
+
* as well as arbitrary strings for forward-compatibility.
|
|
11
|
+
*/
|
|
12
|
+
export type SpanKindFilter = OpenInferenceSpanKind | (string & {});
|