@zhivex-ai/vertex 1.0.1 → 1.1.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/README.md +995 -10
- package/dist/anthropic.d.ts +13 -4
- package/dist/anthropic.d.ts.map +1 -1
- package/dist/anthropic.js +86 -16
- package/dist/anthropic.js.map +1 -1
- package/dist/capabilities.d.ts +2 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +12 -3
- package/dist/capabilities.js.map +1 -1
- package/dist/chat-profiles.d.ts +8 -0
- package/dist/chat-profiles.d.ts.map +1 -0
- package/dist/chat-profiles.js +61 -0
- package/dist/chat-profiles.js.map +1 -0
- package/dist/chat.d.ts +10 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +120 -0
- package/dist/chat.js.map +1 -0
- package/dist/embeddings.d.ts +71 -0
- package/dist/embeddings.d.ts.map +1 -0
- package/dist/embeddings.js +166 -0
- package/dist/embeddings.js.map +1 -0
- package/dist/endpoints.d.ts +76 -0
- package/dist/endpoints.d.ts.map +1 -0
- package/dist/endpoints.js +152 -0
- package/dist/endpoints.js.map +1 -0
- package/dist/grpc.d.ts +33 -0
- package/dist/grpc.d.ts.map +1 -0
- package/dist/grpc.js +161 -0
- package/dist/grpc.js.map +1 -0
- package/dist/index.d.ts +41 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +654 -293
- package/dist/index.js.map +1 -1
- package/dist/inline-thinking.d.ts +3 -0
- package/dist/inline-thinking.d.ts.map +1 -0
- package/dist/inline-thinking.js +106 -0
- package/dist/inline-thinking.js.map +1 -0
- package/dist/interactions.d.ts +21 -0
- package/dist/interactions.d.ts.map +1 -0
- package/dist/interactions.js +240 -0
- package/dist/interactions.js.map +1 -0
- package/dist/multimodal-embeddings.d.ts +53 -0
- package/dist/multimodal-embeddings.d.ts.map +1 -0
- package/dist/multimodal-embeddings.js +135 -0
- package/dist/multimodal-embeddings.js.map +1 -0
- package/dist/responses.d.ts +3 -0
- package/dist/responses.d.ts.map +1 -0
- package/dist/responses.js +120 -0
- package/dist/responses.js.map +1 -0
- package/dist/specialized.d.ts +14 -0
- package/dist/specialized.d.ts.map +1 -0
- package/dist/specialized.js +117 -0
- package/dist/specialized.js.map +1 -0
- package/dist/tensors.d.ts +22 -0
- package/dist/tensors.d.ts.map +1 -0
- package/dist/tensors.js +49 -0
- package/dist/tensors.js.map +1 -0
- package/dist/token-counting.d.ts +37 -0
- package/dist/token-counting.d.ts.map +1 -0
- package/dist/token-counting.js +33 -0
- package/dist/token-counting.js.map +1 -0
- package/dist/transcription.d.ts +60 -0
- package/dist/transcription.d.ts.map +1 -0
- package/dist/transcription.js +88 -0
- package/dist/transcription.js.map +1 -0
- package/dist/virtual-try-on.d.ts +23 -0
- package/dist/virtual-try-on.d.ts.map +1 -0
- package/dist/virtual-try-on.js +80 -0
- package/dist/virtual-try-on.js.map +1 -0
- package/package.json +5 -3
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { ConfigurationError, ProviderHTTPError, UnsupportedFeatureError, encodeMediaFrame, readErrorBodyWithLimit, readJsonWithLimit, withRetry, withTimeoutSignal } from "@zhivex-ai/core/provider";
|
|
2
|
+
const embeddingCapabilities = {
|
|
3
|
+
streaming: false, tools: false, structuredOutput: false, jsonMode: false,
|
|
4
|
+
toolChoice: false, parallelToolCalls: false, vision: false, files: false,
|
|
5
|
+
audioInput: false, audioOutput: false, embeddings: true, reasoning: false, webSearch: false
|
|
6
|
+
};
|
|
7
|
+
/** OpenMaaS embeddings use the OpenAI-compatible endpoint, not Google predict. */
|
|
8
|
+
export class VertexOpenEmbeddingModel {
|
|
9
|
+
modelId;
|
|
10
|
+
baseURL;
|
|
11
|
+
fetcher;
|
|
12
|
+
provider = "vertex";
|
|
13
|
+
capabilities = { ...embeddingCapabilities };
|
|
14
|
+
constructor(modelId, baseURL, fetcher) {
|
|
15
|
+
this.modelId = modelId;
|
|
16
|
+
this.baseURL = baseURL;
|
|
17
|
+
this.fetcher = fetcher;
|
|
18
|
+
}
|
|
19
|
+
async embed(input) {
|
|
20
|
+
if (Object.keys(input.providerOptions ?? {}).length)
|
|
21
|
+
throw new UnsupportedFeatureError("Vertex E5 embeddings do not expose Google embedding controls or configurable dimensions.");
|
|
22
|
+
if (input.values.some((value) => typeof value !== "string"))
|
|
23
|
+
throw new UnsupportedFeatureError("Vertex E5 embeddings require text values.");
|
|
24
|
+
if (!input.values.length)
|
|
25
|
+
return { embeddings: [], rawResponse: [] };
|
|
26
|
+
const { signal, cleanup } = withTimeoutSignal(input);
|
|
27
|
+
try {
|
|
28
|
+
const response = await withRetry(async () => {
|
|
29
|
+
const result = await this.fetcher(`${this.baseURL}/endpoints/openapi/embeddings`, {
|
|
30
|
+
method: "POST", headers: { "content-type": "application/json" }, redirect: "error", signal,
|
|
31
|
+
body: JSON.stringify({ model: this.modelId, input: input.values, encoding_format: "float" })
|
|
32
|
+
});
|
|
33
|
+
if (!result.ok)
|
|
34
|
+
throw new ProviderHTTPError(`Vertex E5 embeddings failed with status ${result.status}.`, result.status, { responseBody: await readErrorBodyWithLimit(result) });
|
|
35
|
+
return result;
|
|
36
|
+
}, { ...input, abortSignal: signal });
|
|
37
|
+
const json = await readJsonWithLimit(response, { maxBytes: 128 * 1024 * 1024 });
|
|
38
|
+
if (!Array.isArray(json.data) || json.data.length !== input.values.length)
|
|
39
|
+
throw new ConfigurationError("Vertex E5 returned a different number of embedding vectors than input values.");
|
|
40
|
+
const indexed = new Map();
|
|
41
|
+
let dimensions;
|
|
42
|
+
for (const item of json.data) {
|
|
43
|
+
if (!item || !Number.isInteger(item.index) || item.index < 0 || item.index >= input.values.length || indexed.has(item.index))
|
|
44
|
+
throw new ConfigurationError("Vertex E5 returned invalid or duplicate embedding indices.");
|
|
45
|
+
const embedding = vector(item.embedding, dimensions);
|
|
46
|
+
dimensions ??= embedding.length;
|
|
47
|
+
indexed.set(item.index, embedding);
|
|
48
|
+
}
|
|
49
|
+
const tokens = json.usage?.prompt_tokens;
|
|
50
|
+
if (tokens !== undefined && (!Number.isSafeInteger(tokens) || tokens < 0))
|
|
51
|
+
throw new ConfigurationError("Vertex E5 returned invalid token usage.");
|
|
52
|
+
return { embeddings: input.values.map((_, index) => indexed.get(index)), rawResponse: json,
|
|
53
|
+
...(tokens !== undefined ? { usage: { inputTokens: tokens } } : {}) };
|
|
54
|
+
}
|
|
55
|
+
finally {
|
|
56
|
+
cleanup();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const tasks = new Set(["RETRIEVAL_QUERY", "RETRIEVAL_DOCUMENT", "SEMANTIC_SIMILARITY", "CLASSIFICATION", "CLUSTERING", "QUESTION_ANSWERING", "FACT_VERIFICATION", "CODE_RETRIEVAL_QUERY"]);
|
|
61
|
+
const fields = new Set(["outputDimensionality", "autoTruncate", "taskType", "title", "documentOcr", "audioTrackExtraction"]);
|
|
62
|
+
const vector = (value, dimensions) => {
|
|
63
|
+
if (!Array.isArray(value) || !value.length || !value.every((n) => typeof n === "number" && Number.isFinite(n)))
|
|
64
|
+
throw new ConfigurationError("Vertex returned an invalid embedding vector.");
|
|
65
|
+
if (dimensions !== undefined && value.length !== dimensions)
|
|
66
|
+
throw new ConfigurationError("Vertex returned inconsistent embedding dimensions.");
|
|
67
|
+
return value;
|
|
68
|
+
};
|
|
69
|
+
export class VertexEmbeddingModel {
|
|
70
|
+
modelId;
|
|
71
|
+
baseURL;
|
|
72
|
+
fetcher;
|
|
73
|
+
provider = "vertex";
|
|
74
|
+
capabilities;
|
|
75
|
+
constructor(modelId, baseURL, fetcher) {
|
|
76
|
+
this.modelId = modelId;
|
|
77
|
+
this.baseURL = baseURL;
|
|
78
|
+
this.fetcher = fetcher;
|
|
79
|
+
const multimodal = /^gemini-embedding-2(?:-|$)/.test(modelId);
|
|
80
|
+
this.capabilities = { ...embeddingCapabilities, vision: multimodal, files: multimodal, audioInput: multimodal };
|
|
81
|
+
}
|
|
82
|
+
async embed(input) {
|
|
83
|
+
const config = { ...(input.providerOptions ?? {}) };
|
|
84
|
+
for (const key of Object.keys(config))
|
|
85
|
+
if (!fields.has(key))
|
|
86
|
+
throw new UnsupportedFeatureError(`Vertex embeddings do not expose providerOptions.${key}.`);
|
|
87
|
+
if (config.outputDimensionality !== undefined && (!Number.isInteger(config.outputDimensionality) || config.outputDimensionality <= 0))
|
|
88
|
+
throw new ConfigurationError("Embedding outputDimensionality must be a positive integer.");
|
|
89
|
+
for (const key of ["autoTruncate", "documentOcr", "audioTrackExtraction"])
|
|
90
|
+
if (config[key] !== undefined && typeof config[key] !== "boolean")
|
|
91
|
+
throw new ConfigurationError(`Embedding ${key} must be a boolean.`);
|
|
92
|
+
if (config.taskType !== undefined && !tasks.has(config.taskType))
|
|
93
|
+
throw new ConfigurationError("Invalid Vertex embedding taskType.");
|
|
94
|
+
if (config.title !== undefined && (typeof config.title !== "string" || config.taskType !== "RETRIEVAL_DOCUMENT"))
|
|
95
|
+
throw new ConfigurationError("Embedding title requires taskType RETRIEVAL_DOCUMENT.");
|
|
96
|
+
const multimodal = /^gemini-embedding-2(?:-|$)/.test(this.modelId);
|
|
97
|
+
if (multimodal && (config.taskType !== undefined || config.title !== undefined || config.autoTruncate !== undefined))
|
|
98
|
+
throw new UnsupportedFeatureError("Gemini Embedding 2 does not expose text-only taskType, title or autoTruncate controls.");
|
|
99
|
+
if (!multimodal && (config.documentOcr !== undefined || config.audioTrackExtraction !== undefined))
|
|
100
|
+
throw new UnsupportedFeatureError("OCR and audio track extraction require Gemini Embedding 2.");
|
|
101
|
+
const values = input.values.map((value) => {
|
|
102
|
+
if (typeof value === "string")
|
|
103
|
+
return multimodal ? { text: value } : { content: value,
|
|
104
|
+
...(config.taskType ? { task_type: config.taskType } : {}), ...(config.title !== undefined ? { title: config.title } : {}) };
|
|
105
|
+
if (!multimodal)
|
|
106
|
+
throw new UnsupportedFeatureError(`Vertex model "${this.modelId}" only supports text embedding values; use gemini-embedding-2 for media.`);
|
|
107
|
+
if (!value || !value.mediaType || (value.uri === undefined && value.data === undefined) || (value.uri !== undefined && value.data !== undefined))
|
|
108
|
+
throw new ConfigurationError("Embedding media requires mediaType and exactly one of data or uri.");
|
|
109
|
+
if (value.uri !== undefined && !/^(?:gs|https):\/\//.test(value.uri))
|
|
110
|
+
throw new ConfigurationError("Embedding media URI must use gs:// or https://.");
|
|
111
|
+
const part = value.uri ? { fileData: { fileUri: value.uri, mimeType: value.mediaType } }
|
|
112
|
+
: { inlineData: { mimeType: value.mediaType, data: encodeMediaFrame({ data: value.data, mediaType: value.mediaType }) } };
|
|
113
|
+
return { ...part, ...(value.providerMetadata?.videoMetadata ? { videoMetadata: value.providerMetadata.videoMetadata } : {}) };
|
|
114
|
+
});
|
|
115
|
+
if (!values.length)
|
|
116
|
+
return { embeddings: [], rawResponse: [] };
|
|
117
|
+
const { signal, cleanup } = withTimeoutSignal(input);
|
|
118
|
+
const raw = [];
|
|
119
|
+
const embeddings = [];
|
|
120
|
+
let dimensions = config.outputDimensionality;
|
|
121
|
+
try {
|
|
122
|
+
// Gemini embedding-001 accepts only one text per predict request.
|
|
123
|
+
const batchSize = multimodal || /^gemini-embedding-001(?:-|$)/.test(this.modelId) ? 1 : 5;
|
|
124
|
+
for (let offset = 0; offset < values.length; offset += batchSize) {
|
|
125
|
+
const chunk = values.slice(offset, offset + batchSize);
|
|
126
|
+
const parameters = { ...(config.outputDimensionality !== undefined ? { outputDimensionality: config.outputDimensionality } : {}), ...(config.autoTruncate !== undefined ? { autoTruncate: config.autoTruncate } : {}) };
|
|
127
|
+
const body = multimodal ? { content: { parts: chunk }, ...(Object.keys(config).length ? { embedContentConfig: config } : {}) }
|
|
128
|
+
: { instances: chunk, ...(Object.keys(parameters).length ? { parameters } : {}) };
|
|
129
|
+
const response = await withRetry(async () => {
|
|
130
|
+
const result = await this.fetcher(`${this.baseURL}/publishers/google/models/${encodeURIComponent(this.modelId)}:${multimodal ? "embedContent" : "predict"}`, {
|
|
131
|
+
method: "POST", headers: { "content-type": "application/json" }, redirect: "error", signal, body: JSON.stringify(body)
|
|
132
|
+
});
|
|
133
|
+
if (!result.ok)
|
|
134
|
+
throw new ProviderHTTPError(`Vertex embeddings failed with status ${result.status}.`, result.status, { responseBody: await readErrorBodyWithLimit(result) });
|
|
135
|
+
return result;
|
|
136
|
+
}, { ...input, abortSignal: signal });
|
|
137
|
+
const json = await readJsonWithLimit(response, { maxBytes: 128 * 1024 * 1024 });
|
|
138
|
+
const readVector = (value) => {
|
|
139
|
+
const embedding = vector(value, dimensions);
|
|
140
|
+
dimensions ??= embedding.length;
|
|
141
|
+
return embedding;
|
|
142
|
+
};
|
|
143
|
+
const vectors = multimodal ? [readVector(json.embedding?.values)] : (json.predictions ?? []).map((prediction) => readVector(prediction.embeddings?.values));
|
|
144
|
+
if (vectors.length !== chunk.length)
|
|
145
|
+
throw new ConfigurationError("Vertex returned a different number of embedding vectors than input values.");
|
|
146
|
+
embeddings.push(...vectors);
|
|
147
|
+
raw.push(json);
|
|
148
|
+
}
|
|
149
|
+
const tokenCounts = raw.flatMap((json) => json.usageMetadata?.promptTokenCount !== undefined ? [json.usageMetadata.promptTokenCount]
|
|
150
|
+
: (json.predictions ?? []).flatMap((p) => p.embeddings?.statistics?.token_count === undefined ? [] : [p.embeddings.statistics.token_count]));
|
|
151
|
+
let inputTokens = 0;
|
|
152
|
+
for (const count of tokenCounts) {
|
|
153
|
+
if (!Number.isSafeInteger(count) || count < 0 || !Number.isSafeInteger(inputTokens + count)) {
|
|
154
|
+
throw new ConfigurationError("Vertex returned invalid embedding token usage.");
|
|
155
|
+
}
|
|
156
|
+
inputTokens += count;
|
|
157
|
+
}
|
|
158
|
+
return { embeddings, rawResponse: raw.length === 1 ? raw[0] : raw,
|
|
159
|
+
...(tokenCounts.length ? { usage: { inputTokens } } : {}) };
|
|
160
|
+
}
|
|
161
|
+
finally {
|
|
162
|
+
cleanup();
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=embeddings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../src/embeddings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type RetryOptions, type JsonValue } from "@zhivex-ai/core/provider";
|
|
2
|
+
import { type VertexTensor } from "./tensors.js";
|
|
3
|
+
/** Arbitrary HTTP payload for a deployed Vertex endpoint, not a publisher model. */
|
|
4
|
+
export interface VertexEndpointRawPredictInput extends RetryOptions {
|
|
5
|
+
endpoint: string;
|
|
6
|
+
body: string | Uint8Array;
|
|
7
|
+
contentType: string;
|
|
8
|
+
/** Defaults to 16 MiB; applied before and during response consumption. */
|
|
9
|
+
maxResponseBytes?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface VertexEndpointRawPredictResult {
|
|
12
|
+
body: Uint8Array;
|
|
13
|
+
contentType?: string;
|
|
14
|
+
status: number;
|
|
15
|
+
endpointId?: string;
|
|
16
|
+
deployedModelId?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface VertexEndpointsClient {
|
|
19
|
+
rawPredict(input: VertexEndpointRawPredictInput): Promise<VertexEndpointRawPredictResult>;
|
|
20
|
+
streamRawPredict(input: VertexEndpointRawPredictInput): AsyncIterable<VertexEndpointStreamEvent>;
|
|
21
|
+
directRawPredict(input: VertexEndpointDirectRawPredictInput): Promise<VertexEndpointDirectRawPredictResult>;
|
|
22
|
+
explain(input: VertexEndpointExplainInput): Promise<VertexEndpointExplainResult>;
|
|
23
|
+
directPredict(input: VertexEndpointDirectPredictInput): Promise<VertexEndpointDirectPredictResult>;
|
|
24
|
+
}
|
|
25
|
+
export interface VertexEndpointDirectPredictInput extends RetryOptions {
|
|
26
|
+
endpoint: string;
|
|
27
|
+
inputs: VertexTensor[];
|
|
28
|
+
parameters?: VertexTensor;
|
|
29
|
+
maxResponseBytes?: number;
|
|
30
|
+
}
|
|
31
|
+
export interface VertexEndpointDirectPredictResult {
|
|
32
|
+
outputs: VertexTensor[];
|
|
33
|
+
parameters?: VertexTensor;
|
|
34
|
+
}
|
|
35
|
+
export interface VertexEndpointExplainInput extends RetryOptions {
|
|
36
|
+
endpoint: string;
|
|
37
|
+
instances: JsonValue[];
|
|
38
|
+
parameters?: JsonValue;
|
|
39
|
+
deployedModelId?: string;
|
|
40
|
+
explanationSpecOverride?: {
|
|
41
|
+
parameters?: Record<string, JsonValue>;
|
|
42
|
+
metadata?: Record<string, JsonValue>;
|
|
43
|
+
examplesOverride?: Record<string, JsonValue>;
|
|
44
|
+
};
|
|
45
|
+
/** Maximum response JSON size; defaults to 16 MiB. */
|
|
46
|
+
maxResponseBytes?: number;
|
|
47
|
+
}
|
|
48
|
+
export interface VertexEndpointExplainResult {
|
|
49
|
+
/** Native attribution or example-based explanations, in instance order. */
|
|
50
|
+
explanations: Record<string, JsonValue>[];
|
|
51
|
+
predictions: JsonValue[];
|
|
52
|
+
deployedModelId?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface VertexEndpointDirectRawPredictInput extends RetryOptions {
|
|
55
|
+
endpoint: string;
|
|
56
|
+
/** Fully qualified gRPC method, e.g. /tensorflow.serving.PredictionService/Predict. */
|
|
57
|
+
methodName: string;
|
|
58
|
+
/** Serialized request message for the container's gRPC method. */
|
|
59
|
+
input: Uint8Array;
|
|
60
|
+
/** Maximum decoded output size; defaults to 16 MiB. */
|
|
61
|
+
maxResponseBytes?: number;
|
|
62
|
+
}
|
|
63
|
+
export interface VertexEndpointDirectRawPredictResult {
|
|
64
|
+
output: Uint8Array;
|
|
65
|
+
status: number;
|
|
66
|
+
}
|
|
67
|
+
type EndpointAction = "rawPredict" | "streamRawPredict" | "directRawPredict" | "explain" | "directPredict";
|
|
68
|
+
export type VertexEndpointStreamEvent = ({
|
|
69
|
+
type: "response";
|
|
70
|
+
} & Omit<VertexEndpointRawPredictResult, "body">) | {
|
|
71
|
+
type: "chunk";
|
|
72
|
+
data: Uint8Array;
|
|
73
|
+
};
|
|
74
|
+
export declare const createVertexEndpointsClient: (fetcher: typeof globalThis.fetch, resolveURL: (endpoint: string, action: EndpointAction) => string, assertAccess: () => void, parseError: (response: Response) => Promise<unknown>) => VertexEndpointsClient;
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=endpoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { ConfigurationError, ProviderResponseTooLargeError, decodeBase64WithLimit, encodeMediaFrame, readBodyWithLimit, readJsonWithLimit, withRetry, withTimeoutSignal } from "@zhivex-ai/core/provider";
|
|
2
|
+
import { assertVertexTensor } from "./tensors.js";
|
|
3
|
+
const responseMetadata = (response) => ({
|
|
4
|
+
status: response.status,
|
|
5
|
+
...(response.headers.has("content-type") ? { contentType: response.headers.get("content-type") } : {}),
|
|
6
|
+
...(response.headers.has("x-vertex-ai-endpoint-id") ? { endpointId: response.headers.get("x-vertex-ai-endpoint-id") } : {}),
|
|
7
|
+
...(response.headers.has("x-vertex-ai-deployed-model-id") ? { deployedModelId: response.headers.get("x-vertex-ai-deployed-model-id") } : {})
|
|
8
|
+
});
|
|
9
|
+
export const createVertexEndpointsClient = (fetcher, resolveURL, assertAccess, parseError) => {
|
|
10
|
+
const prepare = (input, action) => {
|
|
11
|
+
assertAccess();
|
|
12
|
+
const url = resolveURL(input.endpoint, action);
|
|
13
|
+
if (typeof input.body !== "string" && !(input.body instanceof Uint8Array))
|
|
14
|
+
throw new ConfigurationError("Vertex endpoint body must be text or Uint8Array.");
|
|
15
|
+
if (typeof input.contentType !== "string" || !input.contentType.trim() || /[\r\n]/.test(input.contentType))
|
|
16
|
+
throw new ConfigurationError("Vertex endpoint contentType must be a nonempty HTTP content type.");
|
|
17
|
+
const headers = new Headers({ "content-type": input.contentType });
|
|
18
|
+
const maxBytes = input.maxResponseBytes ?? 16 * 1024 * 1024;
|
|
19
|
+
if (!Number.isSafeInteger(maxBytes) || maxBytes <= 0)
|
|
20
|
+
throw new ConfigurationError("Vertex endpoint maxResponseBytes must be a positive safe integer.");
|
|
21
|
+
// Copy caller-owned bytes once so retries send the same payload.
|
|
22
|
+
const body = typeof input.body === "string" ? input.body : new Uint8Array(input.body).buffer;
|
|
23
|
+
return { url, headers, body, maxBytes };
|
|
24
|
+
};
|
|
25
|
+
const request = (input, prepared, signal) => withRetry(async () => {
|
|
26
|
+
const response = await fetcher(prepared.url, { method: "POST", redirect: "error", headers: prepared.headers, body: prepared.body, signal });
|
|
27
|
+
if (!response.ok)
|
|
28
|
+
await parseError(response);
|
|
29
|
+
return response;
|
|
30
|
+
}, { ...input, abortSignal: signal });
|
|
31
|
+
return {
|
|
32
|
+
async directPredict(input) {
|
|
33
|
+
if (!Array.isArray(input.inputs))
|
|
34
|
+
throw new ConfigurationError("Vertex directPredict inputs must be a tensor array.");
|
|
35
|
+
input.inputs.forEach(value => assertVertexTensor(value));
|
|
36
|
+
if (input.parameters !== undefined)
|
|
37
|
+
assertVertexTensor(input.parameters);
|
|
38
|
+
const prepared = prepare({ ...input, body: JSON.stringify({ inputs: input.inputs, ...(input.parameters !== undefined ? { parameters: input.parameters } : {}) }), contentType: "application/json" }, "directPredict");
|
|
39
|
+
const { signal, cleanup } = withTimeoutSignal(input);
|
|
40
|
+
try {
|
|
41
|
+
const response = await request(input, prepared, signal);
|
|
42
|
+
const json = await readJsonWithLimit(response, { maxBytes: prepared.maxBytes, provider: "vertex", endpoint: "endpoints.directPredict" });
|
|
43
|
+
if (!json || typeof json !== "object" || Array.isArray(json) || (json.outputs !== undefined && !Array.isArray(json.outputs)))
|
|
44
|
+
throw new ConfigurationError("Vertex directPredict returned an invalid response.");
|
|
45
|
+
const outputs = json.outputs ?? [];
|
|
46
|
+
outputs.forEach(value => assertVertexTensor(value));
|
|
47
|
+
if (json.parameters !== undefined)
|
|
48
|
+
assertVertexTensor(json.parameters);
|
|
49
|
+
return { outputs, ...(json.parameters !== undefined ? { parameters: json.parameters } : {}) };
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
cleanup();
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
async explain(input) {
|
|
56
|
+
if (!Array.isArray(input.instances) || !input.instances.length)
|
|
57
|
+
throw new ConfigurationError("Vertex explain requires a nonempty instances array.");
|
|
58
|
+
const instanceCount = input.instances.length;
|
|
59
|
+
if (input.deployedModelId !== undefined && (typeof input.deployedModelId !== "string" || !input.deployedModelId.trim()))
|
|
60
|
+
throw new ConfigurationError("Vertex explain deployedModelId must be a nonempty string.");
|
|
61
|
+
if (input.explanationSpecOverride !== undefined && (!input.explanationSpecOverride || typeof input.explanationSpecOverride !== "object" || Array.isArray(input.explanationSpecOverride)))
|
|
62
|
+
throw new ConfigurationError("Vertex explain explanationSpecOverride must be an object.");
|
|
63
|
+
const prepared = prepare({ ...input, contentType: "application/json", body: JSON.stringify({
|
|
64
|
+
instances: input.instances,
|
|
65
|
+
...(input.parameters !== undefined ? { parameters: input.parameters } : {}),
|
|
66
|
+
...(input.deployedModelId !== undefined ? { deployedModelId: input.deployedModelId } : {}),
|
|
67
|
+
...(input.explanationSpecOverride !== undefined ? { explanationSpecOverride: input.explanationSpecOverride } : {})
|
|
68
|
+
}) }, "explain");
|
|
69
|
+
const { signal, cleanup } = withTimeoutSignal(input);
|
|
70
|
+
try {
|
|
71
|
+
const response = await request(input, prepared, signal);
|
|
72
|
+
const json = await readJsonWithLimit(response, { maxBytes: prepared.maxBytes, provider: "vertex", endpoint: "endpoints.explain" });
|
|
73
|
+
if (!json || !Array.isArray(json.explanations) || json.explanations.length !== instanceCount || json.explanations.some(value => !value || typeof value !== "object" || Array.isArray(value)) || !Array.isArray(json.predictions) || (json.deployedModelId !== undefined && typeof json.deployedModelId !== "string"))
|
|
74
|
+
throw new ConfigurationError("Vertex explain returned an invalid response or explanation count.");
|
|
75
|
+
return { explanations: json.explanations, predictions: json.predictions, ...(json.deployedModelId !== undefined ? { deployedModelId: json.deployedModelId } : {}) };
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
cleanup();
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
async directRawPredict(input) {
|
|
82
|
+
if (typeof input.methodName !== "string" || !/^\/[^/\s?#]+\/[^/\s?#]+\/?$/.test(input.methodName))
|
|
83
|
+
throw new ConfigurationError("Vertex directRawPredict methodName must use /namespace.Service/Method.");
|
|
84
|
+
if (!(input.input instanceof Uint8Array))
|
|
85
|
+
throw new ConfigurationError("Vertex directRawPredict input must be Uint8Array.");
|
|
86
|
+
const prepared = prepare({ ...input, body: JSON.stringify({ methodName: input.methodName, input: encodeMediaFrame({ data: input.input, mediaType: "application/octet-stream" }) }), contentType: "application/json" }, "directRawPredict");
|
|
87
|
+
const jsonLimit = Math.ceil(prepared.maxBytes / 3) * 4 + 64 * 1024;
|
|
88
|
+
if (!Number.isSafeInteger(jsonLimit))
|
|
89
|
+
throw new ConfigurationError("Vertex directRawPredict response limit is too large.");
|
|
90
|
+
const { signal, cleanup } = withTimeoutSignal(input);
|
|
91
|
+
try {
|
|
92
|
+
const response = await request(input, prepared, signal);
|
|
93
|
+
const json = await readJsonWithLimit(response, { maxBytes: jsonLimit, provider: "vertex", endpoint: "endpoints.directRawPredict" });
|
|
94
|
+
if (!json || Array.isArray(json) || typeof json !== "object" || (json.output !== undefined && typeof json.output !== "string"))
|
|
95
|
+
throw new ConfigurationError("Vertex directRawPredict returned an invalid output envelope.");
|
|
96
|
+
// ProtoJSON can omit a bytes field containing its empty default value.
|
|
97
|
+
return { output: json.output ? decodeBase64WithLimit(json.output, { maxBytes: prepared.maxBytes, provider: "vertex", endpoint: "endpoints.directRawPredict" }) : new Uint8Array(), status: response.status };
|
|
98
|
+
}
|
|
99
|
+
finally {
|
|
100
|
+
cleanup();
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
async rawPredict(input) {
|
|
104
|
+
const prepared = prepare(input, "rawPredict");
|
|
105
|
+
const { signal, cleanup } = withTimeoutSignal(input);
|
|
106
|
+
try {
|
|
107
|
+
const response = await request(input, prepared, signal);
|
|
108
|
+
const bytes = await readBodyWithLimit(response, { maxBytes: prepared.maxBytes, provider: "vertex", endpoint: "endpoints.rawPredict" });
|
|
109
|
+
return { body: bytes, ...responseMetadata(response) };
|
|
110
|
+
}
|
|
111
|
+
finally {
|
|
112
|
+
cleanup();
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
async *streamRawPredict(input) {
|
|
116
|
+
const prepared = prepare(input, "streamRawPredict");
|
|
117
|
+
const { signal, cleanup } = withTimeoutSignal(input);
|
|
118
|
+
let reader;
|
|
119
|
+
const cancel = () => { void reader?.cancel(signal?.reason).catch(() => { }); };
|
|
120
|
+
try {
|
|
121
|
+
const response = await request(input, prepared, signal);
|
|
122
|
+
reader = response.body?.getReader();
|
|
123
|
+
signal?.addEventListener("abort", cancel, { once: true });
|
|
124
|
+
signal?.throwIfAborted();
|
|
125
|
+
const contentLength = Number(response.headers.get("content-length"));
|
|
126
|
+
const tooLarge = (receivedBytes) => new ProviderResponseTooLargeError({ maxBytes: prepared.maxBytes, receivedBytes, provider: "vertex", endpoint: "endpoints.streamRawPredict" });
|
|
127
|
+
if (Number.isFinite(contentLength) && contentLength > prepared.maxBytes)
|
|
128
|
+
throw tooLarge(contentLength);
|
|
129
|
+
yield { type: "response", ...responseMetadata(response) };
|
|
130
|
+
let receivedBytes = 0;
|
|
131
|
+
while (reader) {
|
|
132
|
+
signal?.throwIfAborted();
|
|
133
|
+
const { done, value } = await reader.read();
|
|
134
|
+
signal?.throwIfAborted();
|
|
135
|
+
if (done)
|
|
136
|
+
break;
|
|
137
|
+
receivedBytes += value.byteLength;
|
|
138
|
+
if (receivedBytes > prepared.maxBytes)
|
|
139
|
+
throw tooLarge(receivedBytes);
|
|
140
|
+
yield { type: "chunk", data: value };
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
finally {
|
|
144
|
+
signal?.removeEventListener("abort", cancel);
|
|
145
|
+
await reader?.cancel().catch(() => { });
|
|
146
|
+
reader?.releaseLock();
|
|
147
|
+
cleanup();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=endpoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"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"}
|
package/dist/grpc.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type RetryOptions } from "@zhivex-ai/core/provider";
|
|
2
|
+
import { type VertexTensor } from "./tensors.js";
|
|
3
|
+
interface GrpcInput extends RetryOptions {
|
|
4
|
+
endpoint: string;
|
|
5
|
+
maxResponseBytes?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface VertexGrpcRawInput extends GrpcInput {
|
|
8
|
+
methodName: string;
|
|
9
|
+
inputs: AsyncIterable<Uint8Array> | Iterable<Uint8Array>;
|
|
10
|
+
}
|
|
11
|
+
export interface VertexGrpcTensorFrame {
|
|
12
|
+
inputs: VertexTensor[];
|
|
13
|
+
parameters?: VertexTensor;
|
|
14
|
+
}
|
|
15
|
+
export interface VertexGrpcTensorInput extends GrpcInput {
|
|
16
|
+
inputs: AsyncIterable<VertexGrpcTensorFrame> | Iterable<VertexGrpcTensorFrame>;
|
|
17
|
+
}
|
|
18
|
+
export interface VertexGrpcServerInput extends GrpcInput, VertexGrpcTensorFrame {
|
|
19
|
+
}
|
|
20
|
+
export interface VertexGrpcTensorOutput {
|
|
21
|
+
outputs: VertexTensor[];
|
|
22
|
+
parameters?: VertexTensor;
|
|
23
|
+
}
|
|
24
|
+
export interface VertexGrpcClient {
|
|
25
|
+
serverStreamingPredict(input: VertexGrpcServerInput): AsyncIterable<VertexGrpcTensorOutput>;
|
|
26
|
+
streamingRawPredict(input: VertexGrpcRawInput): AsyncIterable<Uint8Array>;
|
|
27
|
+
streamingPredict(input: VertexGrpcTensorInput): AsyncIterable<VertexGrpcTensorOutput>;
|
|
28
|
+
streamDirectRawPredict(input: VertexGrpcRawInput): AsyncIterable<Uint8Array>;
|
|
29
|
+
streamDirectPredict(input: VertexGrpcTensorInput): AsyncIterable<VertexGrpcTensorOutput>;
|
|
30
|
+
}
|
|
31
|
+
export declare const createVertexGrpcClient: (baseURL: string, resolveEndpoint: (endpoint: string, allowPublisher: boolean) => string, getToken: (signal: AbortSignal) => Promise<string>) => VertexGrpcClient;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=grpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../src/grpc.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACnI,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAErE,UAAU,SAAU,SAAQ,YAAY;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AACD,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;CAC1D;AACD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AACD,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,MAAM,EAAE,aAAa,CAAC,qBAAqB,CAAC,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;CAChF;AACD,MAAM,WAAW,qBAAsB,SAAQ,SAAS,EAAE,qBAAqB;CAAG;AAClF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,GAAG,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC5F,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1E,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACtF,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7E,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,aAAa,CAAC,sBAAsB,CAAC,CAAC;CAC1F;AAUD,eAAO,MAAM,sBAAsB,YACxB,MAAM,mBACE,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,KAAK,MAAM,YAC5D,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,KACjD,gBAqHF,CAAC"}
|