diff --git a/packages/components/credentials/WolframAlphaApp.credential.ts b/packages/components/credentials/WolframAlphaApp.credential.ts
new file mode 100644
index 00000000..69daae4a
--- /dev/null
+++ b/packages/components/credentials/WolframAlphaApp.credential.ts
@@ -0,0 +1,25 @@
+import { INodeParams, INodeCredential } from '../src/Interface'
+
+class WolframAlphaApp implements INodeCredential {
+ label: string
+ name: string
+ version: number
+ description: string
+ inputs: INodeParams[]
+
+ constructor() {
+ this.label = 'WolframAlpha App ID'
+ this.name = 'wolframAlphaAppId'
+ this.version = 1.0
+ this.description = 'Get an App Id from Wolfram Alpha Portal'
+ this.inputs = [
+ {
+ label: 'App ID',
+ name: 'wolframAlphaAppId',
+ type: 'password'
+ }
+ ]
+ }
+}
+
+module.exports = { credClass: WolframAlphaApp }
diff --git a/packages/components/models.json b/packages/components/models.json
index fc5c26ca..b2ccc15f 100644
--- a/packages/components/models.json
+++ b/packages/components/models.json
@@ -616,6 +616,10 @@
"label": "gpt-4o-2024-05-13",
"name": "gpt-4o-2024-05-13"
},
+ {
+ "label": "o3-mini",
+ "name": "o3-mini"
+ },
{
"label": "o1-preview (latest)",
"name": "o1-preview"
diff --git a/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts b/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts
index 4e568d6c..c95e4312 100644
--- a/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts
+++ b/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts
@@ -211,6 +211,9 @@ class ChatOpenAI_ChatModels implements INode {
streaming: streaming ?? true
}
+ if (modelName === 'o3-mini') {
+ delete obj.temperature
+ }
if (maxTokens) obj.maxTokens = parseInt(maxTokens, 10)
if (topP) obj.topP = parseFloat(topP)
if (frequencyPenalty) obj.frequencyPenalty = parseFloat(frequencyPenalty)
diff --git a/packages/components/nodes/tools/WolframAlpha/WolframAlpha.ts b/packages/components/nodes/tools/WolframAlpha/WolframAlpha.ts
new file mode 100644
index 00000000..8342c129
--- /dev/null
+++ b/packages/components/nodes/tools/WolframAlpha/WolframAlpha.ts
@@ -0,0 +1,44 @@
+import { WolframAlphaTool } from '@langchain/community/tools/wolframalpha'
+import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface'
+import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils'
+
+class WolframAlpha_Tools implements INode {
+ label: string
+ name: string
+ version: number
+ description: string
+ type: string
+ icon: string
+ category: string
+ baseClasses: string[]
+ credential: INodeParams
+ inputs: INodeParams[]
+
+ constructor() {
+ this.label = 'WolframAlpha'
+ this.name = 'wolframAlpha'
+ this.version = 1.0
+ this.type = 'WolframAlpha'
+ this.icon = 'wolframalpha.png'
+ this.category = 'Tools'
+ this.description = 'Wrapper around WolframAlpha - a powerful computational knowledge engine'
+ this.inputs = []
+ this.credential = {
+ label: 'Connect Credential',
+ name: 'credential',
+ type: 'credential',
+ credentialNames: ['wolframAlphaAppId']
+ }
+ this.baseClasses = [this.type, ...getBaseClasses(WolframAlphaTool)]
+ }
+
+ async init(nodeData: INodeData, _: string, options: ICommonObject): Promise {
+ const credentialData = await getCredentialData(nodeData.credential ?? '', options)
+ const wolframAlphaAppId = getCredentialParam('wolframAlphaAppId', credentialData, nodeData)
+ return new WolframAlphaTool({
+ appid: wolframAlphaAppId
+ })
+ }
+}
+
+module.exports = { nodeClass: WolframAlpha_Tools }
diff --git a/packages/components/nodes/tools/WolframAlpha/wolframalpha.png b/packages/components/nodes/tools/WolframAlpha/wolframalpha.png
new file mode 100644
index 00000000..77ef000b
Binary files /dev/null and b/packages/components/nodes/tools/WolframAlpha/wolframalpha.png differ