node-red-contrib-ollama 0.2.0 → 0.2.3
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/nodes/ollama-abort.html +22 -6
- package/nodes/ollama-abort.js +7 -1
- package/nodes/ollama-chat.html +231 -283
- package/nodes/ollama-chat.js +16 -10
- package/nodes/ollama-config-model.html +18 -0
- package/nodes/ollama-config-model.js +9 -0
- 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 +50 -32
- package/nodes/ollama-create.js +8 -2
- package/nodes/ollama-delete.html +35 -11
- package/nodes/ollama-delete.js +10 -1
- package/nodes/ollama-embed.html +190 -230
- package/nodes/ollama-embed.js +8 -2
- package/nodes/ollama-generate.html +88 -84
- package/nodes/ollama-generate.js +8 -2
- package/nodes/ollama-list.html +23 -6
- package/nodes/ollama-list.js +7 -1
- package/nodes/ollama-ps.html +23 -6
- package/nodes/ollama-ps.js +7 -1
- package/nodes/ollama-pull.html +46 -26
- package/nodes/ollama-pull.js +17 -2
- package/nodes/ollama-push.html +46 -26
- package/nodes/ollama-push.js +17 -2
- package/nodes/ollama-show.html +45 -27
- package/nodes/ollama-show.js +8 -2
- package/package.json +5 -3
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<script type="text/javascript">
|
|
2
|
+
RED.nodes.registerType( 'ollama-config-server', {
|
|
3
|
+
category: 'config',
|
|
4
|
+
defaults: {
|
|
5
|
+
host: { value: 'localhost', required: true },
|
|
6
|
+
port: { value: 11434, required: true, validate: RED.validators.number() }
|
|
7
|
+
},
|
|
8
|
+
label: function() {
|
|
9
|
+
return this.host + ':' + this.port;
|
|
10
|
+
}
|
|
11
|
+
} )
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<script type="text/html" data-template-name="ollama-config-server">
|
|
15
|
+
<div class="form-row">
|
|
16
|
+
<label for="node-config-input-host"><i class="fa fa-server"></i> Host</label>
|
|
17
|
+
<input type="text" id="node-config-input-host" placeholder="localhost" />
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
<div class="form-row">
|
|
21
|
+
<label for="node-config-input-port"><i class="fa fa-port"></i> Port</label>
|
|
22
|
+
<input type="text" id="node-config-input-port" placeholder="11434" />
|
|
23
|
+
</div>
|
|
24
|
+
</script>
|
package/nodes/ollama-copy.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 Copy' },
|
|
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-copy">
|
|
@@ -27,26 +33,33 @@
|
|
|
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
|
-
<dd>The host of the Ollama instance.</dd>
|
|
36
39
|
|
|
37
|
-
<
|
|
38
|
-
payload.
|
|
40
|
+
<dd>
|
|
41
|
+
The payload object.
|
|
39
42
|
|
|
40
|
-
<
|
|
41
|
-
|
|
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>
|
|
43
51
|
|
|
44
|
-
|
|
45
|
-
|
|
52
|
+
<dt>
|
|
53
|
+
payload.source <span class="property-type">string</span>
|
|
54
|
+
</dt>
|
|
55
|
+
<dd>The name of the model to copy.</dd>
|
|
46
56
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
57
|
+
<dt>
|
|
58
|
+
payload.destination <span class="property-type">string</span>
|
|
59
|
+
</dt>
|
|
60
|
+
<dd>The name of the new model.</dd>
|
|
61
|
+
</dl>
|
|
62
|
+
</dd>
|
|
50
63
|
</dl>
|
|
51
64
|
|
|
52
65
|
<h3>Outputs</h3>
|
package/nodes/ollama-copy.js
CHANGED
|
@@ -6,7 +6,15 @@ 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
|
+
source,
|
|
12
|
+
destination
|
|
13
|
+
} = msg.payload
|
|
14
|
+
|
|
15
|
+
const server = RED.nodes.getNode( config.server )
|
|
16
|
+
|
|
17
|
+
const host = ( server ) ? server.host + ':' + server.port : payloadHost
|
|
10
18
|
|
|
11
19
|
const ollama = new Ollama( { host } )
|
|
12
20
|
|
package/nodes/ollama-create.html
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
category: 'AI',
|
|
4
4
|
color: 'rgb(186 230 253)',
|
|
5
5
|
defaults: {
|
|
6
|
-
name: { value: '' },
|
|
6
|
+
name: { value: 'Ollama Create' },
|
|
7
|
+
server: { value: '', type: 'ollama-config-server', required: false },
|
|
8
|
+
model: { value: '', type: 'ollama-config-model', required: false },
|
|
7
9
|
},
|
|
8
10
|
inputs: 1,
|
|
9
11
|
outputs: 1,
|
|
@@ -19,6 +21,16 @@
|
|
|
19
21
|
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
|
20
22
|
<input type="text" id="node-input-name" placeholder="Name" />
|
|
21
23
|
</div>
|
|
24
|
+
|
|
25
|
+
<div class="form-row">
|
|
26
|
+
<label for="node-input-server"><i class="fa fa-server"></i> Server</label>
|
|
27
|
+
<input type="text" id="node-input-server" />
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
<div class="form-row">
|
|
31
|
+
<label for="node-input-model"><i class="fa fa-bookmark"></i> Model</label>
|
|
32
|
+
<input type="text" id="node-input-model" />
|
|
33
|
+
</div>
|
|
22
34
|
</script>
|
|
23
35
|
|
|
24
36
|
<script type="text/html" data-help-name="ollama-create">
|
|
@@ -27,40 +39,46 @@
|
|
|
27
39
|
<h3>Inputs</h3>
|
|
28
40
|
|
|
29
41
|
<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
|
-
<p>The name of the model to create.</p>
|
|
43
|
-
|
|
44
42
|
<dt class="optional">
|
|
45
|
-
payload
|
|
46
|
-
|
|
47
|
-
<span class="property-type">string</span>
|
|
43
|
+
payload <span class="property-type">object</span>
|
|
48
44
|
</dt>
|
|
49
|
-
<p>The path to the Modelfile to use for creating the model.</p>
|
|
50
|
-
|
|
51
|
-
<dt class="optional">
|
|
52
|
-
payload.modelfile
|
|
53
45
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
46
|
+
<dd>
|
|
47
|
+
The payload object.
|
|
48
|
+
|
|
49
|
+
<dl class="message-properties">
|
|
50
|
+
<dt class="optional">
|
|
51
|
+
payload.host <span class="property-type">string</span>
|
|
52
|
+
</dt>
|
|
53
|
+
<dd>
|
|
54
|
+
The host of the Ollama instance.<br />
|
|
55
|
+
<em>Alternative to the <code>Server</code> field.</em>
|
|
56
|
+
</dd>
|
|
57
|
+
|
|
58
|
+
<dt class="optional">
|
|
59
|
+
payload.model <span class="property-type">string</span>
|
|
60
|
+
</dt>
|
|
61
|
+
<dd>
|
|
62
|
+
The name of the model to create.<br />
|
|
63
|
+
<em>Alternative to the <code>Model</code> field.</em>
|
|
64
|
+
</dd>
|
|
65
|
+
|
|
66
|
+
<dt class="optional">
|
|
67
|
+
payload.path <span class="property-type">string</span>
|
|
68
|
+
</dt>
|
|
69
|
+
<dd>The path to the Modelfile to use for creating the model.</dd>
|
|
70
|
+
|
|
71
|
+
<dt class="optional">
|
|
72
|
+
payload.modelfile <span class="property-type">string</span>
|
|
73
|
+
</dt>
|
|
74
|
+
<dd>The content of the Modelfile to create.</dd>
|
|
75
|
+
|
|
76
|
+
<dt class="optional">
|
|
77
|
+
payload.stream <span class="property-type">boolean</span>
|
|
78
|
+
</dt>
|
|
79
|
+
<dd>When true an AsyncGenerator is returned.</dd>
|
|
80
|
+
</dl>
|
|
81
|
+
</dd>
|
|
64
82
|
</dl>
|
|
65
83
|
|
|
66
84
|
<h3>Outputs</h3>
|
package/nodes/ollama-create.js
CHANGED
|
@@ -7,15 +7,21 @@ module.exports = function( RED ) {
|
|
|
7
7
|
|
|
8
8
|
node.on( 'input', async function( msg ) {
|
|
9
9
|
const {
|
|
10
|
-
host,
|
|
11
|
-
model,
|
|
10
|
+
host: payloadHost,
|
|
11
|
+
model: payloadModel,
|
|
12
12
|
modelfile,
|
|
13
13
|
stream,
|
|
14
14
|
path
|
|
15
15
|
} = msg.payload
|
|
16
16
|
|
|
17
|
+
const server = RED.nodes.getNode( config.server )
|
|
18
|
+
const host = ( server ) ? server.host + ':' + server.port : payloadHost
|
|
19
|
+
|
|
17
20
|
const ollama = new Ollama( { host } )
|
|
18
21
|
|
|
22
|
+
const modelConfig = RED.nodes.getNode( config.model )
|
|
23
|
+
const model = ( modelConfig ) ? modelConfig.name : payloadModel
|
|
24
|
+
|
|
19
25
|
const response = await ollama.create( {
|
|
20
26
|
model,
|
|
21
27
|
modelfile,
|
package/nodes/ollama-delete.html
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
category: 'AI',
|
|
4
4
|
color: 'rgb(186 230 253)',
|
|
5
5
|
defaults: {
|
|
6
|
-
name: { value: '' },
|
|
6
|
+
name: { value: 'Ollama Delete' },
|
|
7
|
+
server: { value: '', type: 'ollama-config-server', required: false },
|
|
8
|
+
model: { value: '', type: 'ollama-config-model', required: false },
|
|
7
9
|
},
|
|
8
10
|
inputs: 1,
|
|
9
11
|
outputs: 1,
|
|
@@ -19,6 +21,16 @@
|
|
|
19
21
|
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
|
20
22
|
<input type="text" id="node-input-name" placeholder="Name" />
|
|
21
23
|
</div>
|
|
24
|
+
|
|
25
|
+
<div class="form-row">
|
|
26
|
+
<label for="node-input-server"><i class="fa fa-server"></i> Server</label>
|
|
27
|
+
<input type="text" id="node-input-server" />
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
<div class="form-row">
|
|
31
|
+
<label for="node-input-model"><i class="fa fa-bookmark"></i> Model</label>
|
|
32
|
+
<input type="text" id="node-input-model" />
|
|
33
|
+
</div>
|
|
22
34
|
</script>
|
|
23
35
|
|
|
24
36
|
<script type="text/html" data-help-name="ollama-delete">
|
|
@@ -27,19 +39,31 @@
|
|
|
27
39
|
<h3>Inputs</h3>
|
|
28
40
|
|
|
29
41
|
<dl class="message-properties">
|
|
30
|
-
<dt>
|
|
31
|
-
payload
|
|
32
|
-
|
|
33
|
-
<span class="property-type">string</span>
|
|
42
|
+
<dt class="optional">
|
|
43
|
+
payload <span class="property-type">object</span>
|
|
34
44
|
</dt>
|
|
35
|
-
<dd>The host of the Ollama instance.</dd>
|
|
36
45
|
|
|
37
|
-
<
|
|
38
|
-
payload.
|
|
46
|
+
<dd>
|
|
47
|
+
The payload object.
|
|
39
48
|
|
|
40
|
-
<
|
|
41
|
-
|
|
42
|
-
|
|
49
|
+
<dl class="message-properties">
|
|
50
|
+
<dt class="optional">
|
|
51
|
+
payload.host <span class="property-type">string</span>
|
|
52
|
+
</dt>
|
|
53
|
+
<dd>
|
|
54
|
+
The host of the Ollama instance.<br />
|
|
55
|
+
<em>Alternative to the <code>Server</code> field.</em>
|
|
56
|
+
</dd>
|
|
57
|
+
|
|
58
|
+
<dt class="optional">
|
|
59
|
+
payload.model <span class="property-type">string</span>
|
|
60
|
+
</dt>
|
|
61
|
+
<dd>
|
|
62
|
+
The name of the model to delete.<br />
|
|
63
|
+
<em>Alternative to the <code>Model</code> field.</em>
|
|
64
|
+
</dd>
|
|
65
|
+
</dl>
|
|
66
|
+
</dd>
|
|
43
67
|
</dl>
|
|
44
68
|
|
|
45
69
|
<h3>Outputs</h3>
|
package/nodes/ollama-delete.js
CHANGED
|
@@ -6,10 +6,19 @@ 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: payloadModel
|
|
12
|
+
} = msg.payload
|
|
13
|
+
|
|
14
|
+
const server = RED.nodes.getNode( config.server )
|
|
15
|
+
const host = ( server ) ? server.host + ':' + server.port : payloadHost
|
|
10
16
|
|
|
11
17
|
const ollama = new Ollama( { host } )
|
|
12
18
|
|
|
19
|
+
const modelConfig = RED.nodes.getNode( config.model )
|
|
20
|
+
const model = ( modelConfig ) ? modelConfig.name : payloadModel
|
|
21
|
+
|
|
13
22
|
const response = await ollama.delete( { model } )
|
|
14
23
|
.catch( error => {
|
|
15
24
|
node.error( error )
|