From 4d90187484aed7ec11dd4f6257ee0cc003baf621 Mon Sep 17 00:00:00 2001 From: Rodrigo Rodriguez Date: Fri, 24 May 2024 20:57:48 -0300 Subject: [PATCH] new(all): Azure OpenAI added as new LLM provider. --- packages/core.gbapp/services/GBDeployer.ts | 19 +++++++++++++++++-- packages/gpt.gblib/services/ChatServices.ts | 4 ++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/packages/core.gbapp/services/GBDeployer.ts b/packages/core.gbapp/services/GBDeployer.ts index 03b376dd..9b9bc6cd 100644 --- a/packages/core.gbapp/services/GBDeployer.ts +++ b/packages/core.gbapp/services/GBDeployer.ts @@ -314,10 +314,25 @@ export class GBDeployer implements IGBDeployer { public async loadOrCreateEmptyVectorStore(min: GBMinInstance): Promise { let vectorStore: HNSWLib; + const azureOpenAIKey = await min.core.getParam(min.instance, 'Azure Open AI Key', null); + const azureOpenAIEndpoint = await min.core.getParam(min.instance, 'Azure Open AI Endpoint', null); + const azureOpenAIDeployment = await min.core.getParam(min.instance, 'Azure Open AI Deployment', null); + + let embedding; + if (azureOpenAIKey) { + embedding = new OpenAIEmbeddings({ maxConcurrency: 5, + azureOpenAIApiKey: azureOpenAIKey, + azureOpenAIApiDeploymentName: azureOpenAIDeployment + }); + }else{ + embedding = new OpenAIEmbeddings({ maxConcurrency: 5 }) + } + + try { - vectorStore = await HNSWLib.load(min['vectorStorePath'], new OpenAIEmbeddings({ maxConcurrency: 5 })); + vectorStore = await HNSWLib.load(min['vectorStorePath'], embedding); } catch { - vectorStore = new HNSWLib(new OpenAIEmbeddings({ maxConcurrency: 5 }), { + vectorStore = new HNSWLib(embedding, { space: 'cosine', numDimensions: 1536, }); diff --git a/packages/gpt.gblib/services/ChatServices.ts b/packages/gpt.gblib/services/ChatServices.ts index e16040be..6b927db7 100644 --- a/packages/gpt.gblib/services/ChatServices.ts +++ b/packages/gpt.gblib/services/ChatServices.ts @@ -293,8 +293,8 @@ export class ChatServices { if (azureOpenAIKey) { model = new AzureOpenAI({ - azureOpenAIEndpoint: azureOpenAIKey, - apiKey: azureOpenAIEndpoint, + azureOpenAIEndpoint: azureOpenAIEndpoint, + apiKey: azureOpenAIKey, azureOpenAIApiDeploymentName: azureOpenAIDeployment }); } else {