From 012eabc996637d8afa88bfef2eb597567fd55c16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20JOURDIN?= <2821990+JJK801@users.noreply.github.com> Date: Fri, 1 Nov 2024 23:09:13 +0100 Subject: [PATCH] [Azure OpenAI] Make credentials optional when env variables are set (#3418) * Make Azure OpenAI credentials optional when env variables are set * Add documentation for env vars --- .../AzureChatOpenAI/AzureChatOpenAI.ts | 9 ++++++++- .../nodes/chatmodels/AzureChatOpenAI/README.md | 16 ++++++++++++++++ .../AzureOpenAIEmbedding/AzureOpenAIEmbedding.ts | 9 ++++++++- .../embeddings/AzureOpenAIEmbedding/README.md | 16 ++++++++++++++++ .../nodes/llms/Azure OpenAI/AzureOpenAI.ts | 9 ++++++++- .../components/nodes/llms/Azure OpenAI/README.md | 16 ++++++++++++++++ 6 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 packages/components/nodes/chatmodels/AzureChatOpenAI/README.md create mode 100644 packages/components/nodes/embeddings/AzureOpenAIEmbedding/README.md create mode 100644 packages/components/nodes/llms/Azure OpenAI/README.md diff --git a/packages/components/nodes/chatmodels/AzureChatOpenAI/AzureChatOpenAI.ts b/packages/components/nodes/chatmodels/AzureChatOpenAI/AzureChatOpenAI.ts index b2445cc55..d974a8b03 100644 --- a/packages/components/nodes/chatmodels/AzureChatOpenAI/AzureChatOpenAI.ts +++ b/packages/components/nodes/chatmodels/AzureChatOpenAI/AzureChatOpenAI.ts @@ -6,6 +6,12 @@ import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../ import { ChatOpenAI } from '../ChatOpenAI/FlowiseChatOpenAI' import { getModels, MODEL_TYPE } from '../../../src/modelLoader' +const serverCredentialsExists = + !!process.env.AZURE_OPENAI_API_KEY && + !!process.env.AZURE_OPENAI_API_INSTANCE_NAME && + !!process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME && + !!process.env.AZURE_OPENAI_API_VERSION + class AzureChatOpenAI_ChatModels implements INode { label: string name: string @@ -31,7 +37,8 @@ class AzureChatOpenAI_ChatModels implements INode { label: 'Connect Credential', name: 'credential', type: 'credential', - credentialNames: ['azureOpenAIApi'] + credentialNames: ['azureOpenAIApi'], + optional: serverCredentialsExists } this.inputs = [ { diff --git a/packages/components/nodes/chatmodels/AzureChatOpenAI/README.md b/packages/components/nodes/chatmodels/AzureChatOpenAI/README.md new file mode 100644 index 000000000..f12f42dc1 --- /dev/null +++ b/packages/components/nodes/chatmodels/AzureChatOpenAI/README.md @@ -0,0 +1,16 @@ +# Azure OpenAI Chat Model + +Azure OpenAI Chat Model integration for Flowise + +## 🌱 Env Variables + +| Variable | Description | Type | Default | +| ---------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------ | ----------------------------------- | +| AZURE_OPENAI_API_KEY | Default `credential.azureOpenAIApiKey` for Azure OpenAI Model | String | | +| AZURE_OPENAI_API_INSTANCE_NAME | Default `credential.azureOpenAIApiInstanceName` for Azure OpenAI Model | String | | +| AZURE_OPENAI_API_DEPLOYMENT_NAME | Default `credential.azureOpenAIApiDeploymentName` for Azure OpenAI Model | String | | +| AZURE_OPENAI_API_VERSION | Default `credential.azureOpenAIApiVersion` for Azure OpenAI Model | String | | + +## License + +Source code in this repository is made available under the [Apache License Version 2.0](https://github.com/FlowiseAI/Flowise/blob/master/LICENSE.md). \ No newline at end of file diff --git a/packages/components/nodes/embeddings/AzureOpenAIEmbedding/AzureOpenAIEmbedding.ts b/packages/components/nodes/embeddings/AzureOpenAIEmbedding/AzureOpenAIEmbedding.ts index e39e843dc..b6d6c7429 100644 --- a/packages/components/nodes/embeddings/AzureOpenAIEmbedding/AzureOpenAIEmbedding.ts +++ b/packages/components/nodes/embeddings/AzureOpenAIEmbedding/AzureOpenAIEmbedding.ts @@ -2,6 +2,12 @@ import { AzureOpenAIInput, OpenAIEmbeddings, OpenAIEmbeddingsParams } from '@lan import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +const serverCredentialsExists = + !!process.env.AZURE_OPENAI_API_KEY && + !!process.env.AZURE_OPENAI_API_INSTANCE_NAME && + (!!process.env.AZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME || !!process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME) && + !!process.env.AZURE_OPENAI_API_VERSION + class AzureOpenAIEmbedding_Embeddings implements INode { label: string name: string @@ -27,7 +33,8 @@ class AzureOpenAIEmbedding_Embeddings implements INode { label: 'Connect Credential', name: 'credential', type: 'credential', - credentialNames: ['azureOpenAIApi'] + credentialNames: ['azureOpenAIApi'], + optional: serverCredentialsExists } this.inputs = [ { diff --git a/packages/components/nodes/embeddings/AzureOpenAIEmbedding/README.md b/packages/components/nodes/embeddings/AzureOpenAIEmbedding/README.md new file mode 100644 index 000000000..c3bd59e54 --- /dev/null +++ b/packages/components/nodes/embeddings/AzureOpenAIEmbedding/README.md @@ -0,0 +1,16 @@ +# Azure OpenAI Embedding Model + +Azure OpenAI Embedding Model integration for Flowise + +## 🌱 Env Variables + +| Variable | Description | Type | Default | +| ---------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------ | ----------------------------------- | +| AZURE_OPENAI_API_KEY | Default `credential.azureOpenAIApiKey` for Azure OpenAI Model | String | | +| AZURE_OPENAI_API_INSTANCE_NAME | Default `credential.azureOpenAIApiInstanceName` for Azure OpenAI Model | String | | +| AZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME | Default `credential.azureOpenAIApiDeploymentName` for Azure OpenAI Model | String | | +| AZURE_OPENAI_API_VERSION | Default `credential.azureOpenAIApiVersion` for Azure OpenAI Model | String | | + +## License + +Source code in this repository is made available under the [Apache License Version 2.0](https://github.com/FlowiseAI/Flowise/blob/master/LICENSE.md). \ No newline at end of file diff --git a/packages/components/nodes/llms/Azure OpenAI/AzureOpenAI.ts b/packages/components/nodes/llms/Azure OpenAI/AzureOpenAI.ts index 099669937..8dfd74b70 100644 --- a/packages/components/nodes/llms/Azure OpenAI/AzureOpenAI.ts +++ b/packages/components/nodes/llms/Azure OpenAI/AzureOpenAI.ts @@ -5,6 +5,12 @@ import { ICommonObject, INode, INodeData, INodeOptionsValue, INodeParams } from import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { getModels, MODEL_TYPE } from '../../../src/modelLoader' +const serverCredentialsExists = + !!process.env.AZURE_OPENAI_API_KEY && + !!process.env.AZURE_OPENAI_API_INSTANCE_NAME && + !!process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME && + !!process.env.AZURE_OPENAI_API_VERSION + class AzureOpenAI_LLMs implements INode { label: string name: string @@ -30,7 +36,8 @@ class AzureOpenAI_LLMs implements INode { label: 'Connect Credential', name: 'credential', type: 'credential', - credentialNames: ['azureOpenAIApi'] + credentialNames: ['azureOpenAIApi'], + optional: serverCredentialsExists } this.inputs = [ { diff --git a/packages/components/nodes/llms/Azure OpenAI/README.md b/packages/components/nodes/llms/Azure OpenAI/README.md new file mode 100644 index 000000000..de47c4dd8 --- /dev/null +++ b/packages/components/nodes/llms/Azure OpenAI/README.md @@ -0,0 +1,16 @@ +# Azure OpenAI LLM + +Azure OpenAI LLM integration for Flowise + +## 🌱 Env Variables + +| Variable | Description | Type | Default | +| ---------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------ | ----------------------------------- | +| AZURE_OPENAI_API_KEY | Default `credential.azureOpenAIApiKey` for Azure OpenAI LLM | String | | +| AZURE_OPENAI_API_INSTANCE_NAME | Default `credential.azureOpenAIApiInstanceName` for Azure OpenAI LLM | String | | +| AZURE_OPENAI_API_DEPLOYMENT_NAME | Default `credential.azureOpenAIApiDeploymentName` for Azure OpenAI LLM | String | | +| AZURE_OPENAI_API_VERSION | Default `credential.azureOpenAIApiVersion` for Azure OpenAI LLM | String | | + +## License + +Source code in this repository is made available under the [Apache License Version 2.0](https://github.com/FlowiseAI/Flowise/blob/master/LICENSE.md). \ No newline at end of file