From b288ae3df36335bacc3ee453d0ac8c4c1d0cc838 Mon Sep 17 00:00:00 2001 From: Yassine Selmi Date: Wed, 20 Dec 2023 17:55:47 +0000 Subject: [PATCH 1/6] Added Azure OpenAI --- .../components/llms/AzureChatOpenAI.py | 83 +++++++++++++++++++ src/frontend/src/utils/styleUtils.ts | 1 + 2 files changed, 84 insertions(+) create mode 100644 src/backend/langflow/components/llms/AzureChatOpenAI.py diff --git a/src/backend/langflow/components/llms/AzureChatOpenAI.py b/src/backend/langflow/components/llms/AzureChatOpenAI.py new file mode 100644 index 000000000..3ebaab32b --- /dev/null +++ b/src/backend/langflow/components/llms/AzureChatOpenAI.py @@ -0,0 +1,83 @@ +from typing import Optional +from langflow import CustomComponent +from langchain.llms.base import BaseLanguageModel +from langchain.chat_models.azure_openai import AzureChatOpenAI + +class AzureChatOpenAIComponent(CustomComponent): + display_name: str = "AzureChatOpenAI" + description: str = "LLM model from Azure OpenAI." + + AZURE_OPENAI_MODELS = [ + "gpt-35-turbo", + "gpt-35-turbo-16k", + "gpt-35-turbo-instruct", + "gpt-4", + "gpt-4-32k", + "gpt-4-vision", + ] + + def build_config(self): + return { + "model": { + "display_name": "Model Name", + "value": "gpt-35-turbo", + "options": self.AZURE_OPENAI_MODELS, + "required": True, + }, + "azure_endpoint": { + "display_name": "Azure Endpoint", + "required": True, + "info": "Your Azure endpoint, including the resource.. Example: `https://example-resource.azure.openai.com/`" + }, + "azure_deployment": { + "display_name": "Deployment Name", + "required": True, + }, + "api_version": { + "display_name": "OpenAI API Version", + "value": "2023-05-15", + "required": True, + "advanced": True, + }, + "api_key": { + "display_name": "OpenAI API Key", + "required": True, + "password": True + }, + "temperature": { + "display_name": "Temperature", + "value": 0.7, + "field_type": "float", + "required": False, + }, + "max_tokens": { + "display_name": "Max Tokens", + "value": 1000, + "required": False, + "field_type": "int", + "advanced": True, + }, + "code": {"show": False}, + } + + def build( + self, + model: str, + azure_endpoint: str, + azure_deployment: str, + api_version: str, + api_key: Optional[str] = "2023-05-15", + temperature: float = 0.7, + max_tokens: Optional[int] = 1000, + ) -> BaseLanguageModel: + + + return AzureChatOpenAI( + model=model, + azure_endpoint=azure_endpoint, + azure_deployment=azure_deployment, + api_version=api_version, + api_key=api_key, + temperature=temperature, + max_tokens=max_tokens + ) diff --git a/src/frontend/src/utils/styleUtils.ts b/src/frontend/src/utils/styleUtils.ts index 4c1151cc3..4e67e0eb9 100644 --- a/src/frontend/src/utils/styleUtils.ts +++ b/src/frontend/src/utils/styleUtils.ts @@ -251,6 +251,7 @@ export const nodeIconsLucide: iconsType = { MongoDBAtlasVectorSearch: MongoDBIcon, NotionDirectoryLoader: NotionIcon, ChatOpenAI: OpenAiIcon, + AzureChatOpenAIComponent: OpenAiIcon, OpenAI: OpenAiIcon, OpenAIEmbeddings: OpenAiIcon, Pinecone: PineconeIcon, From 28fe0982e6f5688528137810603b3f2cbf8c2427 Mon Sep 17 00:00:00 2001 From: Yassine Selmi Date: Wed, 20 Dec 2023 18:44:58 +0000 Subject: [PATCH 2/6] Added documentation link --- src/backend/langflow/components/llms/AzureChatOpenAI.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/langflow/components/llms/AzureChatOpenAI.py b/src/backend/langflow/components/llms/AzureChatOpenAI.py index 3ebaab32b..04b385c69 100644 --- a/src/backend/langflow/components/llms/AzureChatOpenAI.py +++ b/src/backend/langflow/components/llms/AzureChatOpenAI.py @@ -6,6 +6,7 @@ from langchain.chat_models.azure_openai import AzureChatOpenAI class AzureChatOpenAIComponent(CustomComponent): display_name: str = "AzureChatOpenAI" description: str = "LLM model from Azure OpenAI." + documentation: str = "https://python.langchain.com/docs/integrations/llms/azure_openai" AZURE_OPENAI_MODELS = [ "gpt-35-turbo", From abd9c67d3c9426b676c321a68d24e20717f56df1 Mon Sep 17 00:00:00 2001 From: Yassine Selmi Date: Wed, 20 Dec 2023 20:01:30 +0000 Subject: [PATCH 3/6] Fixed wrong style attribute --- src/frontend/src/utils/styleUtils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/src/utils/styleUtils.ts b/src/frontend/src/utils/styleUtils.ts index 4e67e0eb9..a7940b67d 100644 --- a/src/frontend/src/utils/styleUtils.ts +++ b/src/frontend/src/utils/styleUtils.ts @@ -251,7 +251,7 @@ export const nodeIconsLucide: iconsType = { MongoDBAtlasVectorSearch: MongoDBIcon, NotionDirectoryLoader: NotionIcon, ChatOpenAI: OpenAiIcon, - AzureChatOpenAIComponent: OpenAiIcon, + AzureChatOpenAI: OpenAiIcon, OpenAI: OpenAiIcon, OpenAIEmbeddings: OpenAiIcon, Pinecone: PineconeIcon, From 1b4a7dc949287accf30c5652a7c0827adf8ef3b5 Mon Sep 17 00:00:00 2001 From: Yassine Selmi Date: Wed, 20 Dec 2023 20:06:57 +0000 Subject: [PATCH 4/6] Fixed default param value --- src/backend/langflow/components/llms/AzureChatOpenAI.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/langflow/components/llms/AzureChatOpenAI.py b/src/backend/langflow/components/llms/AzureChatOpenAI.py index 04b385c69..21a6e1189 100644 --- a/src/backend/langflow/components/llms/AzureChatOpenAI.py +++ b/src/backend/langflow/components/llms/AzureChatOpenAI.py @@ -66,8 +66,8 @@ class AzureChatOpenAIComponent(CustomComponent): model: str, azure_endpoint: str, azure_deployment: str, - api_version: str, - api_key: Optional[str] = "2023-05-15", + api_key: str, + api_version: Optional[str] = "2023-05-15", temperature: float = 0.7, max_tokens: Optional[int] = 1000, ) -> BaseLanguageModel: From 60d715f61d9440af251d9ce9f046b913c2d340b7 Mon Sep 17 00:00:00 2001 From: Yassine Selmi Date: Wed, 20 Dec 2023 20:07:41 +0000 Subject: [PATCH 5/6] Lint --- src/backend/langflow/components/llms/AzureChatOpenAI.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/langflow/components/llms/AzureChatOpenAI.py b/src/backend/langflow/components/llms/AzureChatOpenAI.py index 21a6e1189..9b4064cc1 100644 --- a/src/backend/langflow/components/llms/AzureChatOpenAI.py +++ b/src/backend/langflow/components/llms/AzureChatOpenAI.py @@ -67,7 +67,7 @@ class AzureChatOpenAIComponent(CustomComponent): azure_endpoint: str, azure_deployment: str, api_key: str, - api_version: Optional[str] = "2023-05-15", + api_version: str = "2023-05-15", temperature: float = 0.7, max_tokens: Optional[int] = 1000, ) -> BaseLanguageModel: From 3f7b43d2194da0214199152115feb675c40605a3 Mon Sep 17 00:00:00 2001 From: Yassine Selmi Date: Wed, 20 Dec 2023 20:09:14 +0000 Subject: [PATCH 6/6] Rename attributes --- src/backend/langflow/components/llms/AzureChatOpenAI.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/langflow/components/llms/AzureChatOpenAI.py b/src/backend/langflow/components/llms/AzureChatOpenAI.py index 9b4064cc1..21188d0c3 100644 --- a/src/backend/langflow/components/llms/AzureChatOpenAI.py +++ b/src/backend/langflow/components/llms/AzureChatOpenAI.py @@ -35,13 +35,13 @@ class AzureChatOpenAIComponent(CustomComponent): "required": True, }, "api_version": { - "display_name": "OpenAI API Version", + "display_name": "API Version", "value": "2023-05-15", "required": True, "advanced": True, }, "api_key": { - "display_name": "OpenAI API Key", + "display_name": "API Key", "required": True, "password": True },