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.
- package/README.md +5 -1
- package/nodes/ollama-abort.html +53 -0
- package/nodes/ollama-abort.js +30 -0
- package/nodes/ollama-chat.html +214 -253
- package/nodes/ollama-chat.js +23 -2
- package/nodes/ollama-config-server.html +24 -0
- package/nodes/ollama-config-server.js +10 -0
- package/nodes/ollama-copy.html +29 -16
- package/nodes/ollama-copy.js +9 -1
- package/nodes/ollama-create.html +41 -53
- package/nodes/ollama-create.js +20 -5
- package/nodes/ollama-delete.html +26 -11
- package/nodes/ollama-delete.js +8 -1
- package/nodes/ollama-embed.html +238 -0
- package/nodes/ollama-embed.js +41 -0
- package/nodes/ollama-generate.html +50 -242
- package/nodes/ollama-generate.js +34 -5
- package/nodes/ollama-list.html +23 -13
- package/nodes/ollama-list.js +7 -1
- package/nodes/ollama-ps.html +153 -0
- package/nodes/{ollama-embeddings.js → ollama-ps.js} +10 -4
- package/nodes/ollama-pull.html +37 -26
- package/nodes/ollama-pull.js +10 -1
- package/nodes/ollama-push.html +37 -26
- package/nodes/ollama-push.js +10 -1
- package/nodes/ollama-show.html +36 -27
- package/nodes/ollama-show.js +20 -5
- package/package.json +7 -4
- package/nodes/ollama-embeddings.html +0 -275
|
@@ -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 Generate' },
|
|
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-generate">
|
|
@@ -27,279 +33,81 @@
|
|
|
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>
|
|
41
|
-
</dt>
|
|
42
|
-
<dd>The model to use for generating the next message.</dd>
|
|
43
|
-
|
|
44
|
-
<dt>
|
|
45
|
-
payload.prompt
|
|
46
|
-
|
|
47
|
-
<span class="property-type">string</span>
|
|
48
|
-
</dt>
|
|
49
|
-
<dd>The prompt to generate a response for.</dd>
|
|
50
|
-
|
|
51
36
|
<dt class="optional">
|
|
52
|
-
payload
|
|
53
|
-
|
|
54
|
-
<span class="property-type">array</span>
|
|
37
|
+
payload <span class="property-type">object</span>
|
|
55
38
|
</dt>
|
|
56
|
-
<dd>Images to be included, either as Uint8Array or base64 encoded strings.</dd>
|
|
57
|
-
|
|
58
|
-
<dt class="optional">
|
|
59
|
-
payload.system
|
|
60
39
|
|
|
61
|
-
<span class="property-type">string</span>
|
|
62
|
-
</dt>
|
|
63
|
-
<dd>Override the model system prompt.</dd>
|
|
64
|
-
|
|
65
|
-
<dt class="optional">
|
|
66
|
-
payload.template
|
|
67
|
-
|
|
68
|
-
<span class="property-type">string</span>
|
|
69
|
-
</dt>
|
|
70
|
-
<dd>Override the model template.</dd>
|
|
71
|
-
|
|
72
|
-
<dt class="optional">
|
|
73
|
-
payload.raw
|
|
74
|
-
|
|
75
|
-
<span class="property-type">boolean</span>
|
|
76
|
-
</dt>
|
|
77
|
-
<dd>Bypass the prompt template and pass the prompt directly to the model.</dd>
|
|
78
|
-
|
|
79
|
-
<dt class="optional">
|
|
80
|
-
payload.format
|
|
81
|
-
|
|
82
|
-
<span class="property-type">string</span>
|
|
83
|
-
</dt>
|
|
84
|
-
<dd>Set the expected format of the response (<code>json</code>).</dd>
|
|
85
|
-
|
|
86
|
-
<dt class="optional">
|
|
87
|
-
payload.stream
|
|
88
|
-
|
|
89
|
-
<span class="property-type">boolean</span>
|
|
90
|
-
</dt>
|
|
91
|
-
<dd>When true an AsyncGenerator is returned.</dd>
|
|
92
|
-
|
|
93
|
-
<dt class="optional">
|
|
94
|
-
payload.keep_alive
|
|
95
|
-
|
|
96
|
-
<span class="property-type">string | number</span>
|
|
97
|
-
</dt>
|
|
98
|
-
<dd>How long to keep the model loaded.</dd>
|
|
99
|
-
|
|
100
|
-
<dt class="optional">
|
|
101
|
-
payload.options
|
|
102
|
-
|
|
103
|
-
<span class="property-type">object</span>
|
|
104
|
-
</dt>
|
|
105
40
|
<dd>
|
|
106
|
-
|
|
41
|
+
The payload object.
|
|
107
42
|
|
|
108
|
-
<h4>Options</h4>
|
|
109
43
|
<dl class="message-properties">
|
|
110
|
-
<dt>
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
<span class="property-type">boolean</span>
|
|
114
|
-
</dt>
|
|
115
|
-
<dd>Use NUMA for the runtime.</dd>
|
|
116
|
-
|
|
117
|
-
<dt>
|
|
118
|
-
num_ctx
|
|
119
|
-
|
|
120
|
-
<span class="property-type">number</span>
|
|
121
|
-
</dt>
|
|
122
|
-
<dd>The number of contexts to use.</dd>
|
|
123
|
-
|
|
124
|
-
<dt>
|
|
125
|
-
num_batch
|
|
126
|
-
|
|
127
|
-
<span class="property-type">number</span>
|
|
128
|
-
</dt>
|
|
129
|
-
<dd>The number of batches to use.</dd>
|
|
130
|
-
|
|
131
|
-
<dt>
|
|
132
|
-
main_gpu
|
|
133
|
-
|
|
134
|
-
<span class="property-type">number</span>
|
|
135
|
-
</dt>
|
|
136
|
-
<dd>The main GPU to use.</dd>
|
|
137
|
-
|
|
138
|
-
<dt>
|
|
139
|
-
low_vram
|
|
140
|
-
|
|
141
|
-
<span class="property-type">boolean</span>
|
|
44
|
+
<dt class="optional">
|
|
45
|
+
payload.host <span class="property-type">string</span>
|
|
142
46
|
</dt>
|
|
143
|
-
<dd>
|
|
47
|
+
<dd>
|
|
48
|
+
The host of the Ollama instance.<br />
|
|
49
|
+
<em>Alternative to the <code>Server</code> field.</em>
|
|
50
|
+
</dd>
|
|
144
51
|
|
|
145
52
|
<dt>
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
<span class="property-type">boolean</span>
|
|
53
|
+
payload.model <span class="property-type">string</span>
|
|
149
54
|
</dt>
|
|
150
|
-
<dd>
|
|
55
|
+
<dd>The model to use for generating the next message.</dd>
|
|
151
56
|
|
|
152
57
|
<dt>
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
<span class="property-type">boolean</span>
|
|
58
|
+
payload.prompt <span class="property-type">string</span>
|
|
156
59
|
</dt>
|
|
157
|
-
<dd>
|
|
60
|
+
<dd>The prompt to generate a response for.</dd>
|
|
158
61
|
|
|
159
62
|
<dt>
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
<span class="property-type">boolean</span>
|
|
63
|
+
payload.suffix <span class="property-type">string</span>
|
|
163
64
|
</dt>
|
|
164
|
-
<dd>
|
|
65
|
+
<dd>The text after the model response.</dd>
|
|
165
66
|
|
|
166
|
-
<dt>
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
<span class="property-type">boolean</span>
|
|
67
|
+
<dt class="optional">
|
|
68
|
+
payload.images <span class="property-type">array</span>
|
|
170
69
|
</dt>
|
|
171
|
-
<dd>
|
|
172
|
-
|
|
173
|
-
<dt>
|
|
174
|
-
use_mlock
|
|
70
|
+
<dd>A list of base64-encoded images (for multimodal models such as <code>llava</code>)</dd>
|
|
175
71
|
|
|
176
|
-
|
|
72
|
+
<dt class="optional">
|
|
73
|
+
payload.format <span class="property-type">string</span>
|
|
177
74
|
</dt>
|
|
178
|
-
<dd>
|
|
75
|
+
<dd>The format to return a response in. Currently the only accepted value is <code>json</code></dd>
|
|
179
76
|
|
|
180
|
-
<dt>
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
<span class="property-type">boolean</span>
|
|
77
|
+
<dt class="optional">
|
|
78
|
+
payload.options <span class="property-type">object</span>
|
|
184
79
|
</dt>
|
|
185
|
-
<dd>
|
|
80
|
+
<dd>
|
|
81
|
+
Additional model parameters listed in the documentation for the <a href="https://github.com/ollama/ollama/blob/main/docs/modelfile.md#valid-parameters-and-values">Modelfile</a>.
|
|
82
|
+
</dd>
|
|
186
83
|
|
|
187
|
-
<dt>
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
<span class="property-type">number</span>
|
|
84
|
+
<dt class="optional">
|
|
85
|
+
payload.system <span class="property-type">string</span>
|
|
191
86
|
</dt>
|
|
192
|
-
<dd>
|
|
87
|
+
<dd>System message to (overrides what is defined in the <code>Modelfile</code>)</dd>
|
|
193
88
|
|
|
194
|
-
<dt>
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
<span class="property-type">number</span>
|
|
89
|
+
<dt class="optional">
|
|
90
|
+
payload.template <span class="property-type">string</span>
|
|
198
91
|
</dt>
|
|
199
|
-
<dd>The
|
|
200
|
-
|
|
201
|
-
<dt>
|
|
202
|
-
seed
|
|
92
|
+
<dd>The prompt template to use (overrides what is defined in the <code>Modelfile</code>)</dd>
|
|
203
93
|
|
|
204
|
-
|
|
94
|
+
<dt class="optional">
|
|
95
|
+
payload.stream <span class="property-type">boolean</span>
|
|
205
96
|
</dt>
|
|
206
|
-
<dd>
|
|
207
|
-
|
|
208
|
-
<dt>
|
|
209
|
-
num_predict
|
|
210
|
-
|
|
211
|
-
<span class="property-type">number</span>
|
|
212
|
-
</dt>
|
|
213
|
-
<dd>The number of predictions to use.</dd>
|
|
214
|
-
|
|
215
|
-
<dt>
|
|
216
|
-
top_k
|
|
217
|
-
|
|
218
|
-
<span class="property-type">number</span>
|
|
219
|
-
</dt>
|
|
220
|
-
<dd>The top k to use.</dd>
|
|
221
|
-
|
|
222
|
-
<dt>
|
|
223
|
-
top_p
|
|
224
|
-
|
|
225
|
-
<span class="property-type">number</span>
|
|
226
|
-
</dt>
|
|
227
|
-
<dd>The top p to use.</dd>
|
|
228
|
-
|
|
229
|
-
<dt>
|
|
230
|
-
typical_p
|
|
231
|
-
|
|
232
|
-
<span class="property-type">number</span>
|
|
233
|
-
</dt>
|
|
234
|
-
<dd>The typical p to use.</dd>
|
|
235
|
-
|
|
236
|
-
<dt>
|
|
237
|
-
repeat_last_n
|
|
97
|
+
<dd>If <code>false</code> the response will be returned as a single response object, rather than a stream of objects.</dd>
|
|
238
98
|
|
|
239
|
-
|
|
99
|
+
<dt class="optional">
|
|
100
|
+
payload.raw <span class="property-type">boolean</span>
|
|
240
101
|
</dt>
|
|
241
|
-
<dd>
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
<span class="property-type">number</span>
|
|
247
|
-
</dt>
|
|
248
|
-
<dd>The temperature to use.</dd>
|
|
249
|
-
|
|
250
|
-
<dt>
|
|
251
|
-
repeat_pentalty
|
|
252
|
-
|
|
253
|
-
<span class="property-type">number</span>
|
|
254
|
-
</dt>
|
|
255
|
-
<dd>The repeat pentalty to use.</dd>
|
|
256
|
-
|
|
257
|
-
<dt>
|
|
258
|
-
presence_penalty
|
|
259
|
-
|
|
260
|
-
<span class="property-type">number</span>
|
|
261
|
-
</dt>
|
|
262
|
-
<dd>The presence penalty to use.</dd>
|
|
263
|
-
|
|
264
|
-
<dt>
|
|
265
|
-
frequency_penalty
|
|
266
|
-
|
|
267
|
-
<span class="property-type">number</span>
|
|
268
|
-
</dt>
|
|
269
|
-
<dd>The frequency penalty to use.</dd>
|
|
270
|
-
|
|
271
|
-
<dt>
|
|
272
|
-
mirostat
|
|
273
|
-
|
|
274
|
-
<span class="property-type">boolean</span>
|
|
275
|
-
</dt>
|
|
276
|
-
<dd>Use mirostat.</dd>
|
|
277
|
-
|
|
278
|
-
<dt>
|
|
279
|
-
mirostat_tau
|
|
280
|
-
|
|
281
|
-
<span class="property-type">number</span>
|
|
282
|
-
</dt>
|
|
283
|
-
|
|
284
|
-
<dt>
|
|
285
|
-
mirostat_eta
|
|
286
|
-
|
|
287
|
-
<span class="property-type">number</span>
|
|
288
|
-
</dt>
|
|
289
|
-
|
|
290
|
-
<dt>
|
|
291
|
-
penalize_newline
|
|
292
|
-
|
|
293
|
-
<span class="property-type">boolean</span>
|
|
294
|
-
</dt>
|
|
295
|
-
<dd>Penalize newline.</dd>
|
|
296
|
-
|
|
297
|
-
<dt>
|
|
298
|
-
stop
|
|
102
|
+
<dd>
|
|
103
|
+
If <code>true</code> no formatting will be applied to the prompt.<br />
|
|
104
|
+
You may choose to use the <code>raw</code> parameter if you are specifying a full templated prompt in your request to the API.
|
|
105
|
+
</dd>
|
|
299
106
|
|
|
300
|
-
|
|
107
|
+
<dt class="optional">
|
|
108
|
+
payload.keep_alive <span class="property-type">string | number</span>
|
|
301
109
|
</dt>
|
|
302
|
-
<dd>
|
|
110
|
+
<dd>Controls how long the model will stay loaded into memory following the request (default: <code>5m</code>)</dd>
|
|
303
111
|
</dl>
|
|
304
112
|
</dd>
|
|
305
113
|
</dl>
|
package/nodes/ollama-generate.js
CHANGED
|
@@ -6,14 +6,43 @@ module.exports = function( RED ) {
|
|
|
6
6
|
const node = this
|
|
7
7
|
|
|
8
8
|
node.on( 'input', async function( msg ) {
|
|
9
|
-
const {
|
|
9
|
+
const {
|
|
10
|
+
host: payloadHost,
|
|
11
|
+
model,
|
|
12
|
+
prompt,
|
|
13
|
+
suffix,
|
|
14
|
+
system,
|
|
15
|
+
template,
|
|
16
|
+
raw,
|
|
17
|
+
images,
|
|
18
|
+
format,
|
|
19
|
+
stream,
|
|
20
|
+
keep_alive,
|
|
21
|
+
options
|
|
22
|
+
} = msg.payload
|
|
23
|
+
|
|
24
|
+
const server = RED.nodes.getNode( config.server )
|
|
25
|
+
|
|
26
|
+
const host = ( server ) ? server.host + ':' + server.port : payloadHost
|
|
10
27
|
|
|
11
28
|
const ollama = new Ollama( { host } )
|
|
12
29
|
|
|
13
|
-
const response = await ollama.generate( {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
30
|
+
const response = await ollama.generate( {
|
|
31
|
+
model,
|
|
32
|
+
prompt,
|
|
33
|
+
suffix,
|
|
34
|
+
system,
|
|
35
|
+
template,
|
|
36
|
+
raw,
|
|
37
|
+
images,
|
|
38
|
+
format,
|
|
39
|
+
stream,
|
|
40
|
+
keep_alive,
|
|
41
|
+
options
|
|
42
|
+
} )
|
|
43
|
+
.catch( error => {
|
|
44
|
+
node.error( error )
|
|
45
|
+
} )
|
|
17
46
|
|
|
18
47
|
msg.payload = response
|
|
19
48
|
node.send( msg )
|
package/nodes/ollama-list.html
CHANGED
|
@@ -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 List Local Models' },
|
|
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-list">
|
|
@@ -27,12 +33,23 @@
|
|
|
27
33
|
<h3>Inputs</h3>
|
|
28
34
|
|
|
29
35
|
<dl class="message-properties">
|
|
30
|
-
<dt>
|
|
31
|
-
payload
|
|
32
|
-
|
|
33
|
-
<span class="property-type">string</span>
|
|
36
|
+
<dt class="optional">
|
|
37
|
+
payload <span class="property-type">object</span>
|
|
34
38
|
</dt>
|
|
35
|
-
|
|
39
|
+
|
|
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
|
+
</dl>
|
|
52
|
+
</dd>
|
|
36
53
|
</dl>
|
|
37
54
|
|
|
38
55
|
<h3>Outputs</h3>
|
|
@@ -86,13 +103,6 @@
|
|
|
86
103
|
|
|
87
104
|
<h5>Details</h5>
|
|
88
105
|
<dl class="message-properties">
|
|
89
|
-
<dt>
|
|
90
|
-
parent_model
|
|
91
|
-
|
|
92
|
-
<span class="property-type">string</span>
|
|
93
|
-
</dt>
|
|
94
|
-
<dd>The parent model of the model.</dd>
|
|
95
|
-
|
|
96
106
|
<dt>
|
|
97
107
|
format
|
|
98
108
|
|
package/nodes/ollama-list.js
CHANGED
|
@@ -6,7 +6,13 @@ module.exports = function( RED ) {
|
|
|
6
6
|
const node = this
|
|
7
7
|
|
|
8
8
|
node.on( 'input', async function( msg ) {
|
|
9
|
-
const {
|
|
9
|
+
const {
|
|
10
|
+
host: payloadHost
|
|
11
|
+
} = msg.payload
|
|
12
|
+
|
|
13
|
+
const server = RED.nodes.getNode( config.server )
|
|
14
|
+
|
|
15
|
+
const host = ( server ) ? server.host + ':' + server.port : payloadHost
|
|
10
16
|
|
|
11
17
|
const ollama = new Ollama( { host } )
|
|
12
18
|
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
<script type="text/javascript">
|
|
2
|
+
RED.nodes.registerType( 'ollama-ps', {
|
|
3
|
+
category: 'AI',
|
|
4
|
+
color: 'rgb(186 230 253)',
|
|
5
|
+
defaults: {
|
|
6
|
+
name: { value: 'Ollama List Running Models' },
|
|
7
|
+
server: { value: '', type: 'ollama-config-server', required: false }
|
|
8
|
+
},
|
|
9
|
+
inputs: 1,
|
|
10
|
+
outputs: 1,
|
|
11
|
+
icon: 'ollama.png',
|
|
12
|
+
label: function() {
|
|
13
|
+
return this.name || 'ollama-ps';
|
|
14
|
+
},
|
|
15
|
+
} )
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<script type="text/html" data-template-name="ollama-ps">
|
|
19
|
+
<div class="form-row">
|
|
20
|
+
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
|
21
|
+
<input type="text" id="node-input-name" placeholder="Name" />
|
|
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>
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
<script type="text/html" data-help-name="ollama-ps">
|
|
31
|
+
<p>List models that are currently loaded into memory.</p>
|
|
32
|
+
|
|
33
|
+
<h3>Inputs</h3>
|
|
34
|
+
|
|
35
|
+
<dl class="message-properties">
|
|
36
|
+
<dt class="optional">
|
|
37
|
+
payload <span class="property-type">object</span>
|
|
38
|
+
</dt>
|
|
39
|
+
|
|
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
|
+
</dl>
|
|
52
|
+
</dd>
|
|
53
|
+
</dl>
|
|
54
|
+
|
|
55
|
+
<h3>Outputs</h3>
|
|
56
|
+
|
|
57
|
+
<dl class="message-properties">
|
|
58
|
+
<dt>
|
|
59
|
+
payload.models
|
|
60
|
+
|
|
61
|
+
<span class="property-type">array</span>
|
|
62
|
+
</dt>
|
|
63
|
+
<dd>
|
|
64
|
+
The list of models that are available locally.<br />
|
|
65
|
+
|
|
66
|
+
<h4>Model</h4>
|
|
67
|
+
<dl class="message-properties">
|
|
68
|
+
<dt>
|
|
69
|
+
name
|
|
70
|
+
|
|
71
|
+
<span class="property-type">string</span>
|
|
72
|
+
</dt>
|
|
73
|
+
|
|
74
|
+
<dt>
|
|
75
|
+
model
|
|
76
|
+
|
|
77
|
+
<span class="property-type">string</span>
|
|
78
|
+
</dt>
|
|
79
|
+
|
|
80
|
+
<dt>
|
|
81
|
+
size
|
|
82
|
+
|
|
83
|
+
<span class="property-type">number</span>
|
|
84
|
+
</dt>
|
|
85
|
+
|
|
86
|
+
<dt>
|
|
87
|
+
digest
|
|
88
|
+
|
|
89
|
+
<span class="property-type">string</span>
|
|
90
|
+
</dt>
|
|
91
|
+
|
|
92
|
+
<dt>
|
|
93
|
+
expires_at
|
|
94
|
+
|
|
95
|
+
<span class="property-type">Date</span>
|
|
96
|
+
</dt>
|
|
97
|
+
|
|
98
|
+
<dt>
|
|
99
|
+
size_vram
|
|
100
|
+
|
|
101
|
+
<span class="property-type">number</span>
|
|
102
|
+
</dt>
|
|
103
|
+
|
|
104
|
+
<dt>
|
|
105
|
+
details
|
|
106
|
+
|
|
107
|
+
<span class="property-type">object</span>
|
|
108
|
+
</dt>
|
|
109
|
+
<dd>
|
|
110
|
+
The details of the model.<br />
|
|
111
|
+
|
|
112
|
+
<h5>Details</h5>
|
|
113
|
+
<dl class="message-properties">
|
|
114
|
+
<dt>
|
|
115
|
+
parent_model
|
|
116
|
+
|
|
117
|
+
<span class="property-type">string</span>
|
|
118
|
+
</dt>
|
|
119
|
+
|
|
120
|
+
<dt>
|
|
121
|
+
format
|
|
122
|
+
|
|
123
|
+
<span class="property-type">string</span>
|
|
124
|
+
</dt>
|
|
125
|
+
|
|
126
|
+
<dt>
|
|
127
|
+
family
|
|
128
|
+
|
|
129
|
+
<span class="property-type">string</span>
|
|
130
|
+
</dt>
|
|
131
|
+
|
|
132
|
+
<dt>
|
|
133
|
+
families
|
|
134
|
+
|
|
135
|
+
<span class="property-type">array</span>
|
|
136
|
+
</dt>
|
|
137
|
+
|
|
138
|
+
<dt>
|
|
139
|
+
parameter_size
|
|
140
|
+
|
|
141
|
+
<span class="property-type">string</span>
|
|
142
|
+
</dt>
|
|
143
|
+
|
|
144
|
+
<dt>
|
|
145
|
+
quiantization_level
|
|
146
|
+
|
|
147
|
+
<span class="property-type">string</span>
|
|
148
|
+
</dt>
|
|
149
|
+
</dl>
|
|
150
|
+
</dd>
|
|
151
|
+
</dl>
|
|
152
|
+
</dd>
|
|
153
|
+
</script>
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
module.exports = function( RED ) {
|
|
2
2
|
const { Ollama } = require( 'ollama' )
|
|
3
3
|
|
|
4
|
-
function
|
|
4
|
+
function OllamaPsNode( config ) {
|
|
5
5
|
RED.nodes.createNode( this, config )
|
|
6
6
|
const node = this
|
|
7
7
|
|
|
8
8
|
node.on( 'input', async function( msg ) {
|
|
9
|
-
const {
|
|
9
|
+
const {
|
|
10
|
+
host: payloadHost
|
|
11
|
+
} = msg.payload
|
|
12
|
+
|
|
13
|
+
const server = RED.nodes.getNode( config.server )
|
|
14
|
+
|
|
15
|
+
const host = ( server ) ? server.host + ':' + server.port : payloadHost
|
|
10
16
|
|
|
11
17
|
const ollama = new Ollama( { host } )
|
|
12
18
|
|
|
13
|
-
const response = await ollama.
|
|
19
|
+
const response = await ollama.ps()
|
|
14
20
|
.catch( error => {
|
|
15
21
|
node.error( error )
|
|
16
22
|
} )
|
|
@@ -20,5 +26,5 @@ module.exports = function( RED ) {
|
|
|
20
26
|
} )
|
|
21
27
|
}
|
|
22
28
|
|
|
23
|
-
RED.nodes.registerType( 'ollama-
|
|
29
|
+
RED.nodes.registerType( 'ollama-ps', OllamaPsNode )
|
|
24
30
|
}
|