WIP - using deep agent to create dog using workflow
This commit is contained in:
115
backend/insert-demo-process.sql
Normal file
115
backend/insert-demo-process.sql
Normal file
@@ -0,0 +1,115 @@
|
||||
-- Insert demo AI process directly
|
||||
SET @process_id = '2d883482-4df0-44d7-b6cf-8541b482afe4';
|
||||
SET @version_id = '437b1e72-405e-4862-a8bc-f368e554b482';
|
||||
SET @user_id = 'system';
|
||||
|
||||
-- Insert process
|
||||
INSERT INTO ai_processes (id, name, created_by)
|
||||
VALUES (@process_id, 'Register New Pet', @user_id);
|
||||
|
||||
-- Insert process version with compiled graph
|
||||
INSERT INTO ai_process_versions (id, process_id, version, graph_json, compiled_json, created_by)
|
||||
VALUES (
|
||||
@version_id,
|
||||
@process_id,
|
||||
1,
|
||||
'{}',
|
||||
JSON_OBJECT(
|
||||
'id', 'register_new_pet',
|
||||
'name', 'Register New Pet',
|
||||
'description', 'Complete pet registration workflow',
|
||||
'allowCycles', false,
|
||||
'startNodeId', 'start',
|
||||
'endNodeIds', JSON_ARRAY('end'),
|
||||
'maxIterations', 50,
|
||||
'nodes', JSON_ARRAY(
|
||||
JSON_OBJECT('id', 'start', 'type', 'Start', 'data', JSON_OBJECT('label', 'Start')),
|
||||
JSON_OBJECT('id', 'extract_info', 'type', 'LLMDecisionNode', 'data', JSON_OBJECT(
|
||||
'label', 'Extract Info',
|
||||
'promptTemplate', 'Extract: petName, species, ownerFirstName, ownerLastName, ownerEmail, accountName from: {{state.message}}',
|
||||
'inputKeys', JSON_ARRAY('message'),
|
||||
'outputSchema', JSON_OBJECT(
|
||||
'type', 'object',
|
||||
'properties', JSON_OBJECT(
|
||||
'petName', JSON_OBJECT('type', 'string'),
|
||||
'species', JSON_OBJECT('type', 'string'),
|
||||
'ownerFirstName', JSON_OBJECT('type', 'string'),
|
||||
'ownerLastName', JSON_OBJECT('type', 'string'),
|
||||
'ownerEmail', JSON_OBJECT('type', 'string'),
|
||||
'accountName', JSON_OBJECT('type', 'string')
|
||||
),
|
||||
'required', JSON_ARRAY('petName', 'species', 'ownerFirstName', 'ownerLastName')
|
||||
)
|
||||
)),
|
||||
JSON_OBJECT('id', 'find_account', 'type', 'ToolNode', 'data', JSON_OBJECT(
|
||||
'label', 'Find Account',
|
||||
'toolName', 'findAccount',
|
||||
'argsTemplate', JSON_OBJECT('name', '{{state.accountName}}', 'email', '{{state.ownerEmail}}'),
|
||||
'outputMapping', JSON_OBJECT('found', 'accountFound', 'accountId', 'accountId')
|
||||
)),
|
||||
JSON_OBJECT('id', 'create_account', 'type', 'ToolNode', 'data', JSON_OBJECT(
|
||||
'label', 'Create Account',
|
||||
'toolName', 'createAccount',
|
||||
'argsTemplate', JSON_OBJECT('name', '{{state.accountName}}', 'email', '{{state.ownerEmail}}'),
|
||||
'outputMapping', JSON_OBJECT('accountId', 'accountId')
|
||||
)),
|
||||
JSON_OBJECT('id', 'find_contact', 'type', 'ToolNode', 'data', JSON_OBJECT(
|
||||
'label', 'Find Contact',
|
||||
'toolName', 'findContact',
|
||||
'argsTemplate', JSON_OBJECT(
|
||||
'firstName', '{{state.ownerFirstName}}',
|
||||
'lastName', '{{state.ownerLastName}}',
|
||||
'email', '{{state.ownerEmail}}',
|
||||
'accountId', '{{state.accountId}}'
|
||||
),
|
||||
'outputMapping', JSON_OBJECT('found', 'contactFound', 'contactId', 'contactId')
|
||||
)),
|
||||
JSON_OBJECT('id', 'create_contact', 'type', 'ToolNode', 'data', JSON_OBJECT(
|
||||
'label', 'Create Contact',
|
||||
'toolName', 'createContact',
|
||||
'argsTemplate', JSON_OBJECT(
|
||||
'firstName', '{{state.ownerFirstName}}',
|
||||
'lastName', '{{state.ownerLastName}}',
|
||||
'email', '{{state.ownerEmail}}',
|
||||
'accountId', '{{state.accountId}}'
|
||||
),
|
||||
'outputMapping', JSON_OBJECT('contactId', 'contactId')
|
||||
)),
|
||||
JSON_OBJECT('id', 'create_pet', 'type', 'ToolNode', 'data', JSON_OBJECT(
|
||||
'label', 'Create Pet',
|
||||
'toolName', 'createPet',
|
||||
'argsTemplate', JSON_OBJECT(
|
||||
'name', '{{state.petName}}',
|
||||
'species', '{{state.species}}',
|
||||
'ownerId', '{{state.contactId}}'
|
||||
),
|
||||
'outputMapping', JSON_OBJECT('petId', 'petId')
|
||||
)),
|
||||
JSON_OBJECT('id', 'end', 'type', 'End', 'data', JSON_OBJECT('label', 'End'))
|
||||
),
|
||||
'edges', JSON_ARRAY(
|
||||
JSON_OBJECT('id', 'e1', 'source', 'start', 'target', 'extract_info'),
|
||||
JSON_OBJECT('id', 'e2', 'source', 'extract_info', 'target', 'find_account'),
|
||||
JSON_OBJECT('id', 'e3', 'source', 'find_account', 'target', 'find_contact', 'condition', JSON_OBJECT('==', JSON_ARRAY(JSON_OBJECT('var', 'accountFound'), true))),
|
||||
JSON_OBJECT('id', 'e4', 'source', 'find_account', 'target', 'create_account', 'condition', JSON_OBJECT('==', JSON_ARRAY(JSON_OBJECT('var', 'accountFound'), false))),
|
||||
JSON_OBJECT('id', 'e5', 'source', 'create_account', 'target', 'find_contact'),
|
||||
JSON_OBJECT('id', 'e6', 'source', 'find_contact', 'target', 'create_pet', 'condition', JSON_OBJECT('==', JSON_ARRAY(JSON_OBJECT('var', 'contactFound'), true))),
|
||||
JSON_OBJECT('id', 'e7', 'source', 'find_contact', 'target', 'create_contact', 'condition', JSON_OBJECT('==', JSON_ARRAY(JSON_OBJECT('var', 'contactFound'), false))),
|
||||
JSON_OBJECT('id', 'e8', 'source', 'create_contact', 'target', 'create_pet'),
|
||||
JSON_OBJECT('id', 'e9', 'source', 'create_pet', 'target', 'end')
|
||||
)
|
||||
),
|
||||
@user_id
|
||||
);
|
||||
|
||||
-- Insert tool allowlist
|
||||
INSERT INTO ai_tool_configs (id, tool_name, enabled)
|
||||
VALUES
|
||||
(UUID(), 'findAccount', true),
|
||||
(UUID(), 'createAccount', true),
|
||||
(UUID(), 'findContact', true),
|
||||
(UUID(), 'createContact', true),
|
||||
(UUID(), 'createPet', true)
|
||||
ON DUPLICATE KEY UPDATE enabled = true;
|
||||
|
||||
SELECT 'Demo process inserted successfully!' as result;
|
||||
Reference in New Issue
Block a user