* feat: add GPT-4.1 series models support to OpenAI Assistant Dialog
* Update models.json
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* fix: 400 Bad Request errors from Gemini API when converting tool schemas (MCP tools).
* Update FlowiseChatGoogleGenerativeAI.ts
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* Fix(FlowiseChatGoogleGenerativeAI): Prevent "parts must not be empty" API error in Seq Agents
* Fix: Update pnpm-lock.yaml to resolve CI issues
* convert role function and tool to function
* remove comment
---------
Co-authored-by: Henry <hzj94@hotmail.com>
* Support cache system instructs for Google GenAI
* format code
* Update FlowiseGoogleAICacheManager.ts
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* support google cloud storage
* update example and docs for supporting google cloud storage
* recover the indent of pnpm-lock-yaml
* populate the logs to google logging
* normalize gcs storage paths
---------
Co-authored-by: Ilango <rajagopalilango@gmail.com>
Co-authored-by: Henry <hzj94@hotmail.com>
Add new Groq model options to `groqChat` section in `models.json`
* Add `meta-llama/llama-4-maverick-17b-128e-instruct`
* Add `meta-llama/llama-4-scout-17b-16e-instruct`
This update adds support for Opik tracer in Flowise. It includes new
credential components, analytic nodes, and UI assets for both tracers. The
changes enhance observability by allowing users to integrate Opik for better
model monitoring, analysis and evaluation.
* fix: udpate label to "NVIDIA NIM API Key"
* test: update tag from ":latest" to ":1.8.0-rtx"
* test: add image URL path "nvcr.io/nim/"
* fix/nvidia-nim-2 (#4208)
* fix: update nim-container-manager
* feat: add "DeepSeek R1 Distill Llama 8B"
* fix/nidia-nim-3 (#4209)
* chore: add error message NVIDIA NIM is not installed.
* chore: standardize NVIDIA NGC API Key
* chore: capitalize Nvidia to NVIDIA
* chore: generalize error message for chat models
* fix/nvidia-nim-4-yau (#4212)
* test: nimRelaxMemConstraints and hostPort
* test: add logger for hostPort and nimRelaxMemConstraints
* test: nim-container-manager version 1.0.9
* test: parseInt nimRelaxMemConstraints
* test: update nim-container-manager version to 1.0.10
* chore: update nim-container-manager version to 1.0.11
* Update start container behaviour - show existing containers and give users the choice
* Go back to previous step when clicking start new so user can change port number
* Update condition for showing existing container dialog
* Fix start new in different port not working
* Update get container controller
* Update again
* fix: generalize error message for chat models
* Update getContainer controller
* Fix incorrect image check in getContainer controller
* Update existing container dialog text
* Fix styles in container exists dialog for nvidia nim
---------
Co-authored-by: chungyau97 <chungyau97@gmail.com>
Co-authored-by: Ong Chung Yau <33013947+chungyau97@users.noreply.github.com>
Update README files for Postgres Record Manager and Vector Store to include a new SSL environment variable, allowing optional SSL configuration for database connections
* Allows 'x-strict' attribute in OpenAPI spec tool and other json spec objects, this allows the OpenAI Assistant to have function calls with 'strict' mode. Also allows the OpenAI assistant to call several tools in the same run. And adds a checkbox 'remove Nulls' for the OpenAPI toolkit so that parameters with null values are not passed to the backend api.
* fix lint errors
---------
Co-authored-by: Olivier Schiavo <olivier.schiavo@wengo.com>
* add nim container setup
* check if image or container exist before pulling
* update NIM dialog
* update chat nvidia api key
* update nim container version
* update nim container version
* New Feature: Add post postprocessing of response from LLM using custom Javascript functions
* Disable Save when there is no content
* add post processing ui changes, disable streaming
---------
Co-authored-by: Henry <hzj94@hotmail.com>
* Update AzureChatOpenAI.ts - corrected reasoning description and default
- Description for reasoning effort only mentioned o1. Added o3.
- Changed reasoning effort default to medium as this is OpenAI's default / what users will most likely expect (https://platform.openai.com/docs/guides/reasoning)
* Update ChatOpenAI.ts - corrected reasoning description and default
- Description for reasoning effort only mentioned o1. Added o3.
- Changed reasoning effort default to medium as this is OpenAI's default / what users will most likely expect (https://platform.openai.com/docs/guides/reasoning)
* Update models.json - add specific model ID for o3-mini
- Added o3-mini-2025-01-31
- Updated "o3-mini" label to "o3-mini (latest)"
This allows the user to choose a specific model ID and avoid the risk of unexpected behavior if the "o3-mini" alias is updated.
* Late Chunking support for Jina Embeddings
* improved constructor handling. remove redundant code.
* remove unnessary function overrides, since late_chunking parameter only needs to be stored in the class.
* fix: Preserve port in normalizeURL function
The normalizeURL function was previously ignoring the port in the URL.
This fix explicitly includes the port if present (e.g., `:3000`).
* fix lint problem
fix lint problem
* Expose dimensions parameter on Jina Embeddings
* fix linting issue
* update description text to refer to dimensions
* Update JinaAIEmbedding.ts
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
The previous code incorrectly assigned `toolInput` to an empty string when `customInput` was non-empty. Corrected the logic to ensure that `toolInput` is assigned `customInput` when `useQuestionFromChat` is false and `customInput` is non-empty.
* added: Neo4j database connectivity, Neo4j credentials, supports the usage of the GraphCypherQaChain node and modifies the FewShotPromptTemplate node to handle variables from the prefix field.
* Merge branch 'main' of github.com:FlowiseAI/Flowise into feature/graphragsupport
* revert pnpm-lock.yaml
* add: neo4j package
* Refactor GraphCypherQAChain: Update version to 1.0, remove memory input, and enhance prompt handling
- Changed version from 2.0 to 1.0.
- Removed the 'Memory' input parameter from the GraphCypherQAChain.
- Made 'cypherPrompt' optional and improved error handling for prompt validation.
- Updated the 'init' and 'run' methods to streamline input processing and response handling.
- Enhanced streaming response logic based on the 'returnDirect' flag.
* Refactor GraphCypherQAChain: Simplify imports and update init method signature
- Consolidated import statements for better readability.
- Removed the 'input' and 'options' parameters from the 'init' method, streamlining its signature to only accept 'nodeData'.
* add output, format final response, fix optional inputs
---------
Co-authored-by: Henry <hzj94@hotmail.com>
* feat: Enhance ConditionAgent with conversation history selection options
- Added a new parameter `conversationHistorySelection` to allow users to choose which messages from the conversation history to include in prompts.
- Options include: User Question, Last Conversation Message, All Conversation Messages, and Empty.
- Default selection is set to 'All Conversation Messages' for improved context management in sequential LLM and Agent nodes.
* Bump version from 2.0 to 3.0
* feat: Add Azure Cognitive Services integration for speech-to-text functionality
- Introduced a new credential class for Azure Cognitive Services.
- Updated speech-to-text processing to support Azure Cognitive Services as a provider.
- Enhanced UI components to include Azure Cognitive Services options and inputs for configuration.
- Added necessary imports and error handling for Azure API requests.
* Update SpeechToText.jsx linting
* refactor: Update audio file handling in SpeechToText component
- Removed the dependency on 'form-data' and replaced it with a Blob for audio file uploads.
- Simplified the audio file appending process to the form data.
- Cleaned up the headers in the Axios request by removing unnecessary form data headers.
This change enhances the efficiency of audio file processing in the speech-to-text functionality.
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
Co-authored-by: Henry <hzj94@hotmail.com>
* feat: Add Groq Whisper support to SpeechToText component
- Introduced a new speech-to-text provider, Groq Whisper, in both the backend and UI components.
- Updated SpeechToTextType to include GROQ_WHISPER.
- Implemented Groq client integration for audio transcription with customizable model, language, and temperature options.
- Added UI elements for Groq Whisper configuration, including input fields for model, language, and temperature settings.
* turn speech to text none status to false when other was selected
---------
Co-authored-by: Henry <hzj94@hotmail.com>
* Update 'Require Approval' button description to clarify dependency on MemoryAgent
* Refine RequiredApproval message description
* Fix message description by removing unscaped character ('\')
* Break line
* docs: clarify and enhance the "Require Approval" description for Agent node
* chore: slight update of the description
* feat: Add option to disable conversation history
- Add new `disableConversationHistory` boolean parameter in LLMNodes.ts and Agent.ts to optionally skip including conversation history in prompts
- Fix potential error in Agent.ts when messages array is empty by adding null safety checks
- Improve memory efficiency by allowing stateless interactions when history isn't needed
* feat: add conversation history filtering options
Replace the disable conversation history feature with a more flexible filtering system that allows selecting:
- User question only
- Last message only
- All messages (default)
- No messages
This provides more granular control over conversation context management.
* chore: break lines
* chore: removed ending semi columns
* chore: fix eslint errors
* fix(sequentialagents): improve conversation history filtering logic
- Remove unnecessary state.messages check for user_question case
- Add proper null handling for last_message and all_messages cases
- Remove @ts-ignore comments with proper typing
* Update LLMNode.ts
* Update Agent.ts
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* feat(models): add Llama 3.3 70B models to groqChat
Add Meta's latest Llama 3.3 70B models to groqChat options:
- llama-3.3-70b-versatile: New versatile model for general tasks
- llama-3.3-70b-specdec: Specialized model for specific tasks
These models offer comparable quality to Llama 3.1 405B at 1/5th the size,
with improvements in:
- Reasoning and math capabilities
- General knowledge tasks
- Instruction following
- Tool use and JSON outputs
- Code generation and feedback
* Revert minor version bump
* Added redis open connection if it is closed
* Removed unecessary modification
* Added check connection in all methods
* Renamed method
* added await on method call
* Refactor Redis connection handling: remove singleton pattern, ensure connections are opened and closed per operation.
---------
Co-authored-by: Maicon Matsubara <maicon@fullwise.com.br>
* Added support for state-based metadata filter to Retriever Tool
* Update RetrieverTool.ts
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* adding support for prometheus and grafana
* open telemetry
* lint fixes
* missing counter and telemetry standardization
---------
Co-authored-by: Henry <hzj94@hotmail.com>
* Set azureOpenAIBasePath to undefined if empty to enforce usage of env variable AZURE_OPENAI_BASE_PATH in @langchain+openai@0.0.30_encoding@0.1.13_langchain@0.2.11/node_modules/@langchain/openai/dist/embeddings.cjs
Fixed a bug in `restructureMessages` leading to blowing up of the message content with escape characters and eventually crashing the flow with "repetitive patterns" error
* Make Unstructured API URL optional when environment variable is present
* Fix empty apiUrl option in Unsctructured flowise loader
* Add focumentation for env vars
* add functionality for full file uploads, add remove messages from view dialog and API
* add attachments swagger
* update question to include uploadedFilesContent
* make config dialog modal lg size
* Refactor ChatOpenAI_ChatModels to include stopSequence parameter
* lint fix
* Stop Sequence String will now be split by comma
* Update ChatOpenAI.ts
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* feat: Add Alibaba API credential and ChatAlibabaTongyi node
* lint fix
* Add chatAlibabaTongyi model to models.json
and chat models
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* added Jina AI Embedding support
* Update JinaAIEmbedding.ts
Change model name to string type
* removed jina embeddings
* lint fix
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* Add migrations - add follow up prompts column to chatflow and chat message
* Add configuration tab for follow-up prompts
* Add follow up prompts functionality
* Pin zod version in components - this was causing a type error with structured outputs
* Generate follow up prompts if enabled and return it in stream, response, and save to database
* Show follow up prompts after getting response
* Add google gen ai for generating follow up prompts and fix issues
* Add config for google gen ai and update model options
* Update follow-up prompts ui and styles
* Release/2.1.0 (#3204)
flowise@2.1.0 release
* Chore/update flowise embed version to 2.0.0 (#3205)
* update flowise-embed version on lock file
* add agent messages to share chatbot
* Update pnpm-lock.yaml
* update flowise-embed version
* update flowise-embed to 1.3.9
* update embed version to 2.0
* Bugfix/CodeInterpreter E2B Credential (#3206)
* Base changes for ServerSide Events (instead of socket.io)
* lint fixes
* adding of interface and separate methods for streaming events
* lint
* first draft, handles both internal and external prediction end points.
* lint fixes
* additional internal end point for streaming and associated changes
* return streamresponse as true to build agent flow
* 1) JSON formatting for internal events
2) other fixes
* 1) convert internal event to metadata to maintain consistency with external response
* fix action and metadata streaming
* fix for error when agent flow is aborted
* prevent subflows from streaming and other code cleanup
* prevent streaming from enclosed tools
* add fix for preventing chaintool streaming
* update lock file
* add open when hidden to sse
* Streaming errors
* Streaming errors
* add fix for showing error message
* add code interpreter
* add artifacts to view message dialog
* Update pnpm-lock.yaml
* uncomment e2b credential
---------
Co-authored-by: Vinod Paidimarry <vinodkiran@outlook.in>
* Release/2.1.0 (#3207)
* flowise@2.1.0 release
* update flowise-components@2.1.1
* Bugfix/Add artifacts migration script to other database types (#3210)
add artifacts migration script to other database types
* Release/2.1.1 (#3213)
release @2.1.1
* Bugfix/Add header to allow sse on nginx (#3214)
add header to allow sse on nginx
* Bugfix/remove invalid markdown (#3219)
remove invalid markdown
* Correct "as" casing (#3216)
* Correct "as" casing
* Remove "version" line from docker compose file
* Update docker-compose.yml
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* chore: update unstructured API url and doc reference (#3224)
chore: udpate unstructured API url and doc reference
* Feature/add ability to specify dynamic metadata to jsonlines (#3238)
* add ability to specify dynamic metadata to jsonlines
* fix additional metadata
* Bugfix/Buffer Memory for Anthropic (#3242)
fix buffer memory
* Added env vars to ui and api URL (#3141)
* feat: add environment vars to split application in different deployments for better scalability
* update: package.json
added start script ui
---------
Co-authored-by: patrick <patrick.alves@br.experian.com>
* Added 1-click deployment link for Alibaba Cloud. (#3251)
* Added a link for Alibaba Cloud Deployment
* change service name
---------
Co-authored-by: yehan <gn398171@alibaba-inc.com>
* Chore/Groq Llama3.2 (#3255)
* add gemini flash
* add gemin flash to vertex
* add gemin-1.5-flash-preview to vertex
* add azure gpt 4o
* add claude 3.5 sonnet
* add mistral nemo
* add groq llama3.1
* add gpt4o-mini to azure
* o1 mini
* add groq llama 3.2
* Bugfix/Prevent streaming of chatflow tool and chain tool (#3257)
prevent streaming of chatflow tool and chain tool
* Bugfix/Enable Custom Tool Optional Input Schema (#3258)
* prevent streaming of chatflow tool and chain tool
* enable optional input schema
* Bugfix/Searxng tool not working (#3263)
fix searxng tool not working
* LunaryAI automatic Thread and User tracking (#3233)
* Lunary Thread/User tracking
* Clean console logs
* Clean
* Remove commented lines
* Remove commented line
* feat: enable autofocus to the `new chatflow title` to improve usability (#3260)
This dialog has only one input and it is the primary one, there is no need for an extra click to be able to set the title
* feat: save a new Chatflow when the `ENTER` key is pressed (#3261)
This simple event handler improve the usability of the UI by avoiding having to use the mouse or having to tab twice and then hit enter to save a flow
* feat: save Chatflow title when the `ENTER` key is pressed or discard upon `ESC` is pressed (#3265)
This simple event handler improves the usability of the UI by avoiding having to use the mouse to save or dicard title changes
* feat: enable autofocus to the `edit chatflow title` field to improve UI usability (#3264)
feat: enable autofocus to the `edit chatflow title` field to improve usability
The canvas header has only one input and it is the primary one, there is no need for an extra click to be able to edit the title
* feat: add search keyboard shortcut based on the current platform (#3267)
* feat: highlight valid/invalid connection between nodes (#3266)
Change the inputs background to green/red to hint compatible connections, in adition to the `not-allowed` mouse cursor for incompatible connections
* Bugfix/add fixes for search of view header (#3271)
add fixes for search of view header
* fix: warning when passing a boolean to border property of a Card (#3275)
By default MainCard wrappers like NodeCardWrapper and CardWrapper add a a solid border of 1px, but if the `MainCard.border` prop is used (`false`) the border prop was wrongly set to a boolean instead of string
* feat: add shortcut text hint to the search field (#3269)
* feat: add shortcut text hint to the search field
* fix: search box width to fit the shortcut hint text
* fix: error when not running on Mac due to an undefined `os` variable
* fix: warning when a non-boolean values was used to set `checked` prop of a SwitchInput component (#3276)
fix: warning when a non-boolean values was used to set`checked` prop of SwitchInput component
The problem was that in the useEffect hook the plain value was used without validation like in useState
* Bugfix/Throw error to prevent SSE from retrying (#3281)
throw error to prevent SSE from retrying
* Pin zod version in components - this was causing a type error with structured outputs
* Fix conflicts in pnpm lock
* fix ui changes for follow up prompts
* Fix button disable state in follow-up prompts configuration
* Fix follow-up prompts not showing up for agent flows
* Show follow up prompts if last message is apiMessage and follow up prompts are available
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
Co-authored-by: Vinod Paidimarry <vinodkiran@outlook.in>
Co-authored-by: Cross <github@dillfrescott.com>
Co-authored-by: cragwolfe <cragcw@gmail.com>
Co-authored-by: patrickreinan <patrickreinan@gmail.com>
Co-authored-by: patrick <patrick.alves@br.experian.com>
Co-authored-by: yehan <34835250+yehanyh@users.noreply.github.com>
Co-authored-by: yehan <gn398171@alibaba-inc.com>
Co-authored-by: Vincelwt <vincelwt@users.noreply.github.com>
Co-authored-by: Humberto Rodríguez A. <rhumbertgz@users.noreply.github.com>
Co-authored-by: Henry <hzj94@hotmail.com>
* Base changes for ServerSide Events (instead of socket.io)
* lint fixes
* adding of interface and separate methods for streaming events
* lint
* first draft, handles both internal and external prediction end points.
* lint fixes
* additional internal end point for streaming and associated changes
* return streamresponse as true to build agent flow
* 1) JSON formatting for internal events
2) other fixes
* 1) convert internal event to metadata to maintain consistency with external response
* fix action and metadata streaming
* fix for error when agent flow is aborted
* prevent subflows from streaming and other code cleanup
* prevent streaming from enclosed tools
* add fix for preventing chaintool streaming
* update lock file
* add open when hidden to sse
* Streaming errors
* Streaming errors
* add fix for showing error message
* add code interpreter
* add artifacts to view message dialog
* Update pnpm-lock.yaml
* uncomment e2b credential
---------
Co-authored-by: Vinod Paidimarry <vinodkiran@outlook.in>
* Base changes for ServerSide Events (instead of socket.io)
* lint fixes
* adding of interface and separate methods for streaming events
* lint
* first draft, handles both internal and external prediction end points.
* lint fixes
* additional internal end point for streaming and associated changes
* return streamresponse as true to build agent flow
* 1) JSON formatting for internal events
2) other fixes
* 1) convert internal event to metadata to maintain consistency with external response
* fix action and metadata streaming
* fix for error when agent flow is aborted
* prevent subflows from streaming and other code cleanup
* prevent streaming from enclosed tools
* add fix for preventing chaintool streaming
* update lock file
* add open when hidden to sse
* Streaming errors
* Streaming errors
* add fix for showing error message
* add code interpreter
* add artifacts to view message dialog
* Update pnpm-lock.yaml
---------
Co-authored-by: Vinod Paidimarry <vinodkiran@outlook.in>
* Base changes for ServerSide Events (instead of socket.io)
* lint fixes
* adding of interface and separate methods for streaming events
* lint
* first draft, handles both internal and external prediction end points.
* lint fixes
* additional internal end point for streaming and associated changes
* return streamresponse as true to build agent flow
* 1) JSON formatting for internal events
2) other fixes
* 1) convert internal event to metadata to maintain consistency with external response
* fix action and metadata streaming
* fix for error when agent flow is aborted
* prevent subflows from streaming and other code cleanup
* prevent streaming from enclosed tools
* add fix for preventing chaintool streaming
* update lock file
* add open when hidden to sse
* Streaming errors
* Streaming errors
* add fix for showing error message
---------
Co-authored-by: Henry <hzj94@hotmail.com>
* Check for relative path when saving file, to prevent unauthorised writes
* preventing relative paths for all modes (s3/local)
* preventing relative paths for all modes (s3/local)
* Update storageUtils.ts
* changing the code to sanitizing filenames.
* fix lock file
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
Co-authored-by: Henry <hzj94@hotmail.com>
* Add chat model open api proxy url param
* Refactor add proxy url to chat model open ai
* Update ChatOpenAI.ts
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* added tls support
* forgot to add tls to init function as well, it works now.
* added partition support for Milvus
* updated to 2.0.6 , pnpm lint fix aswell
* ensure it points to _default partition if none provided
* update milvus versioning
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* Update handler.ts
Add missing langWatch: {} to onLLMStart and onLLMStart
* Update handler.ts
Revert changes so I can make bugfix branch
* Update handler.ts - missing langWatch
Add missing langWatch object to returnIds for missing 'span' bug.
* added meilisearch retriever and credentials.ts
* added semantic ratio
* removed a TODO implementatio
* meilisearch component implemented with searching and upsert functionality (#3)
meilisearch retriever component created , searching for an existing index and upserting a new or existing index has been implemented , component utilizes langchain and meilisearch vector search
Reviewed-on: https://git.beyond.cc/ntg/flowise/pulls/3
Reviewed-by: mohamed1999akram <mohamed1999akram@gmail.com>
* added CI/CD for ntg branch, added proper dockerfile for flowise-ntg (#4)
Reviewed-on: https://git.beyond.cc/ntg/flowise/pulls/4
Reviewed-by: mohammad <mohammad@noreply.git.beyond.cc>
* modified os version , removed linting errors , removed cypress github actions (#5)
added --no-lock-file flag to pass CICD , made the runner run on debian and not ubuntu , removed code that caused warnings to pass linting
Reviewed-on: https://git.beyond.cc/ntg/flowise/pulls/5
Reviewed-by: omaryassery <omarryassser@gmail.com>
* removed unnecessary QEMU install action (#6)
Reviewed-on: https://git.beyond.cc/ntg/flowise/pulls/6
Reviewed-by: omaryassery <omarryassser@gmail.com>
* removed cypress installation and linting from dockerfile (#7)
Reviewed-on: https://git.beyond.cc/ntg/flowise/pulls/7
Reviewed-by: isameh <isameh@ntgclarity.com>
* dockerfile-ntg-modification (#9)
dockerfile-ntg modified to copy all working directory before calling pnpm install
Reviewed-on: https://git.beyond.cc/ntg/flowise/pulls/9
Reviewed-by: isameh <isameh@ntgclarity.com>
* resolved comments, reverted CI/CD
* add test docker build yml back
* moved meilisearch to vector store folder
* Update Meilisearch.ts
---------
Co-authored-by: Henry <hzj94@hotmail.com>
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* Document Store - Phase 2
* Adding additional columns for vector store config, document store phase 2
* Adding additional columns for vector store config, document store phase 2
* Document Store - Phase 2 - Upsert and Query
* ux cleanup
* retrieval settings and more ux changes
* adding MMR params to execution
* Making the upsert process async.
* add upsert history changes
* making the searchParams dynamic
* removing unnecessary params
* add ability to delete data from vector store
* update margin for vector store query
* adding option to save config in the retrieval playground
* adding chunk number for query return chunks
* Adding a Document Store node in the VectorStore category
* update doc store status, ui touchup
---------
Co-authored-by: Henry <hzj94@hotmail.com>
* Added distinct GPT4o and GPT4o-mini versions, updated label of models that point to latest versions.
* fix linting issue
---------
Co-authored-by: Henry Heng <henryheng@flowiseai.com>