@ai-sdk/voyage 2.0.51 → 2.0.52
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/CHANGELOG.md +9 -0
- package/dist/index.d.ts +41 -37
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +199 -277
- package/dist/index.js.map +1 -1
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @ai-sdk/voyage
|
|
2
2
|
|
|
3
|
+
## 2.0.52
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- ede5b89: chore: migrate package builds from tsup to tsdown
|
|
8
|
+
- Updated dependencies [ede5b89]
|
|
9
|
+
- @ai-sdk/provider@4.0.20
|
|
10
|
+
- @ai-sdk/provider-utils@5.0.52
|
|
11
|
+
|
|
3
12
|
## 2.0.51
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -1,48 +1,52 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { FetchFunction } from
|
|
3
|
-
import { z } from
|
|
4
|
-
|
|
1
|
+
import { EmbeddingModelV4, ProviderV4, RerankingModelV4 } from "@ai-sdk/provider";
|
|
2
|
+
import { FetchFunction } from "@ai-sdk/provider-utils";
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
|
+
//#region src/voyage-embedding-model-options.d.ts
|
|
5
5
|
type VoyageEmbeddingModelId = 'voyage-4-large' | 'voyage-4' | 'voyage-4-lite' | 'voyage-4-nano' | 'voyage-code-3.5' | 'voyage-code-3' | 'voyage-3-large' | 'voyage-3.5' | 'voyage-3.5-lite' | 'voyage-3' | 'voyage-3-lite' | 'voyage-finance-2' | 'voyage-law-2' | 'voyage-multilingual-2' | 'voyage-code-2' | 'voyage-2' | (string & {});
|
|
6
6
|
declare const voyageEmbeddingModelOptions: z.ZodObject<{
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
7
|
+
inputType: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
8
|
+
query: "query";
|
|
9
|
+
document: "document";
|
|
10
|
+
}>>>;
|
|
11
|
+
truncation: z.ZodOptional<z.ZodBoolean>;
|
|
12
|
+
outputDimension: z.ZodOptional<z.ZodNumber>;
|
|
13
|
+
outputDtype: z.ZodOptional<z.ZodEnum<{
|
|
14
|
+
float: "float";
|
|
15
|
+
int8: "int8";
|
|
16
|
+
uint8: "uint8";
|
|
17
|
+
binary: "binary";
|
|
18
|
+
ubinary: "ubinary";
|
|
19
|
+
}>>;
|
|
20
20
|
}, z.core.$strip>;
|
|
21
21
|
type VoyageEmbeddingModelOptions = z.infer<typeof voyageEmbeddingModelOptions>;
|
|
22
|
-
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/reranking/voyage-reranking-model-options.d.ts
|
|
23
24
|
type VoyageRerankingModelId = 'rerank-2.5' | 'rerank-2.5-lite' | 'rerank-2' | 'rerank-2-lite' | 'rerank-1' | 'rerank-lite-1' | (string & {});
|
|
24
25
|
type VoyageRerankingModelOptions = {
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
returnDocuments?: boolean;
|
|
27
|
+
truncation?: boolean;
|
|
27
28
|
};
|
|
28
|
-
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region src/voyage-provider.d.ts
|
|
29
31
|
interface VoyageProvider extends ProviderV4 {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
embedding(modelId: VoyageEmbeddingModelId): EmbeddingModelV4;
|
|
33
|
+
embeddingModel(modelId: VoyageEmbeddingModelId): EmbeddingModelV4;
|
|
34
|
+
textEmbedding(modelId: VoyageEmbeddingModelId): EmbeddingModelV4;
|
|
35
|
+
textEmbeddingModel(modelId: VoyageEmbeddingModelId): EmbeddingModelV4;
|
|
36
|
+
reranking(modelId: VoyageRerankingModelId): RerankingModelV4;
|
|
37
|
+
rerankingModel(modelId: VoyageRerankingModelId): RerankingModelV4;
|
|
36
38
|
}
|
|
37
39
|
interface VoyageProviderSettings {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
baseURL?: string;
|
|
41
|
+
apiKey?: string;
|
|
42
|
+
headers?: Record<string, string>;
|
|
43
|
+
fetch?: FetchFunction;
|
|
42
44
|
}
|
|
43
|
-
declare function createVoyage(options?: VoyageProviderSettings): VoyageProvider;
|
|
44
|
-
declare const voyage: VoyageProvider;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
export declare function createVoyage(options?: VoyageProviderSettings): VoyageProvider;
|
|
46
|
+
export declare const voyage: VoyageProvider;
|
|
47
|
+
//#endregion
|
|
48
|
+
//#region src/version.d.ts
|
|
49
|
+
export declare const VERSION: string;
|
|
50
|
+
//#endregion
|
|
51
|
+
export type { VoyageEmbeddingModelOptions, VoyageProvider, VoyageProviderSettings, VoyageRerankingModelOptions };
|
|
52
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/voyage-embedding-model-options.ts","../src/reranking/voyage-reranking-model-options.ts","../src/voyage-provider.ts","../src/version.ts"],"mappings":";;;;KAEY;cAmBC,6BAA2B,EAAA;;;;;;;;;;;;;;GAOtC,EAAA,KAAA;KAEU,8BAA8B,EAAE,aACnC;;;KCxBG;KASA;EACV;EACA;;;;UCAe,uBAAuB;EACtC,UAAU,SAAS,yBAAyB;EAC5C,eAAe,SAAS,yBAAyB;EACjD,cAAc,SAAS,yBAAyB;EAChD,mBAAmB,SAAS,yBAAyB;EACrD,UAAU,SAAS,yBAAyB;EAC5C,eAAe,SAAS,yBAAyB;;UAGlC;EACf;EACA;EACA,UAAU;EACV,QAAQ;;wBAGM,aACd,UAAS,yBACR;qBAsDU,QAAM;;;qBCzFN"}
|
package/dist/index.js
CHANGED
|
@@ -1,287 +1,209 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
NoSuchModelError
|
|
4
|
-
} from "@ai-sdk/provider";
|
|
5
|
-
import {
|
|
6
|
-
loadApiKey,
|
|
7
|
-
withoutTrailingSlash,
|
|
8
|
-
withUserAgentSuffix
|
|
9
|
-
} from "@ai-sdk/provider-utils";
|
|
10
|
-
|
|
11
|
-
// src/voyage-embedding-model.ts
|
|
12
|
-
import {
|
|
13
|
-
TooManyEmbeddingValuesForCallError
|
|
14
|
-
} from "@ai-sdk/provider";
|
|
15
|
-
import {
|
|
16
|
-
combineHeaders,
|
|
17
|
-
createJsonResponseHandler,
|
|
18
|
-
parseProviderOptions,
|
|
19
|
-
postJsonToApi,
|
|
20
|
-
serializeModelOptions,
|
|
21
|
-
WORKFLOW_SERIALIZE,
|
|
22
|
-
WORKFLOW_DESERIALIZE
|
|
23
|
-
} from "@ai-sdk/provider-utils";
|
|
24
|
-
import { z as z3 } from "zod/v4";
|
|
25
|
-
|
|
26
|
-
// src/voyage-embedding-model-options.ts
|
|
1
|
+
import { NoSuchModelError, TooManyEmbeddingValuesForCallError } from "@ai-sdk/provider";
|
|
2
|
+
import { WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE, combineHeaders, createJsonErrorResponseHandler, createJsonResponseHandler, lazySchema, loadApiKey, parseProviderOptions, postJsonToApi, serializeModelOptions, withUserAgentSuffix, withoutTrailingSlash, zodSchema } from "@ai-sdk/provider-utils";
|
|
27
3
|
import { z } from "zod/v4";
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
4
|
+
//#region src/voyage-embedding-model-options.ts
|
|
5
|
+
const voyageEmbeddingModelOptions = z.object({
|
|
6
|
+
inputType: z.enum(["query", "document"]).nullable().optional(),
|
|
7
|
+
truncation: z.boolean().optional(),
|
|
8
|
+
outputDimension: z.number().optional(),
|
|
9
|
+
outputDtype: z.enum([
|
|
10
|
+
"float",
|
|
11
|
+
"int8",
|
|
12
|
+
"uint8",
|
|
13
|
+
"binary",
|
|
14
|
+
"ubinary"
|
|
15
|
+
]).optional()
|
|
40
16
|
});
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/voyage-error.ts
|
|
19
|
+
const voyageErrorDataSchema = z.object({ detail: z.string() });
|
|
20
|
+
const voyageFailedResponseHandler = createJsonErrorResponseHandler({
|
|
21
|
+
errorSchema: voyageErrorDataSchema,
|
|
22
|
+
errorToMessage: (data) => data.detail
|
|
44
23
|
});
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
var VoyageEmbeddingModel = class
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
abortSignal,
|
|
106
|
-
fetch: this.config.fetch
|
|
107
|
-
});
|
|
108
|
-
return {
|
|
109
|
-
warnings: [],
|
|
110
|
-
embeddings: response.data.sort((a, b) => a.index - b.index).map((item) => item.embedding),
|
|
111
|
-
usage: { tokens: response.usage?.total_tokens ?? 0 },
|
|
112
|
-
response: { headers: responseHeaders, body: rawValue }
|
|
113
|
-
};
|
|
114
|
-
}
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region src/voyage-embedding-model.ts
|
|
26
|
+
var VoyageEmbeddingModel = class VoyageEmbeddingModel {
|
|
27
|
+
static [WORKFLOW_SERIALIZE](model) {
|
|
28
|
+
return serializeModelOptions({
|
|
29
|
+
modelId: model.modelId,
|
|
30
|
+
config: model.config
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
static [WORKFLOW_DESERIALIZE](options) {
|
|
34
|
+
return new VoyageEmbeddingModel(options.modelId, options.config);
|
|
35
|
+
}
|
|
36
|
+
constructor(modelId, config) {
|
|
37
|
+
this.specificationVersion = "v4";
|
|
38
|
+
this.maxEmbeddingsPerCall = 128;
|
|
39
|
+
this.supportsParallelCalls = true;
|
|
40
|
+
this.modelId = modelId;
|
|
41
|
+
this.config = config;
|
|
42
|
+
}
|
|
43
|
+
get provider() {
|
|
44
|
+
return this.config.provider;
|
|
45
|
+
}
|
|
46
|
+
async doEmbed({ values, headers, abortSignal, providerOptions }) {
|
|
47
|
+
const embeddingOptions = await parseProviderOptions({
|
|
48
|
+
provider: "voyage",
|
|
49
|
+
providerOptions,
|
|
50
|
+
schema: voyageEmbeddingModelOptions
|
|
51
|
+
});
|
|
52
|
+
if (values.length > this.maxEmbeddingsPerCall) throw new TooManyEmbeddingValuesForCallError({
|
|
53
|
+
provider: this.provider,
|
|
54
|
+
modelId: this.modelId,
|
|
55
|
+
maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,
|
|
56
|
+
values
|
|
57
|
+
});
|
|
58
|
+
const { responseHeaders, value: response, rawValue } = await postJsonToApi({
|
|
59
|
+
url: `${this.config.baseURL}/embeddings`,
|
|
60
|
+
headers: combineHeaders(this.config.headers?.(), headers),
|
|
61
|
+
body: {
|
|
62
|
+
input: values,
|
|
63
|
+
model: this.modelId,
|
|
64
|
+
input_type: embeddingOptions?.inputType,
|
|
65
|
+
truncation: embeddingOptions?.truncation,
|
|
66
|
+
output_dimension: embeddingOptions?.outputDimension,
|
|
67
|
+
output_dtype: embeddingOptions?.outputDtype
|
|
68
|
+
},
|
|
69
|
+
failedResponseHandler: voyageFailedResponseHandler,
|
|
70
|
+
successfulResponseHandler: createJsonResponseHandler(voyageEmbeddingResponseSchema),
|
|
71
|
+
abortSignal,
|
|
72
|
+
fetch: this.config.fetch
|
|
73
|
+
});
|
|
74
|
+
return {
|
|
75
|
+
warnings: [],
|
|
76
|
+
embeddings: response.data.sort((a, b) => a.index - b.index).map((item) => item.embedding),
|
|
77
|
+
usage: { tokens: response.usage?.total_tokens ?? 0 },
|
|
78
|
+
response: {
|
|
79
|
+
headers: responseHeaders,
|
|
80
|
+
body: rawValue
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
}
|
|
115
84
|
};
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
model: z3.string(),
|
|
124
|
-
usage: z3.object({
|
|
125
|
-
total_tokens: z3.number()
|
|
126
|
-
}).nullish()
|
|
85
|
+
const voyageEmbeddingResponseSchema = z.object({
|
|
86
|
+
data: z.array(z.object({
|
|
87
|
+
embedding: z.array(z.number()),
|
|
88
|
+
index: z.number()
|
|
89
|
+
})),
|
|
90
|
+
model: z.string(),
|
|
91
|
+
usage: z.object({ total_tokens: z.number() }).nullish()
|
|
127
92
|
});
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
zodSchema as zodSchema2
|
|
137
|
-
} from "@ai-sdk/provider-utils";
|
|
138
|
-
import { z as z5 } from "zod/v4";
|
|
139
|
-
|
|
140
|
-
// src/reranking/voyage-reranking-model-options.ts
|
|
141
|
-
import {
|
|
142
|
-
lazySchema,
|
|
143
|
-
zodSchema
|
|
144
|
-
} from "@ai-sdk/provider-utils";
|
|
145
|
-
import { z as z4 } from "zod/v4";
|
|
146
|
-
var voyageRerankingModelOptionsSchema = lazySchema(
|
|
147
|
-
() => zodSchema(
|
|
148
|
-
z4.object({
|
|
149
|
-
returnDocuments: z4.boolean().optional(),
|
|
150
|
-
truncation: z4.boolean().optional()
|
|
151
|
-
})
|
|
152
|
-
)
|
|
153
|
-
);
|
|
154
|
-
|
|
155
|
-
// src/reranking/voyage-reranking-model.ts
|
|
93
|
+
//#endregion
|
|
94
|
+
//#region src/reranking/voyage-reranking-model-options.ts
|
|
95
|
+
const voyageRerankingModelOptionsSchema = lazySchema(() => zodSchema(z.object({
|
|
96
|
+
returnDocuments: z.boolean().optional(),
|
|
97
|
+
truncation: z.boolean().optional()
|
|
98
|
+
})));
|
|
99
|
+
//#endregion
|
|
100
|
+
//#region src/reranking/voyage-reranking-model.ts
|
|
156
101
|
var VoyageRerankingModel = class {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
abortSignal,
|
|
207
|
-
fetch: this.config.fetch
|
|
208
|
-
});
|
|
209
|
-
return {
|
|
210
|
-
ranking: response.data.map((result) => ({
|
|
211
|
-
index: result.index,
|
|
212
|
-
relevanceScore: result.relevance_score
|
|
213
|
-
})),
|
|
214
|
-
warnings,
|
|
215
|
-
response: {
|
|
216
|
-
headers: responseHeaders,
|
|
217
|
-
body: rawValue
|
|
218
|
-
}
|
|
219
|
-
};
|
|
220
|
-
}
|
|
102
|
+
constructor(modelId, config) {
|
|
103
|
+
this.specificationVersion = "v4";
|
|
104
|
+
this.modelId = modelId;
|
|
105
|
+
this.config = config;
|
|
106
|
+
}
|
|
107
|
+
get provider() {
|
|
108
|
+
return this.config.provider;
|
|
109
|
+
}
|
|
110
|
+
async doRerank({ documents, headers, query, topN, abortSignal, providerOptions }) {
|
|
111
|
+
const rerankingOptions = await parseProviderOptions({
|
|
112
|
+
provider: "voyage",
|
|
113
|
+
providerOptions,
|
|
114
|
+
schema: voyageRerankingModelOptionsSchema
|
|
115
|
+
});
|
|
116
|
+
const warnings = [];
|
|
117
|
+
if (documents.type === "object") warnings.push({
|
|
118
|
+
type: "compatibility",
|
|
119
|
+
feature: "object documents",
|
|
120
|
+
details: "Object documents are converted to strings."
|
|
121
|
+
});
|
|
122
|
+
const stringValues = documents.type === "text" ? documents.values : documents.values.map((value) => JSON.stringify(value));
|
|
123
|
+
const { responseHeaders, value: response, rawValue } = await postJsonToApi({
|
|
124
|
+
url: `${this.config.baseURL}/rerank`,
|
|
125
|
+
headers: combineHeaders(this.config.headers(), headers),
|
|
126
|
+
body: {
|
|
127
|
+
query,
|
|
128
|
+
documents: stringValues,
|
|
129
|
+
model: this.modelId,
|
|
130
|
+
top_k: topN,
|
|
131
|
+
return_documents: rerankingOptions?.returnDocuments,
|
|
132
|
+
truncation: rerankingOptions?.truncation
|
|
133
|
+
},
|
|
134
|
+
failedResponseHandler: voyageFailedResponseHandler,
|
|
135
|
+
successfulResponseHandler: createJsonResponseHandler(voyageRerankingResponseSchema),
|
|
136
|
+
abortSignal,
|
|
137
|
+
fetch: this.config.fetch
|
|
138
|
+
});
|
|
139
|
+
return {
|
|
140
|
+
ranking: response.data.map((result) => ({
|
|
141
|
+
index: result.index,
|
|
142
|
+
relevanceScore: result.relevance_score
|
|
143
|
+
})),
|
|
144
|
+
warnings,
|
|
145
|
+
response: {
|
|
146
|
+
headers: responseHeaders,
|
|
147
|
+
body: rawValue
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
}
|
|
221
151
|
};
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
})
|
|
232
|
-
)
|
|
233
|
-
);
|
|
234
|
-
|
|
235
|
-
// src/version.ts
|
|
236
|
-
var VERSION = true ? "2.0.51" : "0.0.0-test";
|
|
237
|
-
|
|
238
|
-
// src/voyage-provider.ts
|
|
152
|
+
const voyageRerankingResponseSchema = lazySchema(() => zodSchema(z.object({ data: z.array(z.object({
|
|
153
|
+
index: z.number(),
|
|
154
|
+
relevance_score: z.number()
|
|
155
|
+
})) })));
|
|
156
|
+
//#endregion
|
|
157
|
+
//#region src/version.ts
|
|
158
|
+
const VERSION = "2.0.52";
|
|
159
|
+
//#endregion
|
|
160
|
+
//#region src/voyage-provider.ts
|
|
239
161
|
function createVoyage(options = {}) {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
162
|
+
const baseURL = withoutTrailingSlash(options.baseURL) ?? "https://api.voyageai.com/v1";
|
|
163
|
+
const getHeaders = () => withUserAgentSuffix({
|
|
164
|
+
Authorization: `Bearer ${loadApiKey({
|
|
165
|
+
apiKey: options.apiKey,
|
|
166
|
+
environmentVariableName: "VOYAGE_API_KEY",
|
|
167
|
+
description: "Voyage"
|
|
168
|
+
})}`,
|
|
169
|
+
...options.headers
|
|
170
|
+
}, `ai-sdk-voyage/${VERSION}`);
|
|
171
|
+
const createEmbeddingModel = (modelId) => new VoyageEmbeddingModel(modelId, {
|
|
172
|
+
provider: "voyage.embedding",
|
|
173
|
+
baseURL,
|
|
174
|
+
headers: getHeaders,
|
|
175
|
+
fetch: options.fetch
|
|
176
|
+
});
|
|
177
|
+
const createRerankingModel = (modelId) => new VoyageRerankingModel(modelId, {
|
|
178
|
+
provider: "voyage.reranking",
|
|
179
|
+
baseURL,
|
|
180
|
+
headers: getHeaders,
|
|
181
|
+
fetch: options.fetch
|
|
182
|
+
});
|
|
183
|
+
return {
|
|
184
|
+
specificationVersion: "v4",
|
|
185
|
+
embedding: createEmbeddingModel,
|
|
186
|
+
embeddingModel: createEmbeddingModel,
|
|
187
|
+
textEmbedding: createEmbeddingModel,
|
|
188
|
+
textEmbeddingModel: createEmbeddingModel,
|
|
189
|
+
reranking: createRerankingModel,
|
|
190
|
+
rerankingModel: createRerankingModel,
|
|
191
|
+
languageModel: (modelId) => {
|
|
192
|
+
throw new NoSuchModelError({
|
|
193
|
+
modelId,
|
|
194
|
+
modelType: "languageModel"
|
|
195
|
+
});
|
|
196
|
+
},
|
|
197
|
+
imageModel: (modelId) => {
|
|
198
|
+
throw new NoSuchModelError({
|
|
199
|
+
modelId,
|
|
200
|
+
modelType: "imageModel"
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
};
|
|
280
204
|
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
voyage
|
|
286
|
-
};
|
|
205
|
+
const voyage = createVoyage();
|
|
206
|
+
//#endregion
|
|
207
|
+
export { VERSION, createVoyage, voyage };
|
|
208
|
+
|
|
287
209
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/voyage-provider.ts","../src/voyage-embedding-model.ts","../src/voyage-embedding-model-options.ts","../src/voyage-error.ts","../src/reranking/voyage-reranking-model.ts","../src/reranking/voyage-reranking-model-options.ts","../src/version.ts"],"sourcesContent":["import {\n NoSuchModelError,\n type EmbeddingModelV4,\n type RerankingModelV4,\n type ProviderV4,\n} from '@ai-sdk/provider';\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { VoyageEmbeddingModel } from './voyage-embedding-model';\nimport type { VoyageEmbeddingModelId } from './voyage-embedding-model-options';\nimport type { VoyageRerankingModelId } from './reranking/voyage-reranking-model-options';\nimport { VoyageRerankingModel } from './reranking/voyage-reranking-model';\nimport { VERSION } from './version';\n\nexport interface VoyageProvider extends ProviderV4 {\n embedding(modelId: VoyageEmbeddingModelId): EmbeddingModelV4;\n embeddingModel(modelId: VoyageEmbeddingModelId): EmbeddingModelV4;\n textEmbedding(modelId: VoyageEmbeddingModelId): EmbeddingModelV4;\n textEmbeddingModel(modelId: VoyageEmbeddingModelId): EmbeddingModelV4;\n reranking(modelId: VoyageRerankingModelId): RerankingModelV4;\n rerankingModel(modelId: VoyageRerankingModelId): RerankingModelV4;\n}\n\nexport interface VoyageProviderSettings {\n baseURL?: string;\n apiKey?: string;\n headers?: Record<string, string>;\n fetch?: FetchFunction;\n}\n\nexport function createVoyage(\n options: VoyageProviderSettings = {},\n): VoyageProvider {\n const baseURL =\n withoutTrailingSlash(options.baseURL) ?? 'https://api.voyageai.com/v1';\n\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'VOYAGE_API_KEY',\n description: 'Voyage',\n })}`,\n ...options.headers,\n },\n `ai-sdk-voyage/${VERSION}`,\n );\n\n const createEmbeddingModel = (modelId: VoyageEmbeddingModelId) =>\n new VoyageEmbeddingModel(modelId, {\n provider: 'voyage.embedding',\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createRerankingModel = (modelId: VoyageRerankingModelId) =>\n new VoyageRerankingModel(modelId, {\n provider: 'voyage.reranking',\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider: VoyageProvider = {\n specificationVersion: 'v4' as const,\n embedding: createEmbeddingModel,\n embeddingModel: createEmbeddingModel,\n textEmbedding: createEmbeddingModel,\n textEmbeddingModel: createEmbeddingModel,\n reranking: createRerankingModel,\n rerankingModel: createRerankingModel,\n\n languageModel: (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'languageModel' });\n },\n\n imageModel: (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n },\n };\n\n return provider;\n}\n\nexport const voyage = createVoyage();\n","import {\n TooManyEmbeddingValuesForCallError,\n type EmbeddingModelV4,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n serializeModelOptions,\n WORKFLOW_SERIALIZE,\n WORKFLOW_DESERIALIZE,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport {\n voyageEmbeddingModelOptions,\n type VoyageEmbeddingModelId,\n} from './voyage-embedding-model-options';\nimport { voyageFailedResponseHandler } from './voyage-error';\n\ntype VoyageEmbeddingConfig = {\n provider: string;\n baseURL: string;\n headers?: () => Record<string, string | undefined>;\n fetch?: FetchFunction;\n};\n\nexport class VoyageEmbeddingModel implements EmbeddingModelV4 {\n readonly specificationVersion = 'v4';\n readonly modelId: VoyageEmbeddingModelId;\n\n readonly maxEmbeddingsPerCall = 128;\n readonly supportsParallelCalls = true;\n\n private readonly config: VoyageEmbeddingConfig;\n\n static [WORKFLOW_SERIALIZE](model: VoyageEmbeddingModel) {\n return serializeModelOptions({\n modelId: model.modelId,\n config: model.config,\n });\n }\n\n static [WORKFLOW_DESERIALIZE](options: {\n modelId: VoyageEmbeddingModelId;\n config: VoyageEmbeddingConfig;\n }) {\n return new VoyageEmbeddingModel(options.modelId, options.config);\n }\n\n constructor(modelId: VoyageEmbeddingModelId, config: VoyageEmbeddingConfig) {\n this.modelId = modelId;\n this.config = config;\n }\n\n get provider(): string {\n return this.config.provider;\n }\n\n async doEmbed({\n values,\n headers,\n abortSignal,\n providerOptions,\n }: Parameters<EmbeddingModelV4['doEmbed']>[0]): Promise<\n Awaited<ReturnType<EmbeddingModelV4['doEmbed']>>\n > {\n const embeddingOptions = await parseProviderOptions({\n provider: 'voyage',\n providerOptions,\n schema: voyageEmbeddingModelOptions,\n });\n\n if (values.length > this.maxEmbeddingsPerCall) {\n throw new TooManyEmbeddingValuesForCallError({\n provider: this.provider,\n modelId: this.modelId,\n maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n values,\n });\n }\n\n const {\n responseHeaders,\n value: response,\n rawValue,\n } = await postJsonToApi({\n url: `${this.config.baseURL}/embeddings`,\n headers: combineHeaders(this.config.headers?.(), headers),\n body: {\n input: values,\n model: this.modelId,\n input_type: embeddingOptions?.inputType,\n truncation: embeddingOptions?.truncation,\n output_dimension: embeddingOptions?.outputDimension,\n output_dtype: embeddingOptions?.outputDtype,\n },\n failedResponseHandler: voyageFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n voyageEmbeddingResponseSchema,\n ),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n warnings: [],\n embeddings: response.data\n .sort((a, b) => a.index - b.index)\n .map(item => item.embedding),\n usage: { tokens: response.usage?.total_tokens ?? 0 },\n response: { headers: responseHeaders, body: rawValue },\n };\n }\n}\n\nconst voyageEmbeddingResponseSchema = z.object({\n data: z.array(\n z.object({\n embedding: z.array(z.number()),\n index: z.number(),\n }),\n ),\n model: z.string(),\n usage: z\n .object({\n total_tokens: z.number(),\n })\n .nullish(),\n});\n","import { z } from 'zod/v4';\n\nexport type VoyageEmbeddingModelId =\n | 'voyage-4-large'\n | 'voyage-4'\n | 'voyage-4-lite'\n | 'voyage-4-nano'\n | 'voyage-code-3.5'\n | 'voyage-code-3'\n | 'voyage-3-large'\n | 'voyage-3.5'\n | 'voyage-3.5-lite'\n | 'voyage-3'\n | 'voyage-3-lite'\n | 'voyage-finance-2'\n | 'voyage-law-2'\n | 'voyage-multilingual-2'\n | 'voyage-code-2'\n | 'voyage-2'\n | (string & {});\n\nexport const voyageEmbeddingModelOptions = z.object({\n inputType: z.enum(['query', 'document']).nullable().optional(),\n truncation: z.boolean().optional(),\n outputDimension: z.number().optional(),\n outputDtype: z\n .enum(['float', 'int8', 'uint8', 'binary', 'ubinary'])\n .optional(),\n});\n\nexport type VoyageEmbeddingModelOptions = z.infer<\n typeof voyageEmbeddingModelOptions\n>;\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst voyageErrorDataSchema = z.object({\n detail: z.string(),\n});\n\nexport type VoyageErrorData = z.infer<typeof voyageErrorDataSchema>;\n\nexport const voyageFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: voyageErrorDataSchema,\n errorToMessage: data => data.detail,\n});\n","import type { RerankingModelV4, SharedV4Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n lazySchema,\n parseProviderOptions,\n postJsonToApi,\n zodSchema,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { voyageFailedResponseHandler } from '../voyage-error';\nimport {\n voyageRerankingModelOptionsSchema,\n type VoyageRerankingModelId,\n} from './voyage-reranking-model-options';\ntype VoyageRerankingConfig = {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string | undefined>;\n fetch?: FetchFunction;\n};\n\nexport class VoyageRerankingModel implements RerankingModelV4 {\n readonly specificationVersion = 'v4';\n readonly modelId: VoyageRerankingModelId;\n\n private readonly config: VoyageRerankingConfig;\n\n constructor(modelId: VoyageRerankingModelId, config: VoyageRerankingConfig) {\n this.modelId = modelId;\n this.config = config;\n }\n\n get provider(): string {\n return this.config.provider;\n }\n\n async doRerank({\n documents,\n headers,\n query,\n topN,\n abortSignal,\n providerOptions,\n }: Parameters<RerankingModelV4['doRerank']>[0]): Promise<\n Awaited<ReturnType<RerankingModelV4['doRerank']>>\n > {\n const rerankingOptions = await parseProviderOptions({\n provider: 'voyage',\n providerOptions,\n schema: voyageRerankingModelOptionsSchema,\n });\n\n const warnings: SharedV4Warning[] = [];\n\n if (documents.type === 'object') {\n warnings.push({\n type: 'compatibility',\n feature: 'object documents',\n details: 'Object documents are converted to strings.',\n });\n }\n\n const stringValues =\n documents.type === 'text'\n ? documents.values\n : documents.values.map(value => JSON.stringify(value));\n\n const {\n responseHeaders,\n value: response,\n rawValue,\n } = await postJsonToApi({\n url: `${this.config.baseURL}/rerank`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n query,\n documents: stringValues,\n model: this.modelId,\n top_k: topN,\n return_documents: rerankingOptions?.returnDocuments,\n truncation: rerankingOptions?.truncation,\n },\n failedResponseHandler: voyageFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n voyageRerankingResponseSchema,\n ),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n ranking: response.data.map(result => ({\n index: result.index,\n relevanceScore: result.relevance_score,\n })),\n warnings,\n response: {\n headers: responseHeaders,\n body: rawValue,\n },\n };\n }\n}\n\nconst voyageRerankingResponseSchema = lazySchema(() =>\n zodSchema(\n z.object({\n data: z.array(\n z.object({\n index: z.number(),\n relevance_score: z.number(),\n }),\n ),\n }),\n ),\n);\n","import {\n lazySchema,\n zodSchema,\n type FlexibleSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type VoyageRerankingModelId =\n | 'rerank-2.5'\n | 'rerank-2.5-lite'\n | 'rerank-2'\n | 'rerank-2-lite'\n | 'rerank-1'\n | 'rerank-lite-1'\n | (string & {});\n\nexport type VoyageRerankingModelOptions = {\n returnDocuments?: boolean;\n truncation?: boolean;\n};\n\nexport const voyageRerankingModelOptionsSchema: FlexibleSchema<VoyageRerankingModelOptions> =\n lazySchema(() =>\n zodSchema(\n z.object({\n returnDocuments: z.boolean().optional(),\n truncation: z.boolean().optional(),\n }),\n ),\n );\n","declare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":["z","z","z","combineHeaders","createJsonResponseHandler","lazySchema","parseProviderOptions","postJsonToApi","zodSchema","z","z","parseProviderOptions","postJsonToApi","combineHeaders","createJsonResponseHandler","lazySchema","zodSchema","z"]}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/voyage-embedding-model-options.ts","../src/voyage-error.ts","../src/voyage-embedding-model.ts","../src/reranking/voyage-reranking-model-options.ts","../src/reranking/voyage-reranking-model.ts","../src/version.ts","../src/voyage-provider.ts"],"sourcesContent":["import { z } from 'zod/v4';\n\nexport type VoyageEmbeddingModelId =\n | 'voyage-4-large'\n | 'voyage-4'\n | 'voyage-4-lite'\n | 'voyage-4-nano'\n | 'voyage-code-3.5'\n | 'voyage-code-3'\n | 'voyage-3-large'\n | 'voyage-3.5'\n | 'voyage-3.5-lite'\n | 'voyage-3'\n | 'voyage-3-lite'\n | 'voyage-finance-2'\n | 'voyage-law-2'\n | 'voyage-multilingual-2'\n | 'voyage-code-2'\n | 'voyage-2'\n | (string & {});\n\nexport const voyageEmbeddingModelOptions = z.object({\n inputType: z.enum(['query', 'document']).nullable().optional(),\n truncation: z.boolean().optional(),\n outputDimension: z.number().optional(),\n outputDtype: z\n .enum(['float', 'int8', 'uint8', 'binary', 'ubinary'])\n .optional(),\n});\n\nexport type VoyageEmbeddingModelOptions = z.infer<\n typeof voyageEmbeddingModelOptions\n>;\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst voyageErrorDataSchema = z.object({\n detail: z.string(),\n});\n\nexport type VoyageErrorData = z.infer<typeof voyageErrorDataSchema>;\n\nexport const voyageFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: voyageErrorDataSchema,\n errorToMessage: data => data.detail,\n});\n","import {\n TooManyEmbeddingValuesForCallError,\n type EmbeddingModelV4,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n serializeModelOptions,\n WORKFLOW_SERIALIZE,\n WORKFLOW_DESERIALIZE,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport {\n voyageEmbeddingModelOptions,\n type VoyageEmbeddingModelId,\n} from './voyage-embedding-model-options';\nimport { voyageFailedResponseHandler } from './voyage-error';\n\ntype VoyageEmbeddingConfig = {\n provider: string;\n baseURL: string;\n headers?: () => Record<string, string | undefined>;\n fetch?: FetchFunction;\n};\n\nexport class VoyageEmbeddingModel implements EmbeddingModelV4 {\n readonly specificationVersion = 'v4';\n readonly modelId: VoyageEmbeddingModelId;\n\n readonly maxEmbeddingsPerCall = 128;\n readonly supportsParallelCalls = true;\n\n private readonly config: VoyageEmbeddingConfig;\n\n static [WORKFLOW_SERIALIZE](model: VoyageEmbeddingModel) {\n return serializeModelOptions({\n modelId: model.modelId,\n config: model.config,\n });\n }\n\n static [WORKFLOW_DESERIALIZE](options: {\n modelId: VoyageEmbeddingModelId;\n config: VoyageEmbeddingConfig;\n }) {\n return new VoyageEmbeddingModel(options.modelId, options.config);\n }\n\n constructor(modelId: VoyageEmbeddingModelId, config: VoyageEmbeddingConfig) {\n this.modelId = modelId;\n this.config = config;\n }\n\n get provider(): string {\n return this.config.provider;\n }\n\n async doEmbed({\n values,\n headers,\n abortSignal,\n providerOptions,\n }: Parameters<EmbeddingModelV4['doEmbed']>[0]): Promise<\n Awaited<ReturnType<EmbeddingModelV4['doEmbed']>>\n > {\n const embeddingOptions = await parseProviderOptions({\n provider: 'voyage',\n providerOptions,\n schema: voyageEmbeddingModelOptions,\n });\n\n if (values.length > this.maxEmbeddingsPerCall) {\n throw new TooManyEmbeddingValuesForCallError({\n provider: this.provider,\n modelId: this.modelId,\n maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n values,\n });\n }\n\n const {\n responseHeaders,\n value: response,\n rawValue,\n } = await postJsonToApi({\n url: `${this.config.baseURL}/embeddings`,\n headers: combineHeaders(this.config.headers?.(), headers),\n body: {\n input: values,\n model: this.modelId,\n input_type: embeddingOptions?.inputType,\n truncation: embeddingOptions?.truncation,\n output_dimension: embeddingOptions?.outputDimension,\n output_dtype: embeddingOptions?.outputDtype,\n },\n failedResponseHandler: voyageFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n voyageEmbeddingResponseSchema,\n ),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n warnings: [],\n embeddings: response.data\n .sort((a, b) => a.index - b.index)\n .map(item => item.embedding),\n usage: { tokens: response.usage?.total_tokens ?? 0 },\n response: { headers: responseHeaders, body: rawValue },\n };\n }\n}\n\nconst voyageEmbeddingResponseSchema = z.object({\n data: z.array(\n z.object({\n embedding: z.array(z.number()),\n index: z.number(),\n }),\n ),\n model: z.string(),\n usage: z\n .object({\n total_tokens: z.number(),\n })\n .nullish(),\n});\n","import {\n lazySchema,\n zodSchema,\n type FlexibleSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type VoyageRerankingModelId =\n | 'rerank-2.5'\n | 'rerank-2.5-lite'\n | 'rerank-2'\n | 'rerank-2-lite'\n | 'rerank-1'\n | 'rerank-lite-1'\n | (string & {});\n\nexport type VoyageRerankingModelOptions = {\n returnDocuments?: boolean;\n truncation?: boolean;\n};\n\nexport const voyageRerankingModelOptionsSchema: FlexibleSchema<VoyageRerankingModelOptions> =\n lazySchema(() =>\n zodSchema(\n z.object({\n returnDocuments: z.boolean().optional(),\n truncation: z.boolean().optional(),\n }),\n ),\n );\n","import type { RerankingModelV4, SharedV4Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n lazySchema,\n parseProviderOptions,\n postJsonToApi,\n zodSchema,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { voyageFailedResponseHandler } from '../voyage-error';\nimport {\n voyageRerankingModelOptionsSchema,\n type VoyageRerankingModelId,\n} from './voyage-reranking-model-options';\ntype VoyageRerankingConfig = {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string | undefined>;\n fetch?: FetchFunction;\n};\n\nexport class VoyageRerankingModel implements RerankingModelV4 {\n readonly specificationVersion = 'v4';\n readonly modelId: VoyageRerankingModelId;\n\n private readonly config: VoyageRerankingConfig;\n\n constructor(modelId: VoyageRerankingModelId, config: VoyageRerankingConfig) {\n this.modelId = modelId;\n this.config = config;\n }\n\n get provider(): string {\n return this.config.provider;\n }\n\n async doRerank({\n documents,\n headers,\n query,\n topN,\n abortSignal,\n providerOptions,\n }: Parameters<RerankingModelV4['doRerank']>[0]): Promise<\n Awaited<ReturnType<RerankingModelV4['doRerank']>>\n > {\n const rerankingOptions = await parseProviderOptions({\n provider: 'voyage',\n providerOptions,\n schema: voyageRerankingModelOptionsSchema,\n });\n\n const warnings: SharedV4Warning[] = [];\n\n if (documents.type === 'object') {\n warnings.push({\n type: 'compatibility',\n feature: 'object documents',\n details: 'Object documents are converted to strings.',\n });\n }\n\n const stringValues =\n documents.type === 'text'\n ? documents.values\n : documents.values.map(value => JSON.stringify(value));\n\n const {\n responseHeaders,\n value: response,\n rawValue,\n } = await postJsonToApi({\n url: `${this.config.baseURL}/rerank`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n query,\n documents: stringValues,\n model: this.modelId,\n top_k: topN,\n return_documents: rerankingOptions?.returnDocuments,\n truncation: rerankingOptions?.truncation,\n },\n failedResponseHandler: voyageFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n voyageRerankingResponseSchema,\n ),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n ranking: response.data.map(result => ({\n index: result.index,\n relevanceScore: result.relevance_score,\n })),\n warnings,\n response: {\n headers: responseHeaders,\n body: rawValue,\n },\n };\n }\n}\n\nconst voyageRerankingResponseSchema = lazySchema(() =>\n zodSchema(\n z.object({\n data: z.array(\n z.object({\n index: z.number(),\n relevance_score: z.number(),\n }),\n ),\n }),\n ),\n);\n","declare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n","import {\n NoSuchModelError,\n type EmbeddingModelV4,\n type RerankingModelV4,\n type ProviderV4,\n} from '@ai-sdk/provider';\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { VoyageEmbeddingModel } from './voyage-embedding-model';\nimport type { VoyageEmbeddingModelId } from './voyage-embedding-model-options';\nimport type { VoyageRerankingModelId } from './reranking/voyage-reranking-model-options';\nimport { VoyageRerankingModel } from './reranking/voyage-reranking-model';\nimport { VERSION } from './version';\n\nexport interface VoyageProvider extends ProviderV4 {\n embedding(modelId: VoyageEmbeddingModelId): EmbeddingModelV4;\n embeddingModel(modelId: VoyageEmbeddingModelId): EmbeddingModelV4;\n textEmbedding(modelId: VoyageEmbeddingModelId): EmbeddingModelV4;\n textEmbeddingModel(modelId: VoyageEmbeddingModelId): EmbeddingModelV4;\n reranking(modelId: VoyageRerankingModelId): RerankingModelV4;\n rerankingModel(modelId: VoyageRerankingModelId): RerankingModelV4;\n}\n\nexport interface VoyageProviderSettings {\n baseURL?: string;\n apiKey?: string;\n headers?: Record<string, string>;\n fetch?: FetchFunction;\n}\n\nexport function createVoyage(\n options: VoyageProviderSettings = {},\n): VoyageProvider {\n const baseURL =\n withoutTrailingSlash(options.baseURL) ?? 'https://api.voyageai.com/v1';\n\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'VOYAGE_API_KEY',\n description: 'Voyage',\n })}`,\n ...options.headers,\n },\n `ai-sdk-voyage/${VERSION}`,\n );\n\n const createEmbeddingModel = (modelId: VoyageEmbeddingModelId) =>\n new VoyageEmbeddingModel(modelId, {\n provider: 'voyage.embedding',\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createRerankingModel = (modelId: VoyageRerankingModelId) =>\n new VoyageRerankingModel(modelId, {\n provider: 'voyage.reranking',\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider: VoyageProvider = {\n specificationVersion: 'v4' as const,\n embedding: createEmbeddingModel,\n embeddingModel: createEmbeddingModel,\n textEmbedding: createEmbeddingModel,\n textEmbeddingModel: createEmbeddingModel,\n reranking: createRerankingModel,\n rerankingModel: createRerankingModel,\n\n languageModel: (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'languageModel' });\n },\n\n imageModel: (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n },\n };\n\n return provider;\n}\n\nexport const voyage = createVoyage();\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/voyage",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.52",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@ai-sdk/provider": "4.0.
|
|
29
|
-
"@ai-sdk/provider-utils": "5.0.
|
|
28
|
+
"@ai-sdk/provider": "4.0.20",
|
|
29
|
+
"@ai-sdk/provider-utils": "5.0.52"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@ai-sdk/test-server": "2.0.
|
|
32
|
+
"@ai-sdk/test-server": "2.0.3",
|
|
33
33
|
"@types/node": "22.19.19",
|
|
34
34
|
"@vercel/ai-tsconfig": "0.0.0",
|
|
35
|
-
"
|
|
35
|
+
"tsdown": "^0.23.0",
|
|
36
36
|
"typescript": "5.8.3",
|
|
37
37
|
"zod": "3.25.76"
|
|
38
38
|
},
|
|
@@ -59,9 +59,9 @@
|
|
|
59
59
|
"ai"
|
|
60
60
|
],
|
|
61
61
|
"scripts": {
|
|
62
|
-
"build": "pnpm clean &&
|
|
63
|
-
"build:watch": "pnpm clean &&
|
|
64
|
-
"clean": "del-cli
|
|
62
|
+
"build": "pnpm clean && tsdown",
|
|
63
|
+
"build:watch": "pnpm clean && tsdown --watch",
|
|
64
|
+
"clean": "del-cli *.tsbuildinfo",
|
|
65
65
|
"type-check": "tsc --build",
|
|
66
66
|
"test": "pnpm test:node && pnpm test:edge",
|
|
67
67
|
"test:update": "pnpm test:node -u",
|