Update AzrueChatOpenAI component. Change api_version to option field and select the latest version by default.

This commit is contained in:
coolgo0811 2024-01-04 16:56:56 +08:00
commit 1ecb97fd52

View file

@ -8,6 +8,7 @@ class AzureChatOpenAIComponent(CustomComponent):
display_name: str = "AzureChatOpenAI" display_name: str = "AzureChatOpenAI"
description: str = "LLM model from Azure OpenAI." description: str = "LLM model from Azure OpenAI."
documentation: str = "https://python.langchain.com/docs/integrations/llms/azure_openai" documentation: str = "https://python.langchain.com/docs/integrations/llms/azure_openai"
beta = False
AZURE_OPENAI_MODELS = [ AZURE_OPENAI_MODELS = [
"gpt-35-turbo", "gpt-35-turbo",
@ -18,11 +19,20 @@ class AzureChatOpenAIComponent(CustomComponent):
"gpt-4-vision", "gpt-4-vision",
] ]
AZURE_OPENAI_API_VERSIONS = [
"2023-03-15-preview",
"2023-05-15",
"2023-06-01-preview",
"2023-07-01-preview",
"2023-08-01-preview",
"2023-12-01-preview"
]
def build_config(self): def build_config(self):
return { return {
"model": { "model": {
"display_name": "Model Name", "display_name": "Model Name",
"value": "gpt-35-turbo", "value": self.AZURE_OPENAI_MODELS[0],
"options": self.AZURE_OPENAI_MODELS, "options": self.AZURE_OPENAI_MODELS,
"required": True, "required": True,
}, },
@ -37,11 +47,16 @@ class AzureChatOpenAIComponent(CustomComponent):
}, },
"api_version": { "api_version": {
"display_name": "API Version", "display_name": "API Version",
"value": "2023-05-15", "options": self.AZURE_OPENAI_API_VERSIONS,
"value": self.AZURE_OPENAI_API_VERSIONS[-1],
"required": True, "required": True,
"advanced": True, "advanced": True,
}, },
"api_key": {"display_name": "API Key", "required": True, "password": True}, "api_key": {
"display_name": "API Key",
"required": True,
"password": True
},
"temperature": { "temperature": {
"display_name": "Temperature", "display_name": "Temperature",
"value": 0.7, "value": 0.7,
@ -54,21 +69,24 @@ class AzureChatOpenAIComponent(CustomComponent):
"required": False, "required": False,
"field_type": "int", "field_type": "int",
"advanced": True, "advanced": True,
"info": "Maximum number of tokens to generate.",
},
"code": {
"show": False
}, },
"code": {"show": False},
} }
def build( def build(
self, self,
model: str, model: str,
azure_endpoint: str, azure_endpoint: str,
azure_deployment: str, azure_deployment: str,
api_key: str, api_key: str,
api_version: str = "2023-05-15", api_version: str,
temperature: float = 0.7, temperature: float = 0.7,
max_tokens: Optional[int] = 1000, max_tokens: Optional[int] = 1000,
) -> BaseLanguageModel: ) -> BaseLanguageModel:
return AzureChatOpenAI( try:
llm = AzureChatOpenAI(
model=model, model=model,
azure_endpoint=azure_endpoint, azure_endpoint=azure_endpoint,
azure_deployment=azure_deployment, azure_deployment=azure_deployment,
@ -77,3 +95,6 @@ class AzureChatOpenAIComponent(CustomComponent):
temperature=temperature, temperature=temperature,
max_tokens=max_tokens, max_tokens=max_tokens,
) )
except Exception as e:
raise ValueError("Could not connect to AzureOpenAI API.") from e
return llm