@zerogpu/n8n-nodes-zerogpu 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +94 -12
  2. package/dist/nodes/ZeroGpu/ZeroGpu.node.d.ts +10 -0
  3. package/dist/nodes/ZeroGpu/ZeroGpu.node.js +76 -0
  4. package/dist/nodes/ZeroGpu/ZeroGpu.node.js.map +1 -0
  5. package/dist/nodes/ZeroGpu/ZeroGpu.node.json +18 -0
  6. package/dist/nodes/ZeroGpu/loadOptions/getModels.d.ts +2 -0
  7. package/dist/nodes/ZeroGpu/loadOptions/getModels.js +21 -0
  8. package/dist/nodes/ZeroGpu/loadOptions/getModels.js.map +1 -0
  9. package/dist/nodes/ZeroGpu/resources/audio/index.d.ts +2 -0
  10. package/dist/nodes/ZeroGpu/resources/audio/index.js +197 -0
  11. package/dist/nodes/ZeroGpu/resources/audio/index.js.map +1 -0
  12. package/dist/nodes/ZeroGpu/resources/classification/index.d.ts +2 -0
  13. package/dist/nodes/ZeroGpu/resources/classification/index.js +65 -0
  14. package/dist/nodes/ZeroGpu/resources/classification/index.js.map +1 -0
  15. package/dist/nodes/ZeroGpu/resources/document/index.d.ts +2 -0
  16. package/dist/nodes/ZeroGpu/resources/document/index.js +37 -0
  17. package/dist/nodes/ZeroGpu/resources/document/index.js.map +1 -0
  18. package/dist/nodes/ZeroGpu/resources/embedding/index.d.ts +2 -0
  19. package/dist/nodes/ZeroGpu/resources/embedding/index.js +28 -0
  20. package/dist/nodes/ZeroGpu/resources/embedding/index.js.map +1 -0
  21. package/dist/nodes/ZeroGpu/resources/extraction/index.d.ts +2 -0
  22. package/dist/nodes/ZeroGpu/resources/extraction/index.js +57 -0
  23. package/dist/nodes/ZeroGpu/resources/extraction/index.js.map +1 -0
  24. package/dist/nodes/ZeroGpu/resources/moderation/index.d.ts +2 -0
  25. package/dist/nodes/ZeroGpu/resources/moderation/index.js +28 -0
  26. package/dist/nodes/ZeroGpu/resources/moderation/index.js.map +1 -0
  27. package/dist/nodes/ZeroGpu/resources/summarization/index.d.ts +2 -0
  28. package/dist/nodes/ZeroGpu/resources/summarization/index.js +28 -0
  29. package/dist/nodes/ZeroGpu/resources/summarization/index.js.map +1 -0
  30. package/dist/nodes/ZeroGpu/shared/audio.d.ts +10 -0
  31. package/dist/nodes/ZeroGpu/shared/audio.js +169 -0
  32. package/dist/nodes/ZeroGpu/shared/audio.js.map +1 -0
  33. package/dist/nodes/ZeroGpu/shared/descriptions.d.ts +7 -0
  34. package/dist/nodes/ZeroGpu/shared/descriptions.js +83 -0
  35. package/dist/nodes/ZeroGpu/shared/descriptions.js.map +1 -0
  36. package/dist/nodes/ZeroGpu/shared/operations.d.ts +4 -0
  37. package/dist/nodes/ZeroGpu/shared/operations.js +23 -0
  38. package/dist/nodes/ZeroGpu/shared/operations.js.map +1 -0
  39. package/dist/nodes/ZeroGpu/shared/routing.d.ts +8 -0
  40. package/dist/nodes/ZeroGpu/shared/routing.js +177 -0
  41. package/dist/nodes/ZeroGpu/shared/routing.js.map +1 -0
  42. package/dist/nodes/ZeroGpuChatModel/ZeroGpuChatModel.node.js +11 -12
  43. package/dist/nodes/ZeroGpuChatModel/ZeroGpuChatModel.node.js.map +1 -1
  44. package/dist/nodes/ZeroGpuEmbeddings/ZeroGpuEmbeddings.node.d.ts +10 -0
  45. package/dist/nodes/ZeroGpuEmbeddings/ZeroGpuEmbeddings.node.js +154 -0
  46. package/dist/nodes/ZeroGpuEmbeddings/ZeroGpuEmbeddings.node.js.map +1 -0
  47. package/dist/nodes/ZeroGpuEmbeddings/ZeroGpuEmbeddings.node.json +18 -0
  48. package/dist/nodes/shared/models.d.ts +19 -0
  49. package/dist/nodes/shared/models.js +16 -0
  50. package/dist/nodes/shared/models.js.map +1 -0
  51. package/dist/package.json +4 -2
  52. package/dist/tsconfig.tsbuildinfo +1 -1
  53. package/package.json +4 -2
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.embeddingDescription = void 0;
4
+ const descriptions_1 = require("../../shared/descriptions");
5
+ const routing_1 = require("../../shared/routing");
6
+ const resource = 'embedding';
7
+ exports.embeddingDescription = [
8
+ {
9
+ displayName: 'Operation',
10
+ name: 'operation',
11
+ type: 'options',
12
+ noDataExpression: true,
13
+ displayOptions: { show: { resource: [resource] } },
14
+ options: [
15
+ {
16
+ name: 'Embed Text',
17
+ value: 'embedText',
18
+ action: 'Embed text',
19
+ description: 'Turn text into a vector for semantic search, clustering and deduplication',
20
+ routing: routing_1.embeddingsRouting,
21
+ },
22
+ ],
23
+ default: 'embedText',
24
+ },
25
+ (0, descriptions_1.modelField)(resource, 'embedText', 'all-minilm-l6-v2'),
26
+ (0, descriptions_1.textField)(resource, ['embedText'], 'The text to embed'),
27
+ ];
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/ZeroGpu/resources/embedding/index.ts"],"names":[],"mappings":";;;AACA,4DAAkE;AAClE,kDAAyD;AAEzD,MAAM,QAAQ,GAAG,WAAW,CAAC;AAEhB,QAAA,oBAAoB,GAAsB;IACtD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;QAClD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,YAAY;gBACpB,WAAW,EAAE,2EAA2E;gBACxF,OAAO,EAAE,2BAAiB;aAC1B;SACD;QACD,OAAO,EAAE,WAAW;KACpB;IACD,IAAA,yBAAU,EAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,CAAC;IACrD,IAAA,wBAAS,EAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACvD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const extractionDescription: INodeProperties[];
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractionDescription = void 0;
4
+ const descriptions_1 = require("../../shared/descriptions");
5
+ const routing_1 = require("../../shared/routing");
6
+ const resource = 'extraction';
7
+ const PII_LABELS = 'person, email, phone number, address, date of birth, credit card number, social security number, ip address';
8
+ exports.extractionDescription = [
9
+ {
10
+ displayName: 'Operation',
11
+ name: 'operation',
12
+ type: 'options',
13
+ noDataExpression: true,
14
+ displayOptions: { show: { resource: [resource] } },
15
+ options: [
16
+ {
17
+ name: 'Detect PII',
18
+ value: 'detectPii',
19
+ action: 'Detect PII in text',
20
+ description: 'Find personal data in text, grouped by type',
21
+ routing: routing_1.chatCompletionsRouting,
22
+ },
23
+ {
24
+ name: 'Extract Entities',
25
+ value: 'extractEntities',
26
+ action: 'Extract entities from text',
27
+ description: 'Find people, places, products or any entity types you name',
28
+ routing: routing_1.chatCompletionsRouting,
29
+ },
30
+ {
31
+ name: 'Extract JSON',
32
+ value: 'extractJson',
33
+ action: 'Extract JSON from text',
34
+ description: 'Pull the fields in a schema out of text into JSON',
35
+ routing: routing_1.chatCompletionsRouting,
36
+ },
37
+ {
38
+ name: 'Redact PII',
39
+ value: 'redactPii',
40
+ action: 'Redact PII from text',
41
+ description: 'Replace personal data in text with tags like [EMAIL]',
42
+ routing: routing_1.chatCompletionsRouting,
43
+ },
44
+ ],
45
+ default: 'detectPii',
46
+ },
47
+ (0, descriptions_1.modelField)(resource, 'detectPii', 'gliner2.5-base-v1'),
48
+ (0, descriptions_1.modelField)(resource, 'extractEntities', 'gliner2.5-base-v1'),
49
+ (0, descriptions_1.modelField)(resource, 'extractJson', 'gliner2.5-base-v1'),
50
+ (0, descriptions_1.modelField)(resource, 'redactPii', 'gliner2.5-base-v1'),
51
+ (0, descriptions_1.textField)(resource, ['detectPii', 'extractEntities', 'extractJson', 'redactPii'], 'The text to extract from'),
52
+ (0, descriptions_1.labelsField)(resource, ['detectPii', 'redactPii'], 'The types of personal data to find', PII_LABELS),
53
+ (0, descriptions_1.labelsField)(resource, ['extractEntities'], 'The entity types to find, like person or company'),
54
+ (0, descriptions_1.schemaField)(resource, 'extractJson', 'JSON object that maps each group to its fields, written as name::type::description', '{"contact": ["name::str::Full name", "email::str::Email address"]}'),
55
+ (0, descriptions_1.thresholdOptions)(resource, ['detectPii', 'extractEntities', 'redactPii']),
56
+ ];
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/ZeroGpu/resources/extraction/index.ts"],"names":[],"mappings":";;;AACA,4DAMmC;AACnC,kDAA8D;AAE9D,MAAM,QAAQ,GAAG,YAAY,CAAC;AAE9B,MAAM,UAAU,GACf,6GAA6G,CAAC;AAElG,QAAA,qBAAqB,GAAsB;IACvD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;QAClD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,oBAAoB;gBAC5B,WAAW,EAAE,6CAA6C;gBAC1D,OAAO,EAAE,gCAAsB;aAC/B;YACD;gBACC,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,4BAA4B;gBACpC,WAAW,EAAE,4DAA4D;gBACzE,OAAO,EAAE,gCAAsB;aAC/B;YACD;gBACC,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,wBAAwB;gBAChC,WAAW,EAAE,mDAAmD;gBAChE,OAAO,EAAE,gCAAsB;aAC/B;YACD;gBACC,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,sBAAsB;gBAC9B,WAAW,EAAE,sDAAsD;gBACnE,OAAO,EAAE,gCAAsB;aAC/B;SACD;QACD,OAAO,EAAE,WAAW;KACpB;IACD,IAAA,yBAAU,EAAC,QAAQ,EAAE,WAAW,EAAE,mBAAmB,CAAC;IACtD,IAAA,yBAAU,EAAC,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;IAC5D,IAAA,yBAAU,EAAC,QAAQ,EAAE,aAAa,EAAE,mBAAmB,CAAC;IACxD,IAAA,yBAAU,EAAC,QAAQ,EAAE,WAAW,EAAE,mBAAmB,CAAC;IACtD,IAAA,wBAAS,EACR,QAAQ,EACR,CAAC,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,CAAC,EAC5D,0BAA0B,CAC1B;IACD,IAAA,0BAAW,EACV,QAAQ,EACR,CAAC,WAAW,EAAE,WAAW,CAAC,EAC1B,oCAAoC,EACpC,UAAU,CACV;IACD,IAAA,0BAAW,EAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,kDAAkD,CAAC;IAC9F,IAAA,0BAAW,EACV,QAAQ,EACR,aAAa,EACb,oFAAoF,EACpF,oEAAoE,CACpE;IACD,IAAA,+BAAgB,EAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;CACzE,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const moderationDescription: INodeProperties[];
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.moderationDescription = void 0;
4
+ const descriptions_1 = require("../../shared/descriptions");
5
+ const routing_1 = require("../../shared/routing");
6
+ const resource = 'moderation';
7
+ exports.moderationDescription = [
8
+ {
9
+ displayName: 'Operation',
10
+ name: 'operation',
11
+ type: 'options',
12
+ noDataExpression: true,
13
+ displayOptions: { show: { resource: [resource] } },
14
+ options: [
15
+ {
16
+ name: 'Moderate Text',
17
+ value: 'moderate',
18
+ action: 'Moderate text',
19
+ description: 'Check text for harassment, hate, violence and other unsafe content',
20
+ routing: routing_1.moderationsRouting,
21
+ },
22
+ ],
23
+ default: 'moderate',
24
+ },
25
+ (0, descriptions_1.modelField)(resource, 'moderate', 'zlm-v1-moderation-edge'),
26
+ (0, descriptions_1.textField)(resource, ['moderate'], 'The text to check'),
27
+ ];
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/ZeroGpu/resources/moderation/index.ts"],"names":[],"mappings":";;;AACA,4DAAkE;AAClE,kDAA0D;AAE1D,MAAM,QAAQ,GAAG,YAAY,CAAC;AAEjB,QAAA,qBAAqB,GAAsB;IACvD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;QAClD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,eAAe;gBACvB,WAAW,EAAE,oEAAoE;gBACjF,OAAO,EAAE,4BAAkB;aAC3B;SACD;QACD,OAAO,EAAE,UAAU;KACnB;IACD,IAAA,yBAAU,EAAC,QAAQ,EAAE,UAAU,EAAE,wBAAwB,CAAC;IAC1D,IAAA,wBAAS,EAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CACtD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const summarizationDescription: INodeProperties[];
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.summarizationDescription = void 0;
4
+ const descriptions_1 = require("../../shared/descriptions");
5
+ const routing_1 = require("../../shared/routing");
6
+ const resource = 'summarization';
7
+ exports.summarizationDescription = [
8
+ {
9
+ displayName: 'Operation',
10
+ name: 'operation',
11
+ type: 'options',
12
+ noDataExpression: true,
13
+ displayOptions: { show: { resource: [resource] } },
14
+ options: [
15
+ {
16
+ name: 'Summarize Text',
17
+ value: 'summarize',
18
+ action: 'Summarize text',
19
+ description: 'Condense text into a short summary',
20
+ routing: routing_1.chatCompletionsRouting,
21
+ },
22
+ ],
23
+ default: 'summarize',
24
+ },
25
+ (0, descriptions_1.modelField)(resource, 'summarize', 'llama-3.1-8b-instruct-fast'),
26
+ (0, descriptions_1.textField)(resource, ['summarize'], 'The text to summarize'),
27
+ ];
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/ZeroGpu/resources/summarization/index.ts"],"names":[],"mappings":";;;AACA,4DAAkE;AAClE,kDAA8D;AAE9D,MAAM,QAAQ,GAAG,eAAe,CAAC;AAEpB,QAAA,wBAAwB,GAAsB;IAC1D;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;QAClD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,gBAAgB;gBACxB,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,gCAAsB;aAC/B;SACD;QACD,OAAO,EAAE,WAAW;KACpB;IACD,IAAA,yBAAU,EAAC,QAAQ,EAAE,WAAW,EAAE,4BAA4B,CAAC;IAC/D,IAAA,wBAAS,EAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,uBAAuB,CAAC;CAC3D,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { IExecuteSingleFunctions, IHttpRequestOptions, IN8nHttpFullResponse, INodeExecutionData, INodePropertyRouting } from 'n8n-workflow';
2
+ export declare const SPEECH_FORMATS: string[];
3
+ export declare const TRANSCRIPT_FORMATS: string[];
4
+ export declare function buildSpeechRequest(this: IExecuteSingleFunctions, requestOptions: IHttpRequestOptions): Promise<IHttpRequestOptions>;
5
+ export declare function buildTranscriptionRequest(this: IExecuteSingleFunctions, requestOptions: IHttpRequestOptions): Promise<IHttpRequestOptions>;
6
+ export declare function toSpeechBinary(this: IExecuteSingleFunctions, _items: INodeExecutionData[], response: IN8nHttpFullResponse): Promise<INodeExecutionData[]>;
7
+ export declare function parseTranscript(this: IExecuteSingleFunctions, _items: INodeExecutionData[], response: IN8nHttpFullResponse): Promise<INodeExecutionData[]>;
8
+ export declare const speechRouting: INodePropertyRouting;
9
+ export declare const transcriptionsRouting: INodePropertyRouting;
10
+ export declare const translationsRouting: INodePropertyRouting;
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.translationsRouting = exports.transcriptionsRouting = exports.speechRouting = exports.TRANSCRIPT_FORMATS = exports.SPEECH_FORMATS = void 0;
4
+ exports.buildSpeechRequest = buildSpeechRequest;
5
+ exports.buildTranscriptionRequest = buildTranscriptionRequest;
6
+ exports.toSpeechBinary = toSpeechBinary;
7
+ exports.parseTranscript = parseTranscript;
8
+ const n8n_workflow_1 = require("n8n-workflow");
9
+ const routing_1 = require("./routing");
10
+ exports.SPEECH_FORMATS = ['aac', 'flac', 'mp3', 'opus', 'pcm', 'wav'];
11
+ exports.TRANSCRIPT_FORMATS = ['json', 'srt', 'text', 'verbose_json', 'vtt'];
12
+ const SPEECH_NUMBERS = [
13
+ { name: 'seed', field: 'seed', label: 'Seed', min: 0, max: 4294967295, integer: true },
14
+ { name: 'temperature', field: 'temperature', label: 'Temperature', min: 0, max: 2 },
15
+ { name: 'topP', field: 'top_p', label: 'Top P', min: 0, max: 1 },
16
+ { name: 'topK', field: 'top_k', label: 'Top K', min: 0, max: 10000, integer: true },
17
+ {
18
+ name: 'repetitionPenalty',
19
+ field: 'repetition_penalty',
20
+ label: 'Repetition Penalty',
21
+ min: 1,
22
+ max: 4,
23
+ },
24
+ ];
25
+ const TRANSCRIPT_NUMBERS = [
26
+ { name: 'temperature', field: 'temperature', label: 'Temperature', min: 0, max: 1 },
27
+ ];
28
+ const getOptions = (context) => context.getNodeParameter('options', {});
29
+ function getNumbers(context, options, numbers) {
30
+ const fields = {};
31
+ for (const { name, field, label, min, max, integer } of numbers) {
32
+ const value = options[name];
33
+ if (value === undefined)
34
+ continue;
35
+ if (typeof value !== 'number' ||
36
+ !(value >= min && value <= max) ||
37
+ (integer && !Number.isInteger(value))) {
38
+ (0, routing_1.fail)(context, `${label} must be ${integer ? 'a whole number' : 'a number'} from ${min} to ${max}`);
39
+ }
40
+ fields[field] = value;
41
+ }
42
+ return fields;
43
+ }
44
+ function getFormat(context, options, formats) {
45
+ const value = options.responseFormat;
46
+ if (value === undefined)
47
+ return {};
48
+ if (typeof value !== 'string' || !formats.includes(value)) {
49
+ (0, routing_1.fail)(context, `Response Format must be one of ${formats.join(', ')}`);
50
+ }
51
+ return { response_format: value };
52
+ }
53
+ function getText(options, name) {
54
+ return typeof options[name] === 'string' ? options[name].trim() : '';
55
+ }
56
+ async function getFile(context, field) {
57
+ const { fileName, mimeType } = context.helpers.assertBinaryData(field);
58
+ const buffer = await context.helpers.getBinaryDataBuffer(field);
59
+ return {
60
+ blob: new Blob([new Uint8Array(buffer)], { type: mimeType }),
61
+ fileName: fileName !== null && fileName !== void 0 ? fileName : 'audio',
62
+ };
63
+ }
64
+ function sendForm(requestOptions, fields) {
65
+ const form = new FormData();
66
+ for (const [name, value] of Object.entries(fields))
67
+ form.append(name, String(value));
68
+ const headers = { ...requestOptions.headers };
69
+ for (const name of Object.keys(headers)) {
70
+ if (name.toLowerCase() === 'content-type')
71
+ delete headers[name];
72
+ }
73
+ requestOptions.headers = headers;
74
+ requestOptions.body = form;
75
+ return form;
76
+ }
77
+ async function buildSpeechRequest(requestOptions) {
78
+ const options = getOptions(this);
79
+ const fields = {
80
+ model: (0, routing_1.getRequiredString)(this, 'model', 'Model'),
81
+ input: (0, routing_1.getRequiredString)(this, 'text', 'Text'),
82
+ ...getFormat(this, options, exports.SPEECH_FORMATS),
83
+ ...getNumbers(this, options, SPEECH_NUMBERS),
84
+ };
85
+ const voiceSampleField = getText(options, 'voiceSampleField');
86
+ if (voiceSampleField === '') {
87
+ requestOptions.body = fields;
88
+ return requestOptions;
89
+ }
90
+ const { blob, fileName } = await getFile(this, voiceSampleField);
91
+ sendForm(requestOptions, fields).append('voice_sample', blob, fileName);
92
+ return requestOptions;
93
+ }
94
+ async function buildTranscriptionRequest(requestOptions) {
95
+ const options = getOptions(this);
96
+ const language = getText(options, 'language');
97
+ const prompt = getText(options, 'prompt');
98
+ const fields = {
99
+ model: (0, routing_1.getRequiredString)(this, 'model', 'Model'),
100
+ ...(language && this.getNodeParameter('operation') === 'transcribe' ? { language } : {}),
101
+ ...(prompt ? { prompt } : {}),
102
+ ...getFormat(this, options, exports.TRANSCRIPT_FORMATS),
103
+ ...getNumbers(this, options, TRANSCRIPT_NUMBERS),
104
+ };
105
+ const field = (0, routing_1.getRequiredString)(this, 'binaryPropertyName', 'Input Data Field Name').trim();
106
+ const { blob, fileName } = await getFile(this, field);
107
+ sendForm(requestOptions, fields).append('file', blob, fileName);
108
+ return requestOptions;
109
+ }
110
+ function isObject(value) {
111
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
112
+ }
113
+ function throwApiError(context, response) {
114
+ const text = Buffer.from(response.body).toString('utf8');
115
+ const parsed = (0, n8n_workflow_1.jsonParse)(text, { fallbackValue: {} });
116
+ const error = isObject(parsed) && isObject(parsed.error) ? parsed.error : {};
117
+ const description = typeof error.message === 'string' ? error.message : text;
118
+ throw new n8n_workflow_1.NodeApiError(context.getNode(), (isObject(parsed) ? parsed : {}), {
119
+ httpCode: String(response.statusCode),
120
+ description,
121
+ itemIndex: context.getItemIndex(),
122
+ });
123
+ }
124
+ async function toSpeechBinary(_items, response) {
125
+ var _a;
126
+ if (response.statusCode >= 400)
127
+ throwApiError(this, response);
128
+ const options = getOptions(this);
129
+ const format = getText(options, 'responseFormat') || 'mp3';
130
+ const outputField = getText(options, 'binaryPropertyOutput') || 'data';
131
+ const mimeType = String((_a = response.headers['content-type']) !== null && _a !== void 0 ? _a : '')
132
+ .split(';')[0]
133
+ .trim();
134
+ const binary = await this.helpers.prepareBinaryData(Buffer.from(response.body), `speech.${format}`, mimeType || undefined);
135
+ const duration = Number(response.headers['x-audio-duration-seconds']);
136
+ return [
137
+ {
138
+ json: Number.isFinite(duration) ? { durationSeconds: duration } : {},
139
+ binary: { [outputField]: binary },
140
+ },
141
+ ];
142
+ }
143
+ async function parseTranscript(_items, response) {
144
+ const { body } = response;
145
+ if (isObject(body))
146
+ return [{ json: body }];
147
+ if (body === undefined || body === null || body === '')
148
+ (0, routing_1.fail)(this, 'ZeroGPU returned no transcript');
149
+ return [{ json: { text: String(body) } }];
150
+ }
151
+ exports.speechRouting = {
152
+ request: {
153
+ method: 'POST',
154
+ url: '/audio/speech',
155
+ headers: { Accept: '*/*' },
156
+ encoding: 'arraybuffer',
157
+ ignoreHttpStatusErrors: true,
158
+ },
159
+ send: { preSend: [buildSpeechRequest] },
160
+ output: { postReceive: [toSpeechBinary] },
161
+ };
162
+ const transcriptRouting = (url) => ({
163
+ request: { method: 'POST', url, headers: { Accept: '*/*' } },
164
+ send: { preSend: [buildTranscriptionRequest] },
165
+ output: { postReceive: [parseTranscript] },
166
+ });
167
+ exports.transcriptionsRouting = transcriptRouting('/audio/transcriptions');
168
+ exports.translationsRouting = transcriptRouting('/audio/translations');
169
+ //# sourceMappingURL=audio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../../../nodes/ZeroGpu/shared/audio.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ import type { Operation } from './operations';
3
+ export declare function modelField(resource: string, operation: Operation, defaultModel: string): INodeProperties;
4
+ export declare function textField(resource: string, operation: Operation[], description: string): INodeProperties;
5
+ export declare function labelsField(resource: string, operation: Operation[], description: string, defaultLabels?: string): INodeProperties;
6
+ export declare function schemaField(resource: string, operation: Operation, description: string, example: string): INodeProperties;
7
+ export declare function thresholdOptions(resource: string, operation: Operation[]): INodeProperties;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.modelField = modelField;
4
+ exports.textField = textField;
5
+ exports.labelsField = labelsField;
6
+ exports.schemaField = schemaField;
7
+ exports.thresholdOptions = thresholdOptions;
8
+ const show = (resource, operation) => ({
9
+ show: { resource: [resource], operation },
10
+ });
11
+ function modelField(resource, operation, defaultModel) {
12
+ return {
13
+ displayName: 'Model Name or ID',
14
+ name: 'model',
15
+ type: 'options',
16
+ required: true,
17
+ typeOptions: {
18
+ loadOptionsMethod: 'getModels',
19
+ loadOptionsDependsOn: ['operation'],
20
+ allowArbitraryValues: true,
21
+ },
22
+ default: defaultModel,
23
+ description: 'The ZeroGPU model to use. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
24
+ displayOptions: show(resource, [operation]),
25
+ };
26
+ }
27
+ function textField(resource, operation, description) {
28
+ return {
29
+ displayName: 'Text',
30
+ name: 'text',
31
+ type: 'string',
32
+ required: true,
33
+ default: '',
34
+ typeOptions: { rows: 4 },
35
+ description,
36
+ displayOptions: show(resource, operation),
37
+ };
38
+ }
39
+ function labelsField(resource, operation, description, defaultLabels = '') {
40
+ return {
41
+ displayName: 'Labels',
42
+ name: 'labels',
43
+ type: 'string',
44
+ required: true,
45
+ default: defaultLabels,
46
+ placeholder: 'e.g. positive, negative, neutral',
47
+ description: `${description}, separated by commas`,
48
+ displayOptions: show(resource, operation),
49
+ };
50
+ }
51
+ function schemaField(resource, operation, description, example) {
52
+ return {
53
+ displayName: 'Schema',
54
+ name: 'schema',
55
+ type: 'json',
56
+ required: true,
57
+ default: '{}',
58
+ description,
59
+ hint: `For example: ${example}`,
60
+ displayOptions: show(resource, [operation]),
61
+ };
62
+ }
63
+ function thresholdOptions(resource, operation) {
64
+ return {
65
+ displayName: 'Options',
66
+ name: 'options',
67
+ type: 'collection',
68
+ placeholder: 'Add Option',
69
+ default: {},
70
+ displayOptions: show(resource, operation),
71
+ options: [
72
+ {
73
+ displayName: 'Threshold',
74
+ name: 'threshold',
75
+ type: 'number',
76
+ default: 0.3,
77
+ typeOptions: { minValue: 0, maxValue: 1, numberPrecision: 2 },
78
+ description: 'Minimum confidence, from 0 to 1, for a result to be returned',
79
+ },
80
+ ],
81
+ };
82
+ }
83
+ //# sourceMappingURL=descriptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptions.js","sourceRoot":"","sources":["../../../../nodes/ZeroGpu/shared/descriptions.ts"],"names":[],"mappings":";;AASA,gCAoBC;AAED,8BAeC;AAED,kCAgBC;AAED,kCAgBC;AAED,4CAmBC;AAlGD,MAAM,IAAI,GAAG,CAAC,QAAgB,EAAE,SAAsB,EAAkB,EAAE,CAAC,CAAC;IAC3E,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE;CACzC,CAAC,CAAC;AAEH,SAAgB,UAAU,CACzB,QAAgB,EAChB,SAAoB,EACpB,YAAoB;IAEpB,OAAO;QACN,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE;YACZ,iBAAiB,EAAE,WAAW;YAC9B,oBAAoB,EAAE,CAAC,WAAW,CAAC;YACnC,oBAAoB,EAAE,IAAI;SAC1B;QACD,OAAO,EAAE,YAAY;QACrB,WAAW,EACV,2IAA2I;QAC5I,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;KAC3C,CAAC;AACH,CAAC;AAED,SAAgB,SAAS,CACxB,QAAgB,EAChB,SAAsB,EACtB,WAAmB;IAEnB,OAAO;QACN,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;QACxB,WAAW;QACX,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;KACzC,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAC1B,QAAgB,EAChB,SAAsB,EACtB,WAAmB,EACnB,aAAa,GAAG,EAAE;IAElB,OAAO;QACN,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,aAAa;QACtB,WAAW,EAAE,kCAAkC;QAC/C,WAAW,EAAE,GAAG,WAAW,uBAAuB;QAClD,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;KACzC,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAC1B,QAAgB,EAChB,SAAoB,EACpB,WAAmB,EACnB,OAAe;IAEf,OAAO;QACN,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;QACb,WAAW;QACX,IAAI,EAAE,gBAAgB,OAAO,EAAE;QAC/B,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;KAC3C,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAgB,EAAE,SAAsB;IACxE,OAAO;QACN,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;QACzC,OAAO,EAAE;YACR;gBACC,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,GAAG;gBACZ,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE;gBAC7D,WAAW,EAAE,8DAA8D;aAC3E;SACD;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type ZeroGpuModel } from '../../shared/models';
2
+ export type AudioOperation = 'generateSpeech' | 'transcribe' | 'translate';
3
+ export type Operation = AudioOperation | 'classifyByLabels' | 'classifyBySchema' | 'classifyDomain' | 'classifyIab' | 'detectPii' | 'embedText' | 'extractEntities' | 'extractJson' | 'extractText' | 'moderate' | 'redactPii' | 'summarize';
4
+ export declare const MODEL_FILTERS: Record<Operation, (model: ZeroGpuModel) => boolean>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MODEL_FILTERS = void 0;
4
+ const models_1 = require("../../shared/models");
5
+ const hasUsecase = (usecase) => ({ modelUsecases }) => Boolean(modelUsecases && usecase in modelUsecases);
6
+ exports.MODEL_FILTERS = {
7
+ classifyByLabels: ({ taskType }) => taskType === 'classification',
8
+ classifyBySchema: hasUsecase('classification'),
9
+ classifyDomain: ({ taskType }) => taskType === 'iab_classify_domain',
10
+ classifyIab: ({ taskType }) => taskType === 'iab_classify',
11
+ detectPii: hasUsecase('ner'),
12
+ embedText: ({ taskType }) => taskType === 'embedding',
13
+ extractEntities: hasUsecase('ner'),
14
+ extractJson: hasUsecase('json'),
15
+ extractText: ({ modelId }) => modelId === models_1.OCR_MODEL_ID,
16
+ generateSpeech: ({ taskType }) => taskType === 'speech',
17
+ moderate: ({ taskType }) => taskType === 'moderation',
18
+ redactPii: hasUsecase('ner'),
19
+ summarize: ({ taskDisplayName }) => taskDisplayName === 'Summarization',
20
+ transcribe: ({ taskType }) => taskType === 'transcription',
21
+ translate: ({ taskType }) => taskType === 'transcription',
22
+ };
23
+ //# sourceMappingURL=operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../../nodes/ZeroGpu/shared/operations.ts"],"names":[],"mappings":";;;AAAA,gDAAsE;AAoBtE,MAAM,UAAU,GACf,CAAC,OAAe,EAAE,EAAE,CACpB,CAAC,EAAE,aAAa,EAAgB,EAAW,EAAE,CAC5C,OAAO,CAAC,aAAa,IAAI,OAAO,IAAI,aAAa,CAAC,CAAC;AAGxC,QAAA,aAAa,GAAwD;IACjF,gBAAgB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,gBAAgB;IACjE,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,CAAC;IAC9C,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,qBAAqB;IACpE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,cAAc;IAC1D,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC;IAC5B,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,WAAW;IACrD,eAAe,EAAE,UAAU,CAAC,KAAK,CAAC;IAClC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC;IAC/B,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,qBAAY;IACtD,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,QAAQ;IACvD,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,YAAY;IACrD,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC;IAC5B,SAAS,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,eAAe,KAAK,eAAe;IACvE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,eAAe;IAC1D,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,eAAe;CACzD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { IExecuteSingleFunctions, IHttpRequestOptions, IN8nHttpFullResponse, INodeExecutionData, INodePropertyRouting } from 'n8n-workflow';
2
+ export declare function fail(context: IExecuteSingleFunctions, message: string, description?: string): never;
3
+ export declare function getRequiredString(context: IExecuteSingleFunctions, name: string, label: string): string;
4
+ export declare function buildRequestBody(this: IExecuteSingleFunctions, requestOptions: IHttpRequestOptions): Promise<IHttpRequestOptions>;
5
+ export declare function parseResult(this: IExecuteSingleFunctions, _items: INodeExecutionData[], response: IN8nHttpFullResponse): Promise<INodeExecutionData[]>;
6
+ export declare const chatCompletionsRouting: INodePropertyRouting;
7
+ export declare const embeddingsRouting: INodePropertyRouting;
8
+ export declare const moderationsRouting: INodePropertyRouting;