@ai-sdk/openai-compatible 2.0.15 → 2.0.17
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 +12 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +23 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +23 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -2
- package/src/chat/convert-openai-compatible-chat-usage.ts +55 -0
- package/src/chat/convert-to-openai-compatible-chat-messages.test.ts +1238 -0
- package/src/chat/convert-to-openai-compatible-chat-messages.ts +246 -0
- package/src/chat/get-response-metadata.ts +15 -0
- package/src/chat/map-openai-compatible-finish-reason.ts +19 -0
- package/src/chat/openai-compatible-api-types.ts +86 -0
- package/src/chat/openai-compatible-chat-language-model.test.ts +3292 -0
- package/src/chat/openai-compatible-chat-language-model.ts +830 -0
- package/src/chat/openai-compatible-chat-options.ts +34 -0
- package/src/chat/openai-compatible-metadata-extractor.ts +48 -0
- package/src/chat/openai-compatible-prepare-tools.test.ts +336 -0
- package/src/chat/openai-compatible-prepare-tools.ts +98 -0
- package/src/completion/convert-openai-compatible-completion-usage.ts +46 -0
- package/src/completion/convert-to-openai-compatible-completion-prompt.ts +93 -0
- package/src/completion/get-response-metadata.ts +15 -0
- package/src/completion/map-openai-compatible-finish-reason.ts +19 -0
- package/src/completion/openai-compatible-completion-language-model.test.ts +773 -0
- package/src/completion/openai-compatible-completion-language-model.ts +390 -0
- package/src/completion/openai-compatible-completion-options.ts +33 -0
- package/src/embedding/openai-compatible-embedding-model.test.ts +171 -0
- package/src/embedding/openai-compatible-embedding-model.ts +166 -0
- package/src/embedding/openai-compatible-embedding-options.ts +21 -0
- package/src/image/openai-compatible-image-model.test.ts +494 -0
- package/src/image/openai-compatible-image-model.ts +205 -0
- package/src/image/openai-compatible-image-settings.ts +1 -0
- package/src/index.ts +27 -0
- package/src/internal/index.ts +4 -0
- package/src/openai-compatible-error.ts +30 -0
- package/src/openai-compatible-provider.test.ts +329 -0
- package/src/openai-compatible-provider.ts +189 -0
- package/src/version.ts +5 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ai-sdk/openai-compatible
|
|
2
2
|
|
|
3
|
+
## 2.0.17
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 8dc54db: chore: add src folders to package bundle
|
|
8
|
+
|
|
9
|
+
## 2.0.16
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 78555ad: fix(openai-compatible): Accept non-OpenAI provider options
|
|
14
|
+
|
|
3
15
|
## 2.0.15
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -209,7 +209,12 @@ declare class OpenAICompatibleImageModel implements ImageModelV3 {
|
|
|
209
209
|
readonly specificationVersion = "v3";
|
|
210
210
|
readonly maxImagesPerCall = 10;
|
|
211
211
|
get provider(): string;
|
|
212
|
+
/**
|
|
213
|
+
* The provider options key used to extract provider-specific options.
|
|
214
|
+
*/
|
|
215
|
+
private get providerOptionsKey();
|
|
212
216
|
constructor(modelId: OpenAICompatibleImageModelId, config: OpenAICompatibleImageModelConfig);
|
|
217
|
+
private getArgs;
|
|
213
218
|
doGenerate({ prompt, n, size, aspectRatio, seed, providerOptions, headers, abortSignal, files, mask, }: Parameters<ImageModelV3['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV3['doGenerate']>>>;
|
|
214
219
|
}
|
|
215
220
|
|
package/dist/index.d.ts
CHANGED
|
@@ -209,7 +209,12 @@ declare class OpenAICompatibleImageModel implements ImageModelV3 {
|
|
|
209
209
|
readonly specificationVersion = "v3";
|
|
210
210
|
readonly maxImagesPerCall = 10;
|
|
211
211
|
get provider(): string;
|
|
212
|
+
/**
|
|
213
|
+
* The provider options key used to extract provider-specific options.
|
|
214
|
+
*/
|
|
215
|
+
private get providerOptionsKey();
|
|
212
216
|
constructor(modelId: OpenAICompatibleImageModelId, config: OpenAICompatibleImageModelConfig);
|
|
217
|
+
private getArgs;
|
|
213
218
|
doGenerate({ prompt, n, size, aspectRatio, seed, providerOptions, headers, abortSignal, files, mask, }: Parameters<ImageModelV3['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV3['doGenerate']>>>;
|
|
214
219
|
}
|
|
215
220
|
|
package/dist/index.js
CHANGED
|
@@ -1529,6 +1529,19 @@ var OpenAICompatibleImageModel = class {
|
|
|
1529
1529
|
get provider() {
|
|
1530
1530
|
return this.config.provider;
|
|
1531
1531
|
}
|
|
1532
|
+
/**
|
|
1533
|
+
* The provider options key used to extract provider-specific options.
|
|
1534
|
+
*/
|
|
1535
|
+
get providerOptionsKey() {
|
|
1536
|
+
return this.config.provider.split(".")[0].trim();
|
|
1537
|
+
}
|
|
1538
|
+
// TODO: deprecate non-camelCase keys and remove in future major version
|
|
1539
|
+
getArgs(providerOptions) {
|
|
1540
|
+
return {
|
|
1541
|
+
...providerOptions[this.providerOptionsKey],
|
|
1542
|
+
...providerOptions[toCamelCase(this.providerOptionsKey)]
|
|
1543
|
+
};
|
|
1544
|
+
}
|
|
1532
1545
|
async doGenerate({
|
|
1533
1546
|
prompt,
|
|
1534
1547
|
n,
|
|
@@ -1541,7 +1554,7 @@ var OpenAICompatibleImageModel = class {
|
|
|
1541
1554
|
files,
|
|
1542
1555
|
mask
|
|
1543
1556
|
}) {
|
|
1544
|
-
var _a, _b, _c, _d, _e
|
|
1557
|
+
var _a, _b, _c, _d, _e;
|
|
1545
1558
|
const warnings = [];
|
|
1546
1559
|
if (aspectRatio != null) {
|
|
1547
1560
|
warnings.push({
|
|
@@ -1554,6 +1567,7 @@ var OpenAICompatibleImageModel = class {
|
|
|
1554
1567
|
warnings.push({ type: "unsupported", feature: "seed" });
|
|
1555
1568
|
}
|
|
1556
1569
|
const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();
|
|
1570
|
+
const args = this.getArgs(providerOptions);
|
|
1557
1571
|
if (files != null && files.length > 0) {
|
|
1558
1572
|
const { value: response2, responseHeaders: responseHeaders2 } = await (0, import_provider_utils5.postFormDataToApi)({
|
|
1559
1573
|
url: this.config.url({
|
|
@@ -1568,10 +1582,10 @@ var OpenAICompatibleImageModel = class {
|
|
|
1568
1582
|
mask: mask != null ? await fileToBlob(mask) : void 0,
|
|
1569
1583
|
n,
|
|
1570
1584
|
size,
|
|
1571
|
-
...
|
|
1585
|
+
...args
|
|
1572
1586
|
}),
|
|
1573
1587
|
failedResponseHandler: (0, import_provider_utils5.createJsonErrorResponseHandler)(
|
|
1574
|
-
(
|
|
1588
|
+
(_d = this.config.errorStructure) != null ? _d : defaultOpenAICompatibleErrorStructure
|
|
1575
1589
|
),
|
|
1576
1590
|
successfulResponseHandler: (0, import_provider_utils5.createJsonResponseHandler)(
|
|
1577
1591
|
openaiCompatibleImageResponseSchema
|
|
@@ -1600,11 +1614,11 @@ var OpenAICompatibleImageModel = class {
|
|
|
1600
1614
|
prompt,
|
|
1601
1615
|
n,
|
|
1602
1616
|
size,
|
|
1603
|
-
...
|
|
1617
|
+
...args,
|
|
1604
1618
|
response_format: "b64_json"
|
|
1605
1619
|
},
|
|
1606
1620
|
failedResponseHandler: (0, import_provider_utils5.createJsonErrorResponseHandler)(
|
|
1607
|
-
(
|
|
1621
|
+
(_e = this.config.errorStructure) != null ? _e : defaultOpenAICompatibleErrorStructure
|
|
1608
1622
|
),
|
|
1609
1623
|
successfulResponseHandler: (0, import_provider_utils5.createJsonResponseHandler)(
|
|
1610
1624
|
openaiCompatibleImageResponseSchema
|
|
@@ -1633,12 +1647,15 @@ async function fileToBlob(file) {
|
|
|
1633
1647
|
const data = file.data instanceof Uint8Array ? file.data : (0, import_provider_utils5.convertBase64ToUint8Array)(file.data);
|
|
1634
1648
|
return new Blob([data], { type: file.mediaType });
|
|
1635
1649
|
}
|
|
1650
|
+
function toCamelCase(str) {
|
|
1651
|
+
return str.replace(/[_-]([a-z])/g, (g) => g[1].toUpperCase());
|
|
1652
|
+
}
|
|
1636
1653
|
|
|
1637
1654
|
// src/openai-compatible-provider.ts
|
|
1638
1655
|
var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
|
1639
1656
|
|
|
1640
1657
|
// src/version.ts
|
|
1641
|
-
var VERSION = true ? "2.0.
|
|
1658
|
+
var VERSION = true ? "2.0.17" : "0.0.0-test";
|
|
1642
1659
|
|
|
1643
1660
|
// src/openai-compatible-provider.ts
|
|
1644
1661
|
function createOpenAICompatible(options) {
|