const nodes = [
{
id: 'user_input',
name: 'User Input',
type: 'simple',
category: 'inputs',
icon: 'mdi:account-outline',
inputs: [],
outputs: [{ id: 'message', name: 'Message', type: 'output', dataType: 'string' }],
configSchema: {
type: 'object',
properties: {
placeholder: {
type: 'string',
title: 'Placeholder',
default: 'Ask me anything...'
}
}
}
},
{
id: 'llm_call',
name: 'LLM Call',
type: 'workflowNode',
category: 'models',
icon: 'mdi:robot-outline',
inputs: [{ id: 'prompt', name: 'Prompt', type: 'input', dataType: 'string' }],
outputs: [
{ id: 'response', name: 'Response', type: 'output', dataType: 'string' },
{ id: 'metadata', name: 'Metadata', type: 'output', dataType: 'json' }
],
configSchema: {
type: 'object',
properties: {
model: {
type: 'string',
title: 'Model',
oneOf: [
{ const: 'gpt-4', title: 'GPT-4' },
{ const: 'claude-3-sonnet', title: 'Claude 3 Sonnet' },
{ const: 'claude-3-haiku', title: 'Claude 3 Haiku' }
],
default: 'claude-3-sonnet'
},
system_prompt: {
type: 'string',
title: 'System Prompt',
format: 'template',
default:
'You are a helpful assistant. Classify the user message as either a "question" or a "task".',
variables: { ports: ['prompt'] }
},
temperature: {
type: 'number',
title: 'Temperature',
minimum: 0,
maximum: 2,
default: 0.3
}
}
}
},
{
id: 'intent_router',
name: 'Intent Router',
type: 'gateway',
category: 'logic',
icon: 'mdi:directions-fork',
inputs: [
{ id: 'input', name: 'Input', type: 'input', dataType: 'string' },
{ id: 'metadata', name: 'Metadata', type: 'input', dataType: 'json' }
],
outputs: [{ id: 'default', name: 'Default', type: 'output', dataType: 'string' }],
configSchema: {
type: 'object',
properties: {
condition_field: {
type: 'string',
title: 'Condition Field',
default: 'intent'
}
}
}
},
{
id: 'text_output',
name: 'Text Output',
type: 'simple',
category: 'outputs',
icon: 'mdi:text',
inputs: [{ id: 'input', name: 'Text', type: 'input', dataType: 'string' }],
outputs: [],
configSchema: {
type: 'object',
properties: {
format: {
type: 'string',
title: 'Format',
enum: ['plain', 'markdown', 'json'],
default: 'markdown'
}
}
}
}
];