New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@ai-sdk/openai

Package Overview
Dependencies
Maintainers
2
Versions
108
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ai-sdk/openai - npm Package Compare versions

Comparing version 1.0.7 to 1.0.8

9

CHANGELOG.md
# @ai-sdk/openai
## 1.0.8
### Patch Changes
- 09a9cab: feat (ai/core): add experimental generateImage function
- Updated dependencies [09a9cab]
- @ai-sdk/provider@1.0.2
- @ai-sdk/provider-utils@2.0.4
## 1.0.7

@@ -4,0 +13,0 @@

8

dist/index.d.ts

@@ -1,2 +0,2 @@

import { LanguageModelV1, ProviderV1, EmbeddingModelV1 } from '@ai-sdk/provider';
import { LanguageModelV1, ProviderV1, EmbeddingModelV1, ImageModelV1 } from '@ai-sdk/provider';
import { FetchFunction } from '@ai-sdk/provider-utils';

@@ -159,2 +159,4 @@

type OpenAIImageModelId = 'dall-e-3' | 'dall-e-2' | (string & {});
interface OpenAIProvider extends ProviderV1 {

@@ -190,2 +192,6 @@ (modelId: 'gpt-3.5-turbo-instruct', settings?: OpenAICompletionSettings): OpenAICompletionLanguageModel;

textEmbeddingModel(modelId: OpenAIEmbeddingModelId, settings?: OpenAIEmbeddingSettings): EmbeddingModelV1<string>;
/**
Creates a model for image generation.
*/
image(modelId: OpenAIImageModelId): ImageModelV1;
}

@@ -192,0 +198,0 @@ interface OpenAIProviderSettings {

@@ -29,3 +29,3 @@ "use strict";

// src/openai-provider.ts
var import_provider_utils6 = require("@ai-sdk/provider-utils");
var import_provider_utils7 = require("@ai-sdk/provider-utils");

@@ -1340,10 +1340,61 @@ // src/openai-chat-language-model.ts

// src/openai-image-model.ts
var import_provider_utils6 = require("@ai-sdk/provider-utils");
var import_zod5 = require("zod");
var OpenAIImageModel = class {
constructor(modelId, config) {
this.specificationVersion = "v1";
this.modelId = modelId;
this.config = config;
}
get provider() {
return this.config.provider;
}
async doGenerate({
prompt,
n,
size,
providerOptions,
headers,
abortSignal
}) {
var _a;
const { value: response } = await (0, import_provider_utils6.postJsonToApi)({
url: this.config.url({
path: "/images/generations",
modelId: this.modelId
}),
headers: (0, import_provider_utils6.combineHeaders)(this.config.headers(), headers),
body: {
model: this.modelId,
prompt,
n,
size,
...(_a = providerOptions.openai) != null ? _a : {},
response_format: "b64_json"
},
failedResponseHandler: openaiFailedResponseHandler,
successfulResponseHandler: (0, import_provider_utils6.createJsonResponseHandler)(
openaiImageResponseSchema
),
abortSignal,
fetch: this.config.fetch
});
return {
images: response.data.map((item) => item.b64_json)
};
}
};
var openaiImageResponseSchema = import_zod5.z.object({
data: import_zod5.z.array(import_zod5.z.object({ b64_json: import_zod5.z.string() }))
});
// src/openai-provider.ts
function createOpenAI(options = {}) {
var _a, _b, _c;
const baseURL = (_a = (0, import_provider_utils6.withoutTrailingSlash)(options.baseURL)) != null ? _a : "https://api.openai.com/v1";
const baseURL = (_a = (0, import_provider_utils7.withoutTrailingSlash)(options.baseURL)) != null ? _a : "https://api.openai.com/v1";
const compatibility = (_b = options.compatibility) != null ? _b : "compatible";
const providerName = (_c = options.name) != null ? _c : "openai";
const getHeaders = () => ({
Authorization: `Bearer ${(0, import_provider_utils6.loadApiKey)({
Authorization: `Bearer ${(0, import_provider_utils7.loadApiKey)({
apiKey: options.apiKey,

@@ -1377,2 +1428,8 @@ environmentVariableName: "OPENAI_API_KEY",

});
const createImageModel = (modelId) => new OpenAIImageModel(modelId, {
provider: `${providerName}.image`,
url: ({ path }) => `${baseURL}${path}`,
headers: getHeaders,
fetch: options.fetch
});
const createLanguageModel = (modelId, settings) => {

@@ -1401,2 +1458,3 @@ if (new.target) {

provider.textEmbeddingModel = createEmbeddingModel;
provider.image = createImageModel;
return provider;

@@ -1403,0 +1461,0 @@ }

21

internal/dist/index.d.ts

@@ -162,2 +162,12 @@ import { LanguageModelV1, EmbeddingModelV1 } from '@ai-sdk/provider';

type OpenAIConfig = {
provider: string;
url: (options: {
modelId: string;
path: string;
}) => string;
headers: () => Record<string, string | undefined>;
fetch?: FetchFunction;
};
type OpenAIEmbeddingModelId = 'text-embedding-3-small' | 'text-embedding-3-large' | 'text-embedding-ada-002' | (string & {});

@@ -185,11 +195,2 @@ interface OpenAIEmbeddingSettings {

type OpenAIEmbeddingConfig = {
provider: string;
url: (options: {
modelId: string;
path: string;
}) => string;
headers: () => Record<string, string | undefined>;
fetch?: FetchFunction;
};
declare class OpenAIEmbeddingModel implements EmbeddingModelV1<string> {

@@ -203,3 +204,3 @@ readonly specificationVersion = "v1";

get supportsParallelCalls(): boolean;
constructor(modelId: OpenAIEmbeddingModelId, settings: OpenAIEmbeddingSettings, config: OpenAIEmbeddingConfig);
constructor(modelId: OpenAIEmbeddingModelId, settings: OpenAIEmbeddingSettings, config: OpenAIConfig);
doEmbed({ values, headers, abortSignal, }: Parameters<EmbeddingModelV1<string>['doEmbed']>[0]): Promise<Awaited<ReturnType<EmbeddingModelV1<string>['doEmbed']>>>;

@@ -206,0 +207,0 @@ }

{
"name": "@ai-sdk/openai",
"version": "1.0.7",
"version": "1.0.8",
"license": "Apache-2.0",

@@ -29,4 +29,4 @@ "sideEffects": false,

"dependencies": {
"@ai-sdk/provider": "1.0.1",
"@ai-sdk/provider-utils": "2.0.3"
"@ai-sdk/provider": "1.0.2",
"@ai-sdk/provider-utils": "2.0.4"
},

@@ -33,0 +33,0 @@ "devDependencies": {

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

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc