node-red-contrib-ollama 0.1.10 → 0.2.2

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.
@@ -3,7 +3,8 @@
3
3
  category: 'AI',
4
4
  color: 'rgb(186 230 253)',
5
5
  defaults: {
6
- name: { value: '' },
6
+ name: { value: 'Ollama Pull' },
7
+ server: { value: '', type: 'ollama-config-server', required: false }
7
8
  },
8
9
  inputs: 1,
9
10
  outputs: 1,
@@ -19,6 +20,11 @@
19
20
  <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
20
21
  <input type="text" id="node-input-name" placeholder="Name" />
21
22
  </div>
23
+
24
+ <div class="form-row">
25
+ <label for="node-input-server"><i class="fa fa-server"></i> Server</label>
26
+ <input type="text" id="node-input-server" />
27
+ </div>
22
28
  </script>
23
29
 
24
30
  <script type="text/html" data-help-name="ollama-pull">
@@ -27,33 +33,38 @@
27
33
  <h3>Inputs</h3>
28
34
 
29
35
  <dl class="message-properties">
30
- <dt>
31
- payload.host
32
-
33
- <span class="property-type">string</span>
34
- </dt>
35
- <dd>The host of the Ollama instance.</dd>
36
-
37
- <dt>
38
- payload.model
39
-
40
- <span class="property-type">string</span>
36
+ <dt class="optional">
37
+ payload <span class="property-type">object</span>
41
38
  </dt>
42
- <dd>The name of the model to download.</dd>
43
39
 
44
- <dt>
45
- payload.insecure
46
-
47
- <span class="property-type">boolean</span>
48
- </dt>
49
- <dd>Pull from servers whose identity cannot be verified.</dd>
50
-
51
- <dt>
52
- payload.stream
53
-
54
- <span class="property-type">boolean</span>
55
- </dt>
56
- <dd>When true an AsyncGenerator is returned.</dd>
40
+ <dd>
41
+ The payload object.
42
+
43
+ <dl class="message-properties">
44
+ <dt class="optional">
45
+ payload.host <span class="property-type">string</span>
46
+ </dt>
47
+ <dd>
48
+ The host of the Ollama instance.<br />
49
+ <em>Alternative to the <code>Server</code> field.</em>
50
+ </dd>
51
+
52
+ <dt>
53
+ payload.model <span class="property-type">string</span>
54
+ </dt>
55
+ <dd>The name of the model to download.</dd>
56
+
57
+ <dt>
58
+ payload.insecure <span class="property-type">boolean</span>
59
+ </dt>
60
+ <dd>Pull from servers whose identity cannot be verified.</dd>
61
+
62
+ <dt>
63
+ payload.stream <span class="property-type">boolean</span>
64
+ </dt>
65
+ <dd>When true an AsyncGenerator is returned.</dd>
66
+ </dl>
67
+ </dd>
57
68
  </dl>
58
69
 
59
70
  <h3>Outputs</h3>
