@zerogpu/n8n-nodes-zerogpu 0.2.0 → 0.3.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 (40) hide show
  1. package/README.md +64 -12
  2. package/dist/nodes/ZeroGpu/ZeroGpu.node.d.ts +10 -0
  3. package/dist/nodes/ZeroGpu/ZeroGpu.node.js +70 -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/classification/index.d.ts +2 -0
  10. package/dist/nodes/ZeroGpu/resources/classification/index.js +65 -0
  11. package/dist/nodes/ZeroGpu/resources/classification/index.js.map +1 -0
  12. package/dist/nodes/ZeroGpu/resources/document/index.d.ts +2 -0
  13. package/dist/nodes/ZeroGpu/resources/document/index.js +37 -0
  14. package/dist/nodes/ZeroGpu/resources/document/index.js.map +1 -0
  15. package/dist/nodes/ZeroGpu/resources/extraction/index.d.ts +2 -0
  16. package/dist/nodes/ZeroGpu/resources/extraction/index.js +57 -0
  17. package/dist/nodes/ZeroGpu/resources/extraction/index.js.map +1 -0
  18. package/dist/nodes/ZeroGpu/resources/moderation/index.d.ts +2 -0
  19. package/dist/nodes/ZeroGpu/resources/moderation/index.js +28 -0
  20. package/dist/nodes/ZeroGpu/resources/moderation/index.js.map +1 -0
  21. package/dist/nodes/ZeroGpu/resources/summarization/index.d.ts +2 -0
  22. package/dist/nodes/ZeroGpu/resources/summarization/index.js +28 -0
  23. package/dist/nodes/ZeroGpu/resources/summarization/index.js.map +1 -0
  24. package/dist/nodes/ZeroGpu/shared/descriptions.d.ts +7 -0
  25. package/dist/nodes/ZeroGpu/shared/descriptions.js +83 -0
  26. package/dist/nodes/ZeroGpu/shared/descriptions.js.map +1 -0
  27. package/dist/nodes/ZeroGpu/shared/operations.d.ts +3 -0
  28. package/dist/nodes/ZeroGpu/shared/operations.js +19 -0
  29. package/dist/nodes/ZeroGpu/shared/operations.js.map +1 -0
  30. package/dist/nodes/ZeroGpu/shared/routing.d.ts +5 -0
  31. package/dist/nodes/ZeroGpu/shared/routing.js +170 -0
  32. package/dist/nodes/ZeroGpu/shared/routing.js.map +1 -0
  33. package/dist/nodes/ZeroGpuChatModel/ZeroGpuChatModel.node.js +11 -12
  34. package/dist/nodes/ZeroGpuChatModel/ZeroGpuChatModel.node.js.map +1 -1
  35. package/dist/nodes/shared/models.d.ts +19 -0
  36. package/dist/nodes/shared/models.js +16 -0
  37. package/dist/nodes/shared/models.js.map +1 -0
  38. package/dist/package.json +2 -1
  39. package/dist/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +2 -1
package/README.md CHANGED
@@ -33,11 +33,30 @@ Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes
33
33
 
34
34
  ## Operations
35
35
 
36
- **ZeroGPU Chat Model** connects ZeroGPU's language models to n8n's AI nodes, such as AI Agent and Basic LLM Chain. More ZeroGPU models and operations will arrive in later releases.
36
+ The package has two nodes:
37
+
38
+ - **ZeroGPU** runs ZeroGPU's task models on text and documents. Use it as a step in any workflow, or attach it to an AI Agent as **ZeroGPU Tool**.
39
+ - **ZeroGPU Chat Model** connects ZeroGPU's language models to n8n's AI nodes, such as AI Agent and Basic LLM Chain.
40
+
41
+ The **ZeroGPU** node has these operations:
42
+
43
+ | Resource | Operation | Returns | Default model |
44
+ | -------------- | --------------------- | ------------------------------------------------------------------------------- | ------------------------------ |
45
+ | Classification | Classify by Labels | A score for each label | `deberta-v3-small` |
46
+ | | Classify by Schema | One label for each category | `gliner2.5-base-v1` |
47
+ | | Classify Domain | IAB categories, audiences and topics for a domain name | `zlm-v1-iab-domain-classifier` |
48
+ | | Classify IAB Category | IAB content and audience categories | `zlm-v1-iab-classify-edge` |
49
+ | Document | Extract Text | The document's text as Markdown | `unlimited-ocr` |
50
+ | Extraction | Detect PII | The personal data found, grouped by type | `gliner2.5-base-v1` |
51
+ | | Extract Entities | The entities found, grouped by type | `gliner2.5-base-v1` |
52
+ | | Extract JSON | The fields in your schema, filled in from the text | `gliner2.5-base-v1` |
53
+ | | Redact PII | The text with personal data replaced by tags like `[EMAIL]`, and what was found | `gliner2.5-base-v1` |
54
+ | Moderation | Moderate Text | Whether the text is flagged, with a score for each safety category | `zlm-v1-moderation-edge` |
55
+ | Summarization | Summarize Text | A short summary | `llama-3.1-8b-instruct-fast` |
37
56
 
