node-red-contrib-ollama 0.0.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.
@@ -0,0 +1,48 @@
1
+ <script type="text/javascript">
2
+ RED.nodes.registerType( 'ollama-delete', {
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-delete';
13
+ },
14
+ } )
15
+ </script>
16
+
17
+ <script type="text/html" data-template-name="ollama-delete">
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-delete">
25
+ <p>Delete a model and its data.</p>
26
+
27
+ <h3>Inputs</h3>
28
+
29
+ <dl class="message-properties">
30
+ <dt>
31
+ payload.model
32
+
33
+ <span class="property-type">string</span>
34
+ </dt>
35
+ <dd>The name of the model to delete.</dd>
36
+ </dl>
37
+
38
+ <h3>Outputs</h3>
39
+
40
+ <dl class="message-properties">
41
+ <dt>
42
+ payload.status
43
+
44
+ <span class="property-type">string</span>
45
+ </dt>
46
+ <dd>The status of the delete operation.</dd>
47
+ </dl>
48
+ </script>
@@ -0,0 +1,23 @@
1
+ module.exports = function( RED ) {
2
+ const { Ollama } = require( 'ollama' )
3
+
4
+ function OllamaDeleteNode( config ) {
5
+ RED.nodes.createNode( this, config )
6
+ const node = this
7
+
8
+ node.on( 'input', async function( msg ) {
9
+ const ollama = new Ollama()
10
+ const { model } = msg.payload
11
+
12
+ const response = await ollama.delete( { model } )
13
+ .catch( error => {
14
+ node.error( error )
15
+ } )
16
+
17
+ msg.payload = response
18
+ node.send( msg )
19
+ } )
20
+ }
21
+
22
+ RED.nodes.registerType( 'ollama-delete', OllamaDeleteNode )
23
+ }
@@ -0,0 +1,268 @@
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.model
32
+
33
+ <span class="property-type">string</span>
34
+ </dt>
35
+ <dd>The model to use for generating embeddings.</dd>
36
+
37
+ <dt>
38
+ payload.prompt
39
+
40
+ <span class="property-type">string</span>
41
+ </dt>
42
+ <dd>The prompt to use for generating embeddings.</dd>
43
+
44
+ <dt class="optional">
45
+ payload.keep_alive
46
+
47
+ <span class="property-type">string | number</span>
48
+ </dt>
49
+ <dd>How long to keep the model loaded.</dd>
50
+
51
+ <dt class="optional">
52
+ payload.options
53
+
54
+ <span class="property-type">object</span>
55
+ </dt>
56
+ <dd>
57
+ Options to configure the runtime.<br />
58
+
59
+ <h4>Options</h4>
60
+ <dl class="message-properties">
61
+ <dt>
62
+ numa
63
+
64
+ <span class="property-type">boolean</span>
65
+ </dt>
66
+ <dd>Use NUMA for the runtime.</dd>
67
+
68
+ <dt>
69
+ num_ctx
70
+
71
+ <span class="property-type">number</span>
72
+ </dt>
73
+ <dd>The number of contexts to use.</dd>
74
+
75
+ <dt>
76
+ num_batch
77
+
78
+ <span class="property-type">number</span>
79
+ </dt>
80
+ <dd>The number of batches to use.</dd>
81
+
82
+ <dt>
83
+ main_gpu
84
+
85
+ <span class="property-type">number</span>
86
+ </dt>
87
+ <dd>The main GPU to use.</dd>
88
+
89
+ <dt>
90
+ low_vram
91
+
92
+ <span class="property-type">boolean</span>
93
+ </dt>
94
+ <dd>Use low VRAM.</dd>
95
+
96
+ <dt>
97
+ f16_kv
98
+
99
+ <span class="property-type">boolean</span>
100
+ </dt>
101
+ <dd>Use f16 key-value.</dd>
102
+
103
+ <dt>
104
+ logits_all
105
+
106
+ <span class="property-type">boolean</span>
107
+ </dt>
108
+ <dd>Return all logits.</dd>
109
+
110
+ <dt>
111
+ vocab_only
112
+
113
+ <span class="property-type">boolean</span>
114
+ </dt>
115
+ <dd>Return only the vocabulary.</dd>
116
+
117
+ <dt>
118
+ use_nmap
119
+
120
+ <span class="property-type">boolean</span>
121
+ </dt>
122
+ <dd>Use NMAP.</dd>
123
+
124
+ <dt>
125
+ use_mlock
126
+
127
+ <span class="property-type">boolean</span>
128
+ </dt>
129
+ <dd>Use mlock.</dd>
130
+
131
+ <dt>
132
+ embedding_only
133
+
134
+ <span class="property-type">boolean</span>
135
+ </dt>
136
+ <dd>Return only the embeddings.</dd>
137
+
138
+ <dt>
139
+ num_thread
140
+
141
+ <span class="property-type">number</span>
142
+ </dt>
143
+ <dd>The number of threads to use.</dd>
144
+
145
+ <dt>
146
+ num_keep
147
+
148
+ <span class="property-type">number</span>
149
+ </dt>
150
+ <dd>The number of models to keep.</dd>
151
+
152
+ <dt>
153
+ seed
154
+
155
+ <span class="property-type">number</span>
156
+ </dt>
157
+ <dd>The seed to use.</dd>
158
+
159
+ <dt>
160
+ num_predict
161
+
162
+ <span class="property-type">number</span>
163
+ </dt>
164
+ <dd>The number of predictions to use.</dd>
165
+
166
+ <dt>
167
+ top_k
168
+
169
+ <span class="property-type">number</span>
170
+ </dt>
171
+ <dd>The top k to use.</dd>
172
+
173
+ <dt>
174
+ top_p
175
+
176
+ <span class="property-type">number</span>
177
+ </dt>
178
+ <dd>The top p to use.</dd>
179
+
180
+ <dt>
181
+ typical_p
182
+
183
+ <span class="property-type">number</span>
184
+ </dt>
185
+ <dd>The typical p to use.</dd>
186
+
187
+ <dt>
188
+ repeat_last_n
189
+
190
+ <span class="property-type">number</span>
191
+ </dt>
192
+ <dd>The repeat last n to use.</dd>
193
+
194
+ <dt>
195
+ temperature
196
+
197
+ <span class="property-type">number</span>
198
+ </dt>
199
+ <dd>The temperature to use.</dd>
200
+
201
+ <dt>
202
+ repeat_pentalty
203
+
204
+ <span class="property-type">number</span>
205
+ </dt>
206
+ <dd>The repeat pentalty to use.</dd>
207
+
208
+ <dt>
209
+ presence_penalty
210
+
211
+ <span class="property-type">number</span>
212
+ </dt>
213
+ <dd>The presence penalty to use.</dd>
214
+
215
+ <dt>
216
+ frequency_penalty
217
+
218
+ <span class="property-type">number</span>
219
+ </dt>
220
+ <dd>The frequency penalty to use.</dd>
221
+
222
+ <dt>
223
+ mirostat
224
+
225
+ <span class="property-type">boolean</span>
226
+ </dt>
227
+ <dd>Use mirostat.</dd>
228
+
229
+ <dt>
230
+ mirostat_tau
231
+
232
+ <span class="property-type">number</span>
233
+ </dt>
234
+
235
+ <dt>
236
+ mirostat_eta
237
+
238
+ <span class="property-type">number</span>
239
+ </dt>
240
+
241
+ <dt>
242
+ penalize_newline
243
+
244
+ <span class="property-type">boolean</span>
245
+ </dt>
246
+ <dd>Penalize newline.</dd>
247
+
248
+ <dt>
249
+ stop
250
+
251
+ <span class="property-type">array</span>
252
+ </dt>
253
+ <dd>The stop to use.</dd>
254
+ </dl>
255
+ </dd>
256
+ </dl>
257
+
258
+ <h3>Outputs</h3>
259
+
260
+ <dl class="message-properties">
261
+ <dt>
262
+ payload.embedding
263
+
264
+ <span class="property-type">array</span>
265
+ </dt>
266
+ <dd>The embeddings generated from the model.</dd>
267
+ </dl>
268
+ </script>
@@ -0,0 +1,23 @@
1
+ module.exports = function( RED ) {
2
+ const { Ollama } = require( 'ollama' )
3
+
4
+ function OllamaEmbeddingsNode( config ) {
5
+ RED.nodes.createNode( this, config )
6
+ const node = this
7
+
8
+ node.on( 'input', async function( msg ) {
9
+ const ollama = new Ollama()
10
+ const { model, prompt, options, keep_alive } = msg.payload
11
+
12
+ const response = await ollama.embeddings( { model, prompt, options, keep_alive } )
13
+ .catch( error => {
14
+ node.error( error )
15
+ } )
16
+
17
+ msg.payload = response
18
+ node.send( msg )
19
+ } )
20
+ }
21
+
22
+ RED.nodes.registerType( 'ollama-embeddings', OllamaEmbeddingsNode )
23
+ }