From 1b867586c278c1bbbbcdc56f2c93b38fb445e39d Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Mon, 5 Feb 2024 18:17:23 -0300 Subject: [PATCH] Update OpenAI models and options --- .../components/agents/OpenAIConversationalAgent.py | 12 ++++++------ .../components/embeddings/OpenAIEmbeddings.py | 10 +++++++--- src/backend/langflow/components/llms/ChatOpenAI.py | 10 ++++++---- src/backend/langflow/utils/constants.py | 8 ++++---- tests/test_endpoints.py | 14 ++++++-------- tests/test_template.py | 5 ++--- 6 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/backend/langflow/components/agents/OpenAIConversationalAgent.py b/src/backend/langflow/components/agents/OpenAIConversationalAgent.py index 1a06e25fb..5dfb53387 100644 --- a/src/backend/langflow/components/agents/OpenAIConversationalAgent.py +++ b/src/backend/langflow/components/agents/OpenAIConversationalAgent.py @@ -3,13 +3,12 @@ from typing import List, Optional from langchain.agents.agent import AgentExecutor from langchain.agents.agent_toolkits.conversational_retrieval.openai_functions import _get_default_system_message from langchain.agents.openai_functions_agent.base import OpenAIFunctionsAgent -from langchain_community.chat_models import ChatOpenAI from langchain.memory.token_buffer import ConversationTokenBufferMemory from langchain.prompts import SystemMessagePromptTemplate from langchain.prompts.chat import MessagesPlaceholder from langchain.schema.memory import BaseMemory from langchain.tools import Tool - +from langchain_community.chat_models import ChatOpenAI from langflow import CustomComponent from langflow.field_typing.range_spec import RangeSpec @@ -20,11 +19,12 @@ class ConversationalAgent(CustomComponent): def build_config(self): openai_function_models = [ + "gpt-4-turbo-preview", + "gpt-4-0125-preview", "gpt-4-1106-preview", - "gpt-3.5-turbo", - "gpt-3.5-turbo-16k", - "gpt-4", - "gpt-4-32k", + "gpt-4-vision-preview", + "gpt-3.5-turbo-0125", + "gpt-3.5-turbo-1106", ] return { "tools": {"display_name": "Tools"}, diff --git a/src/backend/langflow/components/embeddings/OpenAIEmbeddings.py b/src/backend/langflow/components/embeddings/OpenAIEmbeddings.py index 555d45570..9ff91dd0e 100644 --- a/src/backend/langflow/components/embeddings/OpenAIEmbeddings.py +++ b/src/backend/langflow/components/embeddings/OpenAIEmbeddings.py @@ -42,7 +42,11 @@ class OpenAIEmbeddingsComponent(CustomComponent): "advanced": True, }, "max_retries": {"display_name": "Max Retries", "advanced": True}, - "model": {"display_name": "Model", "advanced": True}, + "model": { + "display_name": "Model", + "advanced": False, + "options": ["text-embedding-3-small", "text-embedding-3-large", "text-embedding-ada-002"], + }, "model_kwargs": {"display_name": "Model Kwargs", "advanced": True}, "openai_api_base": {"display_name": "OpenAI API Base", "password": True, "advanced": True}, "openai_api_key": {"display_name": "OpenAI API Key", "password": True}, @@ -74,10 +78,10 @@ class OpenAIEmbeddingsComponent(CustomComponent): disallowed_special: List[str] = ["all"], chunk_size: int = 1000, client: Optional[Any] = None, - deployment: str = "text-embedding-ada-002", + deployment: str = "text-embedding-3-small", embedding_ctx_length: int = 8191, max_retries: int = 6, - model: str = "text-embedding-ada-002", + model: str = "text-embedding-3-small", model_kwargs: NestedDict = {}, openai_api_base: Optional[str] = None, openai_api_key: Optional[str] = "", diff --git a/src/backend/langflow/components/llms/ChatOpenAI.py b/src/backend/langflow/components/llms/ChatOpenAI.py index 19ca4f41d..9f9d61ef8 100644 --- a/src/backend/langflow/components/llms/ChatOpenAI.py +++ b/src/backend/langflow/components/llms/ChatOpenAI.py @@ -2,6 +2,7 @@ from typing import Optional, Union from langchain.llms import BaseLLM from langchain_community.chat_models.openai import ChatOpenAI + from langflow import CustomComponent from langflow.field_typing import BaseLanguageModel, NestedDict @@ -30,11 +31,12 @@ class ChatOpenAIComponent(CustomComponent): "advanced": False, "required": False, "options": [ + "gpt-4-turbo-preview", + "gpt-4-0125-preview", "gpt-4-1106-preview", - "gpt-4", - "gpt-4-32k", - "gpt-3.5-turbo", - "gpt-3.5-turbo-16k", + "gpt-4-vision-preview", + "gpt-3.5-turbo-0125", + "gpt-3.5-turbo-1106", ], }, "openai_api_base": { diff --git a/src/backend/langflow/utils/constants.py b/src/backend/langflow/utils/constants.py index 0704f2ec9..9b01f8c2d 100644 --- a/src/backend/langflow/utils/constants.py +++ b/src/backend/langflow/utils/constants.py @@ -8,12 +8,12 @@ OPENAI_MODELS = [ "text-ada-001", ] CHAT_OPENAI_MODELS = [ + "gpt-4-turbo-preview", + "gpt-4-0125-preview", "gpt-4-1106-preview", "gpt-4-vision-preview", - "gpt-4", - "gpt-4-32k", - "gpt-3.5-turbo", - "gpt-3.5-turbo-16k", + "gpt-3.5-turbo-0125", + "gpt-3.5-turbo-1106", ] diff --git a/tests/test_endpoints.py b/tests/test_endpoints.py index 338224004..e0d9bcc17 100644 --- a/tests/test_endpoints.py +++ b/tests/test_endpoints.py @@ -72,14 +72,12 @@ PROMPT_REQUEST = { "text-ada-001", ], "ChatOpenAI": [ - "gpt-3.5-turbo-0613", - "gpt-3.5-turbo", - "gpt-3.5-turbo-16k-0613", - "gpt-3.5-turbo-16k", - "gpt-4-0613", - "gpt-4-32k-0613", - "gpt-4", - "gpt-4-32k", + "gpt-4-turbo-preview", + "gpt-4-0125-preview", + "gpt-4-1106-preview", + "gpt-4-vision-preview", + "gpt-3.5-turbo-0125", + "gpt-3.5-turbo-1106", ], "Anthropic": [ "claude-v1", diff --git a/tests/test_template.py b/tests/test_template.py index 6dcb789ee..048d7da9e 100644 --- a/tests/test_template.py +++ b/tests/test_template.py @@ -2,8 +2,6 @@ import importlib from typing import Dict, List, Optional import pytest -from pydantic import BaseModel - from langflow.utils.constants import CHAT_OPENAI_MODELS, OPENAI_MODELS from langflow.utils.util import ( build_template_from_class, @@ -12,6 +10,7 @@ from langflow.utils.util import ( get_base_classes, get_default_factory, ) +from pydantic import BaseModel # Dummy classes for testing purposes @@ -236,7 +235,7 @@ def test_format_dict(): "password": False, "multiline": False, "options": CHAT_OPENAI_MODELS, - "value": "gpt-4-1106-preview", + "value": "gpt-4-turbo-preview", }, } assert format_dict(input_dict, "OpenAI") == expected_output_openai