38
57
  ## Credentials
39
58
 
40
- The package includes a **ZeroGPU API** credential, which the ZeroGPU Chat Model node uses to call ZeroGPU:
59
+ The package includes a **ZeroGPU API** credential, which both nodes use to call ZeroGPU:
41
60
 
42
61
  1. Log in to the [ZeroGPU dashboard](https://platform.zerogpu.ai/dashboard).
43
62
  2. Copy a key from the **API Keys** page.
@@ -47,9 +66,37 @@ n8n checks the key when you save the credential. The check doesn't run any infer
47
66
 
48
67
  ## Usage
49
68
 
69
+ ### ZeroGPU
70
+
71
+ 1. Add a **ZeroGPU** node to your workflow and select your **ZeroGPU API** credential.
72
+ 2. Choose a **Resource** and an **Operation**.
73
+ 3. Choose a model. The list shows the ZeroGPU models that can run the operation and comes from ZeroGPU, so it stays current as models are added. To use a model that isn't listed, switch **Model** to an expression and enter its ID.
74
+
75
+ Some fields take a particular format:
76
+
77
+ - **Labels**: separate the labels with commas, like `positive, negative, neutral`. A label can't contain a comma. **Detect PII** and **Redact PII** start with common types of personal data. Edit the list to find other types.
78
+ - **Schema** for **Classify by Schema**: a JSON object that maps each category to the labels to choose from, like `{"sentiment": ["positive", "negative", "neutral"], "topic": ["billing", "support"]}`.
79
+ - **Schema** for **Extract JSON**: a JSON object that maps each group to its fields, written as `name::type::description`, like `{"contact": ["name::str::Full name", "email::str::Email address"]}`.
80
+ - **Threshold**, under **Options**: the minimum confidence, from 0 to 1, for a label or entity to be returned. Lower it to find more.
81
+ - **Document URL**: the public URL of a PDF, scanned document or image. ZeroGPU bills **Extract Text** per page.
82
+
83
+ **Redact PII** replaces every place each value it finds appears, so a name mentioned three times is replaced three times. It only finds the types listed in **Labels**.
84
+
85
+ ### ZeroGPU Tool
86
+
87
+ Attach the **ZeroGPU** node to an AI Agent so the agent can call it:
88
+
89
+ 1. In an **AI Agent** node, click **+** under **Tool**, search for **ZeroGPU** and choose **ZeroGPU Tool**.
90
+ 2. Select your credential, then choose a **Resource** and an **Operation**. Each tool runs one operation, so add a tool for each operation the agent should use.
91
+ 3. For each field the agent should fill in, such as **Text**, click **Let the model define this parameter** next to it. Leave fields like **Model** and **Labels** fixed if the agent shouldn't change them.
92
+
93
+ n8n describes the tool to the agent based on its operation. To write the description yourself, set **Tool Description** to **Set Manually**.
94
+
95
+ ### ZeroGPU Chat Model
96
+
50
97
  1. Add an **AI Agent** or **Basic LLM Chain** node to your workflow.
51
98
  2. Connect a **ZeroGPU Chat Model** node to its **Chat Model** input and select your **ZeroGPU API** credential.
52
- 3. Choose a model. The list comes from ZeroGPU, so it stays current as models are added. To use a model that isn't listed, switch **Model** to an expression and enter its ID. Model IDs are case-sensitive.
99
+ 3. Choose a model. The list shows ZeroGPU's text generation and summarization models and comes from ZeroGPU, so it stays current as models are added. To use a model that isn't listed, switch **Model** to an expression and enter its ID. Model IDs are case-sensitive.
53
100
 
54
101
  Each setting under **Options** is sent only if you add it:
55
102
 
@@ -61,18 +108,23 @@ Each setting under **Options** is sent only if you add it:
61
108
 
62
109
  Some models have limits:
63
110
 
64
- - Models labelled **no tool calling** can't use AI Agent tools or return schema-validated JSON. Use them in a Basic LLM Chain, or choose another model for an agent with tools.
65
- - If you set **Maximum Tokens** or **Reasoning Effort** on a model that doesn't support it, the node stops with an error.
111
+ - Some models can't use AI Agent tools or return schema-validated JSON, and stop with `Tool calling is not supported for model`. Models labelled **no tool calling** are among them. Use them in a Basic LLM Chain, or choose another model for an agent with tools.
112
+ - If you set **Maximum Tokens** or **Reasoning Effort** on a model that doesn't support it, the node stops with an error. A few models accept a setting and ignore it instead: **Reasoning Effort** on `gpt-4.1-mini` and `llama-3.1-8b-instruct-fast`, and **Maximum Tokens** on `zlm-v1-tool-decisions`.
66
113
  - `gpt-6-luna` only accepts its default temperature, so leave **Sampling Temperature** unset.
67
114
 
68
- If n8n shows a general error, open its details to see ZeroGPU's message:
115
+ ### Errors
116
+
117
+ If n8n shows a general error in either node, open its details to see ZeroGPU's message:
69
118
 
70
- | Message | What to do |
71
- | ---------------------------------------------------------------------- | --------------------------------------------------------------- |
72
- | `Invalid credentials` | Check the API key in your **ZeroGPU API** credential. |
73
- | `Model not found` | Check the model ID, including its capitalization. |
74
- | `Tool calling is not supported for model` | Choose a model that isn't labelled **no tool calling**. |
75
- | `doesn't support Maximum Tokens` or `doesn't support Reasoning Effort` | Remove that setting under **Options**, or choose another model. |
119
+ | Message | What to do |
120
+ | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
121
+ | `Invalid credentials` | Check the API key in your **ZeroGPU API** credential. |
122
+ | `Model not found` | Check the model ID, including its capitalization. |
123
+ | `Tool calling is not supported for model` | Choose another model, or use a Basic LLM Chain. |
124
+ | `doesn't support Maximum Tokens`, `doesn't support Reasoning Effort` or `Unsupported parameter` | Remove that setting under **Options**, or choose another model. |
125
+ | `Upstream inference failed` | ZeroGPU couldn't run the model this time. Run the node again, or turn on **Retry On Fail** in the node's settings. |
126
+ | `Model not supported` or `Unsupported usecase` | Choose a model from the list for the operation. |
127
+ | `Enter at least one label`, `Schema must be a JSON object…` or `Threshold must be a number from 0 to 1` | Fix the field named in the message. |
76
128
 
77
129
  ## Compatibility
78
130
 
@@ -0,0 +1,10 @@
1
+ import { type INodeType, type INodeTypeDescription } from 'n8n-workflow';
2
+ import { getModels } from './loadOptions/getModels';
3
+ export declare class ZeroGpu implements INodeType {
4
+ description: INodeTypeDescription;
5
+ methods: {
6
+ loadOptions: {
7
+ getModels: typeof getModels;
8
+ };
9
+ };
10
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZeroGpu = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const getModels_1 = require("./loadOptions/getModels");
6
+ const classification_1 = require("./resources/classification");
7
+ const document_1 = require("./resources/document");
8
+ const extraction_1 = require("./resources/extraction");
9
+ const moderation_1 = require("./resources/moderation");
10
+ const summarization_1 = require("./resources/summarization");
11
+ class ZeroGpu {
12
+ constructor() {
13
+ this.description = {
14
+ displayName: 'ZeroGPU',
15
+ name: 'zeroGpu',
16
+ icon: { light: 'file:../../icons/zerogpu.svg', dark: 'file:../../icons/zerogpu.dark.svg' },
17
+ group: ['transform'],
18
+ version: 1,
19
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
20
+ description: 'Classify, extract, redact, moderate and summarize text, and read documents, with ZeroGPU models',
21
+ defaults: {
22
+ name: 'ZeroGPU',
23
+ },
24
+ usableAsTool: true,
25
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
26
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
27
+ credentials: [
28
+ {
29
+ name: 'zeroGpuApi',
30
+ required: true,
31
+ },
32
+ ],
33
+ requestDefaults: {
34
+ baseURL: 'https://api.zerogpu.ai/v1',
35
+ headers: {
36
+ Accept: 'application/json',
37
+ 'Content-Type': 'application/json',
38
+ },
39
+ },
40
+ properties: [
41
+ {
42
+ displayName: 'Resource',
43
+ name: 'resource',
44
+ type: 'options',
45
+ noDataExpression: true,
46
+ options: [
47
+ { name: 'Classification', value: 'classification' },
48
+ { name: 'Document', value: 'document' },
49
+ { name: 'Extraction', value: 'extraction' },
50
+ { name: 'Moderation', value: 'moderation' },
51
+ { name: 'Summarization', value: 'summarization' },
52
+ ],
53
+ default: 'classification',
54
+ },
55
+ ...classification_1.classificationDescription,
56
+ ...document_1.documentDescription,
57
+ ...extraction_1.extractionDescription,
58
+ ...moderation_1.moderationDescription,
59
+ ...summarization_1.summarizationDescription,
60
+ ],
61
+ };
62
+ this.methods = {
63
+ loadOptions: {
64
+ getModels: getModels_1.getModels,
65
+ },
66
+ };
67
+ }
68
+ }
69
+ exports.ZeroGpu = ZeroGpu;
70
+ //# sourceMappingURL=ZeroGpu.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZeroGpu.node.js","sourceRoot":"","sources":["../../../nodes/ZeroGpu/ZeroGpu.node.ts"],"names":[],"mappings":";;;AAAA,+CAA8F;AAC9F,uDAAoD;AACpD,+DAAuE;AACvE,mDAA2D;AAC3D,uDAA+D;AAC/D,uDAA+D;AAC/D,6DAAqE;AAErE,MAAa,OAAO;IAApB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,IAAI,EAAE,mCAAmC,EAAE;YAC1F,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EACV,iGAAiG;YAClG,QAAQ,EAAE;gBACT,IAAI,EAAE,SAAS;aACf;YACD,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE,2BAA2B;gBACpC,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;aACD;YACD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE;wBACnD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;wBACvC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;wBAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;wBAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;qBACjD;oBACD,OAAO,EAAE,gBAAgB;iBACzB;gBACD,GAAG,0CAAyB;gBAC5B,GAAG,8BAAmB;gBACtB,GAAG,kCAAqB;gBACxB,GAAG,kCAAqB;gBACxB,GAAG,wCAAwB;aAC3B;SACD,CAAC;QAEF,YAAO,GAAG;YACT,WAAW,EAAE;gBACZ,SAAS,EAAT,qBAAS;aACT;SACD,CAAC;IACH,CAAC;CAAA;AAzDD,0BAyDC"}
@@ -0,0 +1,18 @@
1
+ {
2
+ "node": "@zerogpu/n8n-nodes-zerogpu",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Development"],
6
+ "resources": {
7
+ "credentialDocumentation": [
8
+ {
9
+ "url": "https://docs.zerogpu.ai/docs/quickstart"
10
+ }
11
+ ],
12
+ "primaryDocumentation": [
13
+ {
14
+ "url": "https://github.com/zerogpu/n8n-nodes-zerogpu#readme"
15
+ }
16
+ ]
17
+ }
18
+ }
@@ -0,0 +1,2 @@
1
+ import type { ILoadOptionsFunctions, INodePropertyOptions } from 'n8n-workflow';
2
+ export declare function getModels(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getModels = getModels;
4
+ const models_1 = require("../../shared/models");
5
+ const operations_1 = require("../shared/operations");
6
+ async function getModels() {
7
+ const operation = this.getCurrentNodeParameter('operation');
8
+ const fits = operations_1.MODEL_FILTERS[operation];
9
+ if (!fits)
10
+ return [];
11
+ const models = await (0, models_1.fetchModels)(this);
12
+ return models
13
+ .filter(fits)
14
+ .map(({ modelId, pricing }) => ({
15
+ name: modelId,
16
+ value: modelId,
17
+ description: pricing === null || pricing === void 0 ? void 0 : pricing.description,
18
+ }))
19
+ .sort((a, b) => a.name.localeCompare(b.name));
20
+ }
21
+ //# sourceMappingURL=getModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getModels.js","sourceRoot":"","sources":["../../../../nodes/ZeroGpu/loadOptions/getModels.ts"],"names":[],"mappings":";;AAIA,8BAeC;AAlBD,gDAAkD;AAClD,qDAAqE;AAE9D,KAAK,UAAU,SAAS;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAc,CAAC;IACzE,MAAM,IAAI,GAAG,0BAAa,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAEvC,OAAO,MAAM;SACX,MAAM,CAAC,IAAI,CAAC;SACZ,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW;KACjC,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const classificationDescription: INodeProperties[];
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.classificationDescription = void 0;
4
+ const descriptions_1 = require("../../shared/descriptions");
5
+ const routing_1 = require("../../shared/routing");
6
+ const resource = 'classification';
7
+ exports.classificationDescription = [
8
+ {
9
+ displayName: 'Operation',
10
+ name: 'operation',
11
+ type: 'options',
12
+ noDataExpression: true,
13
+ displayOptions: { show: { resource: [resource] } },
14
+ options: [
15
+ {
16
+ name: 'Classify by Labels',
17
+ value: 'classifyByLabels',
18
+ action: 'Classify text by labels',
19
+ description: 'Score text against labels you choose, with no training',
20
+ routing: routing_1.chatCompletionsRouting,
21
+ },
22
+ {
23
+ name: 'Classify by Schema',
24
+ value: 'classifyBySchema',
25
+ action: 'Classify text by schema',
26
+ description: 'Pick one label for each category in a schema',
27
+ routing: routing_1.chatCompletionsRouting,
28
+ },
29
+ {
30
+ name: 'Classify Domain',
31
+ value: 'classifyDomain',
32
+ action: 'Classify a website by its domain',
33
+ description: 'Map a domain name to IAB categories, audiences and topics',
34
+ routing: routing_1.chatCompletionsRouting,
35
+ },
36
+ {
37
+ name: 'Classify IAB Category',
38
+ value: 'classifyIab',
39
+ action: 'Classify text into IAB categories',
40
+ description: 'Map text to the IAB content and audience taxonomies',
41
+ routing: routing_1.chatCompletionsRouting,
42
+ },
43
+ ],
44
+ default: 'classifyByLabels',
45
+ },
46
+ (0, descriptions_1.modelField)(resource, 'classifyByLabels', 'deberta-v3-small'),
47
+ (0, descriptions_1.modelField)(resource, 'classifyBySchema', 'gliner2.5-base-v1'),
48
+ (0, descriptions_1.modelField)(resource, 'classifyDomain', 'zlm-v1-iab-domain-classifier'),
49
+ (0, descriptions_1.modelField)(resource, 'classifyIab', 'zlm-v1-iab-classify-edge'),
50
+ (0, descriptions_1.textField)(resource, ['classifyByLabels', 'classifyBySchema', 'classifyIab'], 'The text to classify'),
51
+ {
52
+ displayName: 'Domain',
53
+ name: 'domain',
54
+ type: 'string',
55
+ required: true,
56
+ default: '',
57
+ placeholder: 'e.g. espn.com',
58
+ description: 'The domain name of the website to classify',
59
+ displayOptions: { show: { resource: [resource], operation: ['classifyDomain'] } },
60
+ },
61
+ (0, descriptions_1.labelsField)(resource, ['classifyByLabels'], 'The labels to score the text against'),
62
+ (0, descriptions_1.schemaField)(resource, 'classifyBySchema', 'JSON object that maps each category to the labels to choose from', '{"sentiment": ["positive", "negative", "neutral"], "topic": ["billing", "support"]}'),
63
+ (0, descriptions_1.thresholdOptions)(resource, ['classifyBySchema']),
64
+ ];
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/ZeroGpu/resources/classification/index.ts"],"names":[],"mappings":";;;AACA,4DAMmC;AACnC,kDAA8D;AAE9D,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAErB,QAAA,yBAAyB,GAAsB;IAC3D;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,oBAAoB;gBAC1B,KAAK,EAAE,kBAAkB;gBACzB,MAAM,EAAE,yBAAyB;gBACjC,WAAW,EAAE,wDAAwD;gBACrE,OAAO,EAAE,gCAAsB;aAC/B;YACD;gBACC,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,kBAAkB;gBACzB,MAAM,EAAE,yBAAyB;gBACjC,WAAW,EAAE,8CAA8C;gBAC3D,OAAO,EAAE,gCAAsB;aAC/B;YACD;gBACC,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,kCAAkC;gBAC1C,WAAW,EAAE,2DAA2D;gBACxE,OAAO,EAAE,gCAAsB;aAC/B;YACD;gBACC,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,mCAAmC;gBAC3C,WAAW,EAAE,qDAAqD;gBAClE,OAAO,EAAE,gCAAsB;aAC/B;SACD;QACD,OAAO,EAAE,kBAAkB;KAC3B;IACD,IAAA,yBAAU,EAAC,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,CAAC;IAC5D,IAAA,yBAAU,EAAC,QAAQ,EAAE,kBAAkB,EAAE,mBAAmB,CAAC;IAC7D,IAAA,yBAAU,EAAC,QAAQ,EAAE,gBAAgB,EAAE,8BAA8B,CAAC;IACtE,IAAA,yBAAU,EAAC,QAAQ,EAAE,aAAa,EAAE,0BAA0B,CAAC;IAC/D,IAAA,wBAAS,EACR,QAAQ,EACR,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,CAAC,EACvD,sBAAsB,CACtB;IACD;QACC,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE,4CAA4C;QACzD,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE;KACjF;IACD,IAAA,0BAAW,EAAC,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE,sCAAsC,CAAC;IACnF,IAAA,0BAAW,EACV,QAAQ,EACR,kBAAkB,EAClB,kEAAkE,EAClE,qFAAqF,CACrF;IACD,IAAA,+BAAgB,EAAC,QAAQ,EAAE,CAAC,kBAAkB,CAAC,CAAC;CAChD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const documentDescription: INodeProperties[];
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.documentDescription = void 0;
4
+ const descriptions_1 = require("../../shared/descriptions");
5
+ const routing_1 = require("../../shared/routing");
6
+ const resource = 'document';
7
+ exports.documentDescription = [
8
+ {
9
+ displayName: 'Operation',
10
+ name: 'operation',
11
+ type: 'options',
12
+ noDataExpression: true,
13
+ displayOptions: { show: { resource: [resource] } },
14
+ options: [
15
+ {
16
+ name: 'Extract Text',
17
+ value: 'extractText',
18
+ action: 'Extract text from a document',
19
+ description: 'Read a PDF, scan or image at a URL and return its text as Markdown',
20
+ routing: routing_1.chatCompletionsRouting,
21
+ },
22
+ ],
23
+ default: 'extractText',
24
+ },
25
+ (0, descriptions_1.modelField)(resource, 'extractText', 'unlimited-ocr'),
26
+ {
27
+ displayName: 'Document URL',
28
+ name: 'documentUrl',
29
+ type: 'string',
30
+ required: true,
31
+ default: '',
32
+ placeholder: 'e.g. https://example.com/invoice.pdf',
33
+ description: 'Public URL of the PDF, scanned document or image to read. Billed per page.',
34
+ displayOptions: { show: { resource: [resource], operation: ['extractText'] } },
35
+ },
36
+ ];
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/ZeroGpu/resources/document/index.ts"],"names":[],"mappings":";;;AACA,4DAAuD;AACvD,kDAA8D;AAE9D,MAAM,QAAQ,GAAG,UAAU,CAAC;AAEf,QAAA,mBAAmB,GAAsB;IACrD;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,cAAc;gBACpB,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,8BAA8B;gBACtC,WAAW,EAAE,oEAAoE;gBACjF,OAAO,EAAE,gCAAsB;aAC/B;SACD;QACD,OAAO,EAAE,aAAa;KACtB;IACD,IAAA,yBAAU,EAAC,QAAQ,EAAE,aAAa,EAAE,eAAe,CAAC;IACpD;QACC,WAAW,EAAE,cAAc;QAC3B,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,sCAAsC;QACnD,WAAW,EAAE,4EAA4E;QACzF,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE;KAC9E;CACD,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,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,3 @@
1
+ import { type ZeroGpuModel } from '../../shared/models';
2
+ export type Operation = 'classifyByLabels' | 'classifyBySchema' | 'classifyDomain' | 'classifyIab' | 'detectPii' | 'extractEntities' | 'extractJson' | 'extractText' | 'moderate' | 'redactPii' | 'summarize';
3
+ export declare const MODEL_FILTERS: Record<Operation, (model: ZeroGpuModel) => boolean>;