diff --git a/src/collections/config/types/generative.ts b/src/collections/config/types/generative.ts index 4ad0dc43..06489bb5 100644 --- a/src/collections/config/types/generative.ts +++ b/src/collections/config/types/generative.ts @@ -75,8 +75,9 @@ export type GenerativeOpenAIConfig = GenerativeOpenAIConfigBase & { }; export type GenerativeAzureOpenAIConfig = GenerativeOpenAIConfigBase & { - resourceName: string; - deploymentId: string; + resourceName?: string; + deploymentId?: string; + isAzure?: true; }; export type GenerativePaLMConfig = { diff --git a/src/collections/config/types/vectorizer.ts b/src/collections/config/types/vectorizer.ts index 208125fe..b174eb1e 100644 --- a/src/collections/config/types/vectorizer.ts +++ b/src/collections/config/types/vectorizer.ts @@ -180,10 +180,12 @@ export type Text2VecAWSConfig = { export type Text2VecAzureOpenAIConfig = { /** The base URL to use where API requests should go. */ baseURL?: string; - /** The deployment ID to use */ - deploymentId: string; - /** The resource name to use. */ - resourceName: string; + /** The deployment ID to use. If left empty, must be provided via X-Azure-Deployment-Id header */ + deploymentId?: string; + /** The resource name to use. If left empty, must be provided via X-Azure-Resource-Name header */ + resourceName?: string; + /** Will automatically be set to true. You don't need to set this manually. */ + isAzure?: true; /** Whether to vectorize the collection name. */ vectorizeCollectionName?: boolean; }; diff --git a/src/collections/configure/generative.ts b/src/collections/configure/generative.ts index ebe8b15a..95eb3e5f 100644 --- a/src/collections/configure/generative.ts +++ b/src/collections/configure/generative.ts @@ -89,6 +89,7 @@ export default { return { name: 'generative-openai', config: { + isAzure: true, deploymentId: config.deploymentId, resourceName: config.resourceName, baseURL: config.baseURL, diff --git a/src/collections/configure/types/vectorizer.ts b/src/collections/configure/types/vectorizer.ts index 46b88cc3..67d55b12 100644 --- a/src/collections/configure/types/vectorizer.ts +++ b/src/collections/configure/types/vectorizer.ts @@ -196,7 +196,7 @@ export type VectorizerConfigCreateType = V extends 'img2vec-neural' : V extends 'text2vec-openai' ? Text2VecOpenAIConfigCreate | undefined : V extends 'text2vec-azure-openai' - ? Text2VecAzureOpenAIConfigCreate + ? Text2VecAzureOpenAIConfigCreate | undefined : V extends 'text2vec-palm' ? Text2VecPalmConfigCreate | undefined : V extends 'text2vec-transformers' diff --git a/src/collections/configure/unit.test.ts b/src/collections/configure/unit.test.ts index fbd28df3..546230ef 100644 --- a/src/collections/configure/unit.test.ts +++ b/src/collections/configure/unit.test.ts @@ -597,6 +597,24 @@ describe('Unit testing of the vectorizer factory class', () => { config: { deploymentId: 'deployment-id', resourceName: 'resource-name', + isAzure: true, + }, + }, + }); + }); + + it('should create the correct Text2VecAzureOpenAIConfig type with just isAzure: true', () => { + const config = configure.vectorizer.text2VecAzureOpenAI(); + expect(config).toEqual>({ + name: undefined, + vectorIndex: { + name: 'hnsw', + config: undefined, + }, + vectorizer: { + name: 'text2vec-azure-openai', + config: { + isAzure: true, }, }, }); @@ -623,6 +641,7 @@ describe('Unit testing of the vectorizer factory class', () => { deploymentId: 'deployment-id', resourceName: 'resource-name', vectorizeCollectionName: true, + isAzure: true, }, }, }); @@ -1242,6 +1261,7 @@ describe('Unit testing of the generative factory class', () => { expect(config).toEqual>({ name: 'generative-openai', config: { + isAzure: true, resourceName: 'resource-name', deploymentId: 'deployment-id', }, @@ -1262,6 +1282,7 @@ describe('Unit testing of the generative factory class', () => { expect(config).toEqual>({ name: 'generative-openai', config: { + isAzure: true, resourceName: 'resource-name', deploymentId: 'deployment-id', baseURL: 'base-url', diff --git a/src/collections/configure/vectorizer.ts b/src/collections/configure/vectorizer.ts index 61477951..46d26133 100644 --- a/src/collections/configure/vectorizer.ts +++ b/src/collections/configure/vectorizer.ts @@ -245,15 +245,18 @@ export const vectorizer = { * @returns {VectorConfigCreate, N, I, 'text2vec-azure-openai'>} The configuration object. */ text2VecAzureOpenAI: ( - opts: ConfigureTextVectorizerOptions + opts?: ConfigureTextVectorizerOptions ): VectorConfigCreate, N, I, 'text2vec-azure-openai'> => { - const { name, sourceProperties, vectorIndexConfig, ...config } = opts; + const { name, sourceProperties, vectorIndexConfig, ...config } = opts || {}; return makeVectorizer(name, { sourceProperties, vectorIndexConfig, vectorizerConfig: { name: 'text2vec-azure-openai', - config, + config: { + ...config, + isAzure: true, + }, }, }); },