Skip to content
Open
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
af488de
feat: added chat completion
whereisfarukk Dec 1, 2025
aeae6e6
feat: added chat completion
whereisfarukk Dec 3, 2025
a92c27f
Merge branch 'main' of https://github.com/whereisfarukk/n8n-nodes-vlmrun
whereisfarukk Dec 3, 2025
3bc5097
fix: code format issue
whereisfarukk Dec 3, 2025
8e391ce
Update nodes/VlmRun/VlmRun.node.ts
whereisfarukk Dec 3, 2025
18e2aae
fix: removed max token and response format from chat completion ui
whereisfarukk Dec 9, 2025
cd8753d
feat: added video url capability
whereisfarukk Dec 9, 2025
a0f3559
feat: added image ,video, file and model choosing options
whereisfarukk Dec 9, 2025
2333a06
feat: added simplify output toggle and capability
whereisfarukk Dec 10, 2025
e7c6742
refactor(output): enhance simplified JSON structure with additional f…
whereisfarukk Dec 10, 2025
3ab6e19
chore(output): update description for message content flag
whereisfarukk Dec 10, 2025
7a7910f
Merge branch 'main' of https://github.com/whereisfarukk/n8n-nodes-vlmrun
whereisfarukk Dec 10, 2025
01c85b7
feat: Output Content as JSON added
whereisfarukk Dec 11, 2025
b694615
feat: added user defined structured output
whereisfarukk Dec 12, 2025
f3a2648
feat:slight modification in structured output
whereisfarukk Dec 12, 2025
4f2f924
feat: added working code for structured output
whereisfarukk Dec 12, 2025
4224712
feat: completed implementing chat completion
whereisfarukk Dec 12, 2025
de4aea1
fix: linting issue
whereisfarukk Dec 12, 2025
3b2e66a
Merge branch 'main' into structured_output
whereisfarukk Dec 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 21 additions & 15 deletions nodes/VlmRun/VlmRun.node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,25 +68,25 @@ export class VlmRun implements INodeType {
description: 'Extract insights or transcribe content from video files',
action: 'Analyze video',
},
{
name: 'Chat Completion',
value: 'chatCompletion',
description: 'Generate chat completions using OpenAI-compatible API',
action: 'Chat completion',
},
{
name: 'Execute Agent',
value: 'executeAgent',
description: 'Execute an agent',
action: 'Execute agent',
},
{
name: 'Manage Files',
value: 'file',
description: 'List uploaded files or upload new files to VLM Run',
action: 'Manage files',
},
{
name: 'Chat Completion',
value: 'chatCompletion',
description: 'Generate chat completions using OpenAI-compatible API',
action: 'Chat completion',
},
],
{
name: 'Manage Files',
value: 'file',
description: 'List uploaded files or upload new files to VLM Run',
action: 'Manage files',
},
],
default: 'document',
},
// File field for document, image, audio, video operations
Expand Down Expand Up @@ -893,7 +893,10 @@ export class VlmRun implements INodeType {

// Validate that if type is json_schema, schema must be provided
if (userDefinedResponseFormat.type === 'json_schema' && !userDefinedResponseFormat.schema) {
throw new Error('Schema is required when type is "json_schema"');
throw new NodeOperationError(
this.getNode(),
'Schema is required when type is "json_schema"',
);
}

// For structured outputs (json_schema), ensure strict is set to true if not provided
Expand All @@ -904,7 +907,10 @@ export class VlmRun implements INodeType {
}
// If it's an empty object or doesn't have type/schema, treat as undefined (ignore it)
} else if (parsed !== undefined) {
throw new Error('Response format must be an object');
throw new NodeOperationError(
this.getNode(),
'Response format must be an object',
);
}
} catch (error) {
throw new NodeOperationError(
Expand Down