@@ -6,7 +6,16 @@ module.exports = function( RED ) {
6
6
  const node = this
7
7
 
8
8
  node.on( 'input', async function( msg ) {
9
- const { host, model, insecure, stream } = msg.payload
9
+ const {
10
+ host: payloadHost,
11
+ model,
12
+ insecure,
13
+ stream
14
+ } = msg.payload
15
+
16
+ const server = RED.nodes.getNode( config.server )
17
+
18
+ const host = ( server ) ? server.host + ':' + server.port : payloadHost
10
19
 
11
20
  const ollama = new Ollama( { host } )
12
21
 
@@ -3,7 +3,8 @@
3
3
  category: 'AI',
4
4
  color: 'rgb(186 230 253)',
5
5
  defaults: {
6
- name: { value: '' },
6
+ name: { value: 'Ollama Push' },
7
+ server: { value: '', type: 'ollama-config-server', required: false }
7
8
  },
8
9
  inputs: 1,
9
10
  outputs: 1,
@@ -19,6 +20,11 @@
19
20
  <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
20
21
  <input type="text" id="node-input-name" placeholder="Name" />
21
22
  </div>
23
+
24
+ <div class="form-row">
25
+ <label for="node-input-server"><i class="fa fa-server"></i> Server</label>
26
+ <input type="text" id="node-input-server" />
27
+ </div>
22
28
  </script>
23
29
 
24
30
  <script type="text/html" data-help-name="ollama-push">
@@ -27,33 +33,38 @@
27
33
  <h3>Inputs</h3>
28
34
 
29
35
  <dl class="message-properties">
30
- <dt>
31
- payload.host
32
-
33
- <span class="property-type">string</span>
34
- </dt>
35
- <dd>The host of the Ollama instance.</dd>
36
-
37
- <dt>
38
- payload.model
39
-
40
- <span class="property-type">string</span>
36
+ <dt class="optional">
37
+ payload <span class="property-type">object</span>
41
38
  </dt>
42
- <dd>The name of the model to upload.</dd>
43
39
 
44
- <dt>
45
- payload.insecure
46
-
47
- <span class="property-type">boolean</span>
48
- </dt>
49
- <dd>Push to servers whose identity cannot be verified.</dd>
50
-
51
- <dt>
52
- payload.stream
53
-
54
- <span class="property-type">boolean</span>
55
- </dt>
56
- <dd>When true an AsyncGenerator is returned.</dd>
40
+ <dd>
41
+ The payload object.
42
+
43
+ <dl class="message-properties">
44
+ <dt class="optional">
45
+ payload.host <span class="property-type">string</span>
46
+ </dt>
47
+ <dd>
48
+ The host of the Ollama instance.<br />
49
+ <em>Alternative to the <code>Server</code> field.</em>
50
+ </dd>
51
+
52
+ <dt>
53
+ payload.model <span class="property-type">string</span>
54
+ </dt>
55
+ <dd>The name of the model to upload.</dd>
56
+
57
+ <dt>
58
+ payload.insecure <span class="property-type">boolean</span>
59
+ </dt>
60
+ <dd>Push to servers whose identity cannot be verified.</dd>
61
+
62
+ <dt>
63
+ payload.stream <span class="property-type">boolean</span>
64
+ </dt>
65
+ <dd>When true an AsyncGenerator is returned.</dd>
66
+ </dl>
67
+ </dd>
57
68
  </dl>
58
69
 
59
70
  <h3>Outputs</h3>
@@ -6,7 +6,16 @@ module.exports = function( RED ) {
6
6
  const node = this
7
7
 
8
8
  node.on( 'input', async function( msg ) {
9
- const { host, model, insecure, stream } = msg.payload
9
+ const {
10
+ host: payloadHost,
11
+ model,
12
+ insecure,
13
+ stream
14
+ } = msg.payload
15
+
16
+ const server = RED.nodes.getNode( config.server )
17
+
18
+ const host = ( server ) ? server.host + ':' + server.port : payloadHost
10
19
 
11
20
  const ollama = new Ollama( { host } )
12
21
 
@@ -3,7 +3,8 @@
3
3
  category: 'AI',
4
4
  color: 'rgb(186 230 253)',
5
5
  defaults: {
6
- name: { value: '' },
6
+ name: { value: 'Ollama Show' },
7
+ server: { value: '', type: 'ollama-config-server', required: false }
7
8
  },
8
9
  inputs: 1,
9
10
  outputs: 1,
@@ -19,6 +20,11 @@
19
20
  <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
20
21
  <input type="text" id="node-input-name" placeholder="Name" />
21
22
  </div>
23
+
24
+ <div class="form-row">
25
+ <label for="node-input-server"><i class="fa fa-server"></i> Server</label>
26
+ <input type="text" id="node-input-server" />
27
+ </div>
22
28
  </script>
23
29
 
24
30
  <script type="text/html" data-help-name="ollama-show">
@@ -27,39 +33,42 @@
27
33
  <h3>Inputs</h3>
28
34
 
29
35
  <dl class="message-properties">
30
- <dt>
31
- payload.host
32
-
33
- <span class="property-type">string</span>
34
- </dt>
35
- <dd>The host of the Ollama instance.</dd>
36
-
37
- <dt>
38
- payload.model
39
-
40
- <span class="property-type">string</span>
36
+ <dt class="optional">
37
+ payload <span class="property-type">object</span>
41
38
  </dt>
42
- <dd>The model to show information for.</dd>
43
39
 
44
- <dt class="optional">
45
- payload.system
40
+ <dd>
41
+ The payload object.
46
42
 
47
- <span class="property-type">string</span>
48
- </dt>
49
- <dd>Override the model system prompt.</dd>
43
+ <dl class="message-properties">
44
+ <dt class="optional">
45
+ payload.host <span class="property-type">string</span>
46
+ </dt>
47
+ <dd>
48
+ The host of the Ollama instance.<br />
49
+ <em>Alternative to the <code>Server</code> field.</em>
50
+ </dd>
50
51
 
51
- <dt class="optional">
52
- payload.template
52
+ <dt>
53
+ payload.model <span class="property-type">string</span>
54
+ </dt>
55
+ <dd>The model to show information for.</dd>
53
56
 
54
- <span class="property-type">string</span>
55
- </dt>
57
+ <dt class="optional">
58
+ payload.system <span class="property-type">string</span>
59
+ </dt>
60
+ <dd>Override the model system prompt.</dd>
56
61
 
57
- <dt class="optional">
58
- payload.options
62
+ <dt class="optional">
63
+ payload.template <span class="property-type">string</span>
64
+ </dt>
59
65
 
60
- <span class="property-type">object</span>
61
- </dt>
62
- <dd>Options to configure the runtime.</dd>
66
+ <dt class="optional">
67
+ payload.options <span class="property-type">object</span>
68
+ </dt>
69
+ <dd>Options to configure the runtime.</dd>
70
+ </dl>
71
+ </dd>
63
72
  </dl>
64
73
 
65
74
  <h3>Outputs</h3>
@@ -6,14 +6,29 @@ module.exports = function( RED ) {
6
6
  const node = this
7
7
 
8
8
  node.on( 'input', async function( msg ) {
9
- const { host, name } = msg.payload
9
+ const {
10
+ host: payloadHost,
11
+ model,
12
+ system,
13
+ template,
14
+ options
15
+ } = msg.payload
16
+
17
+ const server = RED.nodes.getNode( config.server )
18
+
19
+ const host = ( server ) ? server.host + ':' + server.port : payloadHost
10
20
 
11
21
  const ollama = new Ollama( { host } )
12
22
 
13
- const response = await ollama.show( { name } )
14
- .catch( error => {
15
- node.error( error )
16
- } )
23
+ const response = await ollama.show( {
24
+ model,
25
+ system,
26
+ template,
27
+ options
28
+ } )
29
+ .catch( error => {
30
+ node.error( error )
31
+ } )
17
32
 
18
33
  msg.payload = response
19
34
  node.send( msg )
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-red-contrib-ollama",
3
- "version": "0.1.10",
3
+ "version": "0.2.2",
4
4
  "description": "Add AI functionality to your flows! This module includes a set of nodes that enable easy communication with Ollama, enriching your projects with intelligent solutions.",
5
5
  "keywords": [
6
6
  "ai",
@@ -21,19 +21,22 @@
21
21
  "ollama-copy": "nodes/ollama-copy.js",
22
22
  "ollama-create": "nodes/ollama-create.js",
23
23
  "ollama-delete": "nodes/ollama-delete.js",
24
- "ollama-embeddings": "nodes/ollama-embeddings.js",
24
+ "ollama-embed": "nodes/ollama-embed.js",
25
25
  "ollama-generate": "nodes/ollama-generate.js",
26
26
  "ollama-list": "nodes/ollama-list.js",
27
27
  "ollama-pull": "nodes/ollama-pull.js",
28
28
  "ollama-push": "nodes/ollama-push.js",
29
- "ollama-show": "nodes/ollama-show.js"
29
+ "ollama-show": "nodes/ollama-show.js",
30
+ "ollama-ps": "nodes/ollama-ps.js",
31
+ "ollama-abort": "nodes/ollama-abort.js",
32
+ "ollama-config-server": "nodes/ollama-config-server.js"
30
33
  }
31
34
  },
32
35
  "engines": {
33
36
  "node": ">=18.0.0"
34
37
  },
35
38
  "dependencies": {
36
- "ollama": "^0.5.1"
39
+ "ollama": "^0.5.11"
37
40
  },
38
41
  "bugs": {
39
42
  "url": "https://github.com/jakubburkiewicz/node-red-contrib-ollama/issues"
@@ -1,275 +0,0 @@
1
- <script type="text/javascript">
2
- RED.nodes.registerType( 'ollama-embeddings', {
3
- category: 'AI',
4
- color: 'rgb(186 230 253)',
5
- defaults: {
6
- name: { value: '' },
7
- },
8
- inputs: 1,
9
- outputs: 1,
10
- icon: 'ollama.png',
11
- label: function() {
12
- return this.name || 'ollama-embeddings';
13
- },
14
- } )
15
- </script>
16
-
17
- <script type="text/html" data-template-name="ollama-embeddings">
18
- <div class="form-row">
19
- <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
20
- <input type="text" id="node-input-name" placeholder="Name" />
21
- </div>
22
- </script>
23
-
24
- <script type="text/html" data-help-name="ollama-embeddings">
25
- <p>Generate embeddings from a model</p>
26
-
27
- <h3>Inputs</h3>
28
-
29
- <dl class="message-properties">
30
- <dt>
31
- payload.host
32
-
33
- <span class="property-type">string</span>
34
- </dt>
35
- <dd>The host of the Ollama instance.</dd>
36
-
37
- <dt>
38
- payload.model
39
-
40
- <span class="property-type">string</span>
41
- </dt>
42
- <dd>The model to use for generating embeddings.</dd>
43
-
44
- <dt>
45
- payload.prompt
46
-
47
- <span class="property-type">string</span>
48
- </dt>
49
- <dd>The prompt to use for generating embeddings.</dd>
50
-
51
- <dt class="optional">
52
- payload.keep_alive
53
-
54
- <span class="property-type">string | number</span>
55
- </dt>
56
- <dd>How long to keep the model loaded.</dd>
57
-
58
- <dt class="optional">
59
- payload.options
60
-
61
- <span class="property-type">object</span>
62
- </dt>
63
- <dd>
64
- Options to configure the runtime.<br />
65
-
66
- <h4>Options</h4>
67
- <dl class="message-properties">
68
- <dt>
69
- numa
70
-
71
- <span class="property-type">boolean</span>
72
- </dt>
73
- <dd>Use NUMA for the runtime.</dd>
74
-
75
- <dt>
76
- num_ctx
77
-
78
- <span class="property-type">number</span>
79
- </dt>
80
- <dd>The number of contexts to use.</dd>
81
-
82
- <dt>
83
- num_batch
84
-
85
- <span class="property-type">number</span>
86
- </dt>
87
- <dd>The number of batches to use.</dd>
88
-
89
- <dt>
90
- main_gpu
91
-
92
- <span class="property-type">number</span>
93
- </dt>
94
- <dd>The main GPU to use.</dd>
95
-
96
- <dt>
97
- low_vram
98
-
99
- <span class="property-type">boolean</span>
100
- </dt>
101
- <dd>Use low VRAM.</dd>
102
-
103
- <dt>
104
- f16_kv
105
-
106
- <span class="property-type">boolean</span>
107
- </dt>
108
- <dd>Use f16 key-value.</dd>
109
-
110
- <dt>
111
- logits_all
112
-
113
- <span class="property-type">boolean</span>
114
- </dt>
115
- <dd>Return all logits.</dd>
116
-
117
- <dt>
118
- vocab_only
119
-
120
- <span class="property-type">boolean</span>
121
- </dt>
122
- <dd>Return only the vocabulary.</dd>
123
-
124
- <dt>
125
- use_nmap
126
-
127
- <span class="property-type">boolean</span>
128
- </dt>
129
- <dd>Use NMAP.</dd>
130
-
131
- <dt>
132
- use_mlock
133
-
134
- <span class="property-type">boolean</span>
135
- </dt>
136
- <dd>Use mlock.</dd>
137
-
138
- <dt>
139
- embedding_only
140
-
141
- <span class="property-type">boolean</span>
142
- </dt>
143
- <dd>Return only the embeddings.</dd>
144
-
145
- <dt>
146
- num_thread
147
-
148
- <span class="property-type">number</span>
149
- </dt>
150
- <dd>The number of threads to use.</dd>
151
-
152
- <dt>
153
- num_keep
154
-
155
- <span class="property-type">number</span>
156
- </dt>
157
- <dd>The number of models to keep.</dd>
158
-
159
- <dt>
160
- seed
161
-
162
- <span class="property-type">number</span>
163
- </dt>
164
- <dd>The seed to use.</dd>
165
-
166
- <dt>
167
- num_predict
168
-
169
- <span class="property-type">number</span>
170
- </dt>
171
- <dd>The number of predictions to use.</dd>
172
-
173
- <dt>
174
- top_k
175
-
176
- <span class="property-type">number</span>
177
- </dt>
178
- <dd>The top k to use.</dd>
179
-
180
- <dt>
181
- top_p
182
-
183
- <span class="property-type">number</span>
184
- </dt>
185
- <dd>The top p to use.</dd>
186
-
187
- <dt>
188
- typical_p
189
-
190
- <span class="property-type">number</span>
191
- </dt>
192
- <dd>The typical p to use.</dd>
193
-
194
- <dt>
195
- repeat_last_n
196
-
197
- <span class="property-type">number</span>
198
- </dt>
199
- <dd>The repeat last n to use.</dd>
200
-
201
- <dt>
202
- temperature
203
-
204
- <span class="property-type">number</span>
205
- </dt>
206
- <dd>The temperature to use.</dd>
207
-
208
- <dt>
209
- repeat_pentalty
210
-
211
- <span class="property-type">number</span>
212
- </dt>
213
- <dd>The repeat pentalty to use.</dd>
214
-
215
- <dt>
216
- presence_penalty
217
-
218
- <span class="property-type">number</span>
219
- </dt>
220
- <dd>The presence penalty to use.</dd>
221
-
222
- <dt>
223
- frequency_penalty
224
-
225
- <span class="property-type">number</span>
226
- </dt>
227
- <dd>The frequency penalty to use.</dd>
228
-
229
- <dt>
230
- mirostat
231
-
232
- <span class="property-type">boolean</span>
233
- </dt>
234
- <dd>Use mirostat.</dd>
235
-
236
- <dt>
237
- mirostat_tau
238
-
239
- <span class="property-type">number</span>
240
- </dt>
241
-
242
- <dt>
243
- mirostat_eta
244
-
245
- <span class="property-type">number</span>
246
- </dt>
247
-
248
- <dt>
249
- penalize_newline
250
-
251
- <span class="property-type">boolean</span>
252
- </dt>
253
- <dd>Penalize newline.</dd>
254
-
255
- <dt>
256
- stop
257
-
258
- <span class="property-type">array</span>
259
- </dt>
260
- <dd>The stop to use.</dd>
261
- </dl>
262
- </dd>
263
- </dl>
264
-
265
- <h3>Outputs</h3>
266
-
267
- <dl class="message-properties">
268
- <dt>
269
- payload.embedding
270
-
271
- <span class="property-type">array</span>
272
- </dt>
273
- <dd>The embeddings generated from the model.</dd>
274
- </dl>
275
- </script>