@@ -5,14 +5,16 @@ import {
55import {
66 combineHeaders ,
77 createJsonResponseHandler ,
8+ parseProviderOptions ,
89 postJsonToApi ,
910} from '@ai-sdk/provider-utils' ;
1011import { z } from 'zod' ;
1112import { OpenAIConfig } from './openai-config' ;
1213import {
1314 OpenAIEmbeddingModelId ,
15+ openaiEmbeddingProviderOptions ,
1416 OpenAIEmbeddingSettings ,
15- } from './openai-embedding-settings ' ;
17+ } from './openai-embedding-options ' ;
1618import { openaiFailedResponseHandler } from './openai-error' ;
1719
1820export class OpenAIEmbeddingModel implements EmbeddingModelV2 < string > {
@@ -48,6 +50,7 @@ export class OpenAIEmbeddingModel implements EmbeddingModelV2<string> {
4850 values,
4951 headers,
5052 abortSignal,
53+ providerOptions,
5154 } : Parameters < EmbeddingModelV2 < string > [ 'doEmbed' ] > [ 0 ] ) : Promise <
5255 Awaited < ReturnType < EmbeddingModelV2 < string > [ 'doEmbed' ] > >
5356 > {
@@ -60,6 +63,14 @@ export class OpenAIEmbeddingModel implements EmbeddingModelV2<string> {
6063 } ) ;
6164 }
6265
66+ // Parse provider options
67+ const openaiOptions =
68+ parseProviderOptions ( {
69+ provider : 'openai' ,
70+ providerOptions,
71+ schema : openaiEmbeddingProviderOptions ,
72+ } ) ?? { } ;
73+
6374 const {
6475 responseHeaders,
6576 value : response ,
@@ -74,8 +85,8 @@ export class OpenAIEmbeddingModel implements EmbeddingModelV2<string> {
7485 model : this . modelId ,
7586 input : values ,
7687 encoding_format : 'float' ,
77- dimensions : this . settings . dimensions ,
78- user : this . settings . user ,
88+ dimensions : openaiOptions . dimensions ,
89+ user : openaiOptions . user ,
7990 } ,
8091 failedResponseHandler : openaiFailedResponseHandler ,
8192 successfulResponseHandler : createJsonResponseHandler (
0 commit comments