@ai-sdk/fireworks
Advanced tools
Comparing version 0.0.9 to 0.0.10
# @ai-sdk/fireworks | ||
## 0.0.10 | ||
### Patch Changes | ||
- 90fb95a: chore (provider-utils): switch to unified test server | ||
- e6dfef4: feat (provider/fireworks): Support add'l image models. | ||
- Updated dependencies [90fb95a] | ||
- Updated dependencies [e6dfef4] | ||
- Updated dependencies [6636db6] | ||
- @ai-sdk/provider-utils@2.0.7 | ||
- @ai-sdk/openai-compatible@0.0.15 | ||
## 0.0.9 | ||
@@ -4,0 +16,0 @@ |
@@ -18,3 +18,3 @@ import { LanguageModelV1, EmbeddingModelV1, ImageModelV1 } from '@ai-sdk/provider'; | ||
type FireworksImageModelId = 'accounts/fireworks/models/flux-1-dev-fp8' | 'accounts/fireworks/models/flux-1-schnell-fp8' | (string & {}); | ||
type FireworksImageModelId = 'accounts/fireworks/models/flux-1-dev-fp8' | 'accounts/fireworks/models/flux-1-schnell-fp8' | 'accounts/fireworks/models/playground-v2-5-1024px-aesthetic' | 'accounts/fireworks/models/japanese-stable-diffusion-xl' | 'accounts/fireworks/models/playground-v2-1024px-aesthetic' | 'accounts/fireworks/models/SSD-1B' | 'accounts/fireworks/models/stable-diffusion-xl-1024-v1-0' | (string & {}); | ||
@@ -31,3 +31,4 @@ type FireworksErrorData = z.infer<typeof fireworksErrorSchema>; | ||
/** | ||
Fireworks API key. | ||
Fireworks API key. Default value is taken from the `FIREWORKS_API_KEY` | ||
environment variable. | ||
*/ | ||
@@ -34,0 +35,0 @@ apiKey?: string; |
@@ -36,2 +36,40 @@ "use strict"; | ||
var import_provider_utils = require("@ai-sdk/provider-utils"); | ||
var modelToBackendConfig = { | ||
"accounts/fireworks/models/flux-1-dev-fp8": { | ||
urlFormat: "workflows" | ||
}, | ||
"accounts/fireworks/models/flux-1-schnell-fp8": { | ||
urlFormat: "workflows" | ||
}, | ||
"accounts/fireworks/models/playground-v2-5-1024px-aesthetic": { | ||
urlFormat: "image_generation", | ||
supportsSize: true | ||
}, | ||
"accounts/fireworks/models/japanese-stable-diffusion-xl": { | ||
urlFormat: "image_generation", | ||
supportsSize: true | ||
}, | ||
"accounts/fireworks/models/playground-v2-1024px-aesthetic": { | ||
urlFormat: "image_generation", | ||
supportsSize: true | ||
}, | ||
"accounts/fireworks/models/stable-diffusion-xl-1024-v1-0": { | ||
urlFormat: "image_generation", | ||
supportsSize: true | ||
}, | ||
"accounts/fireworks/models/SSD-1B": { | ||
urlFormat: "image_generation", | ||
supportsSize: true | ||
} | ||
}; | ||
function getUrlForModel(baseUrl, modelId) { | ||
var _a; | ||
switch ((_a = modelToBackendConfig[modelId]) == null ? void 0 : _a.urlFormat) { | ||
case "image_generation": | ||
return `${baseUrl}/image_generation/${modelId}`; | ||
case "workflows": | ||
default: | ||
return `${baseUrl}/workflows/${modelId}/text_to_image`; | ||
} | ||
} | ||
var createBinaryResponseHandler = () => async ({ response, url, requestBodyValues }) => { | ||
@@ -86,2 +124,22 @@ const responseHeaders = (0, import_provider_utils.extractResponseHeaders)(response); | ||
}; | ||
async function postImageToApi(params) { | ||
var _a, _b; | ||
const splitSize = (_a = params.size) == null ? void 0 : _a.split("x"); | ||
const { value: response } = await (0, import_provider_utils.postJsonToApi)({ | ||
url: getUrlForModel(params.baseUrl, params.modelId), | ||
headers: params.headers, | ||
body: { | ||
prompt: params.prompt, | ||
aspect_ratio: params.aspectRatio, | ||
seed: params.seed, | ||
...splitSize && { width: splitSize[0], height: splitSize[1] }, | ||
...(_b = params.providerOptions.fireworks) != null ? _b : {} | ||
}, | ||
failedResponseHandler: statusCodeErrorResponseHandler, | ||
successfulResponseHandler: createBinaryResponseHandler(), | ||
abortSignal: params.abortSignal, | ||
fetch: params.fetch | ||
}); | ||
return response; | ||
} | ||
var FireworksImageModel = class { | ||
@@ -107,5 +165,5 @@ constructor(modelId, config) { | ||
}) { | ||
var _a; | ||
const warnings = []; | ||
if (size != null) { | ||
const backendConfig = modelToBackendConfig[this.modelId]; | ||
if (!(backendConfig == null ? void 0 : backendConfig.supportsSize) && size != null) { | ||
warnings.push({ | ||
@@ -117,15 +175,18 @@ type: "unsupported-setting", | ||
} | ||
const url = `${this.config.baseURL}/workflows/${this.modelId}/text_to_image`; | ||
const body = { | ||
if ((backendConfig == null ? void 0 : backendConfig.supportsSize) && aspectRatio != null) { | ||
warnings.push({ | ||
type: "unsupported-setting", | ||
setting: "aspectRatio", | ||
details: "This model does not support the `aspectRatio` option." | ||
}); | ||
} | ||
const response = await postImageToApi({ | ||
baseUrl: this.config.baseURL, | ||
prompt, | ||
aspect_ratio: aspectRatio, | ||
aspectRatio, | ||
size, | ||
seed, | ||
...(_a = providerOptions.fireworks) != null ? _a : {} | ||
}; | ||
const { value: response } = await (0, import_provider_utils.postJsonToApi)({ | ||
url, | ||
modelId: this.modelId, | ||
providerOptions, | ||
headers: (0, import_provider_utils.combineHeaders)(this.config.headers(), headers), | ||
body, | ||
failedResponseHandler: statusCodeErrorResponseHandler, | ||
successfulResponseHandler: createBinaryResponseHandler(), | ||
abortSignal, | ||
@@ -132,0 +193,0 @@ fetch: this.config.fetch |
{ | ||
"name": "@ai-sdk/fireworks", | ||
"version": "0.0.9", | ||
"version": "0.0.10", | ||
"license": "Apache-2.0", | ||
@@ -22,5 +22,5 @@ "sideEffects": false, | ||
"dependencies": { | ||
"@ai-sdk/openai-compatible": "0.0.14", | ||
"@ai-sdk/openai-compatible": "0.0.15", | ||
"@ai-sdk/provider": "1.0.4", | ||
"@ai-sdk/provider-utils": "2.0.6" | ||
"@ai-sdk/provider-utils": "2.0.7" | ||
}, | ||
@@ -27,0 +27,0 @@ "devDependencies": { |
# AI SDK - Fireworks Provider | ||
The **[Fireworks provider](https://sdk.vercel.ai/providers/ai-sdk-providers/fireworks)** for the [AI SDK](https://sdk.vercel.ai/docs) contains language model support for the [Fireworks](https://fireworks.ai) platform. | ||
The **[Fireworks provider](https://sdk.vercel.ai/providers/ai-sdk-providers/fireworks)** for the [AI SDK](https://sdk.vercel.ai/docs) contains language model and image model support for the [Fireworks](https://fireworks.ai) platform. | ||
@@ -9,5 +9,5 @@ ## Setup | ||
\```bash | ||
```bash | ||
npm i @ai-sdk/fireworks | ||
\``` | ||
``` | ||
@@ -18,9 +18,9 @@ ## Provider Instance | ||
\```ts | ||
```ts | ||
import { fireworks } from '@ai-sdk/fireworks'; | ||
\``` | ||
``` | ||
## Example | ||
## Language Model Example | ||
\```ts | ||
```ts | ||
import { fireworks } from '@ai-sdk/fireworks'; | ||
@@ -30,9 +30,25 @@ import { generateText } from 'ai'; | ||
const { text } = await generateText({ | ||
model: fireworks('accounts/fireworks/models/llama-v2-13b-chat'), | ||
prompt: 'Write a JavaScript function that sorts a list:', | ||
model: fireworks('accounts/fireworks/models/deepseek-v3'), | ||
prompt: 'Write a JavaScript function that sorts a list:', | ||
}); | ||
\``` | ||
``` | ||
## Image Model Examples | ||
```ts | ||
import { fireworks } from '@ai-sdk/fireworks'; | ||
import { experimental_generateImage as generateImage } from 'ai'; | ||
import fs from 'fs'; | ||
const { image } = await generateImage({ | ||
model: fireworks.image('accounts/fireworks/models/flux-1-dev-fp8'), | ||
prompt: 'A serene mountain landscape at sunset', | ||
}); | ||
const filename = `image-${Date.now()}.png`; | ||
fs.writeFileSync(filename, image.uint8Array); | ||
console.log(`Image saved to ${filename}`); | ||
``` | ||
## Documentation | ||
Please check out the **[Fireworks provider](https://sdk.vercel.ai/providers/ai-sdk-providers/fireworks)** for more information. |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
59910
553
52
+ Added@ai-sdk/openai-compatible@0.0.15(transitive)
+ Added@ai-sdk/provider-utils@2.0.7(transitive)
- Removed@ai-sdk/openai-compatible@0.0.14(transitive)
- Removed@ai-sdk/provider-utils@2.0.6(transitive)
Updated@ai-sdk/provider-utils@2.0.7