From a4b03b236e8e4b18a646bd69781abf48fb90a9d3 Mon Sep 17 00:00:00 2001 From: PythonToGo Date: Fri, 5 Jun 2026 09:30:07 +0200 Subject: [PATCH 1/2] feat: use model dropdown for ChatXAI and add Grok models to catalog --- packages/components/models.json | 30 +++++++++++++++++++ .../nodes/chatmodels/ChatXAI/ChatXAI.ts | 26 ++++++++-------- 2 files changed, 43 insertions(+), 13 deletions(-) diff --git a/packages/components/models.json b/packages/components/models.json index 6b8ce72d5b8..df150e7557a 100644 --- a/packages/components/models.json +++ b/packages/components/models.json @@ -2193,6 +2193,36 @@ } ] }, + { + "name": "chatXAI", + "models": [ + { + "label": "grok-4", + "name": "grok-4", + "description": "Most capable Grok model with advanced reasoning" + }, + { + "label": "grok-3", + "name": "grok-3", + "description": "Flagship model for enterprise and general-purpose tasks" + }, + { + "label": "grok-3-mini", + "name": "grok-3-mini", + "description": "Lightweight Grok model, faster and more cost-effective" + }, + { + "label": "grok-2-vision-1212", + "name": "grok-2-vision-1212", + "description": "Grok 2 with image understanding" + }, + { + "label": "grok-2-1212", + "name": "grok-2-1212", + "description": "Grok 2 text model" + } + ] + }, { "name": "chatMistralAI", "models": [ diff --git a/packages/components/nodes/chatmodels/ChatXAI/ChatXAI.ts b/packages/components/nodes/chatmodels/ChatXAI/ChatXAI.ts index 3834f19e6c2..7001e36590a 100644 --- a/packages/components/nodes/chatmodels/ChatXAI/ChatXAI.ts +++ b/packages/components/nodes/chatmodels/ChatXAI/ChatXAI.ts @@ -1,7 +1,8 @@ import { BaseCache } from '@langchain/core/caches' import { ChatXAIInput } from '@langchain/xai' -import { ICommonObject, IMultiModalOption, INode, INodeData, INodeParams } from '../../../src/Interface' +import { ICommonObject, IMultiModalOption, INode, INodeData, INodeOptionsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { getModels, MODEL_TYPE } from '../../../src/modelLoader' import { ChatXAI } from './FlowiseChatXAI' class ChatXAI_ChatModels implements INode { @@ -19,7 +20,7 @@ class ChatXAI_ChatModels implements INode { constructor() { this.label = 'xAI Grok' this.name = 'chatXAI' - this.version = 2.0 + this.version = 2.1 this.type = 'ChatXAI' this.icon = 'xai.png' this.category = 'Chat Models' @@ -39,10 +40,11 @@ class ChatXAI_ChatModels implements INode { optional: true }, { - label: 'Model', + label: 'Model Name', name: 'modelName', - type: 'string', - placeholder: 'grok-beta' + type: 'asyncOptions', + loadMethod: 'listModels', + default: 'grok-3' }, { label: 'Temperature', @@ -69,14 +71,6 @@ class ChatXAI_ChatModels implements INode { default: false, optional: true }, - { - label: 'Max Tokens', - name: 'maxTokens', - type: 'number', - step: 1, - optional: true, - additionalParams: true - }, { label: 'Max Tokens', name: 'maxTokens', @@ -88,6 +82,12 @@ class ChatXAI_ChatModels implements INode { ] } + loadMethods = { + async listModels(_: INodeData, __?: ICommonObject): Promise { + return await getModels(MODEL_TYPE.CHAT, 'chatXAI') + } + } + async init(nodeData: INodeData, _: string, options: ICommonObject): Promise { const cache = nodeData.inputs?.cache as BaseCache const temperature = nodeData.inputs?.temperature as string From 559c0071e0f75fc2b2b8ef0d84092875590c26e5 Mon Sep 17 00:00:00 2001 From: PythonToGo Date: Fri, 5 Jun 2026 10:10:12 +0200 Subject: [PATCH 2/2] fix: address review - allow custom model entry and use cost-effective default for ChatXAI - add freeSolo to the modelName input so users can still type custom or newly-released model names not yet in models.json (preserves the previous free-text behavior; matches the AzureChatOpenAI pattern) - change default model from grok-3 to grok-3-mini for a more cost-effective out-of-the-box choice --- packages/components/nodes/chatmodels/ChatXAI/ChatXAI.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/components/nodes/chatmodels/ChatXAI/ChatXAI.ts b/packages/components/nodes/chatmodels/ChatXAI/ChatXAI.ts index 7001e36590a..e654999e384 100644 --- a/packages/components/nodes/chatmodels/ChatXAI/ChatXAI.ts +++ b/packages/components/nodes/chatmodels/ChatXAI/ChatXAI.ts @@ -44,7 +44,8 @@ class ChatXAI_ChatModels implements INode { name: 'modelName', type: 'asyncOptions', loadMethod: 'listModels', - default: 'grok-3' + default: 'grok-3-mini', + freeSolo: true }, { label: 'Temperature',