mkohanim commited on
Commit
df792b9
·
verified ·
1 Parent(s): 3929bb3

Update README.md

Browse files

NuCoreAI is a Plugin based platform for the integration and automation of anything. This model serves as teh core of NuCoreAI's local decision making engine, enabling seamless and intelligent automation/optimization of things and services, and specifically Smart Home/Building devices.

NuCoreAI is free, MIT-licensed. This model can run locally on affordable hardware with an NVIDIA RTX 3060. You can learn more about NuCoreAI at nucore.ai, including links to developer tools and a fully functional Python-based assistant.

Files changed (1) hide show
  1. README.md +887 -3
README.md CHANGED
@@ -1,3 +1,887 @@
1
- ---
2
- license: mit
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ datasets:
4
+ - mkohanim/nucore-11
5
+ pipeline_tag: text-classification
6
+ tags:
7
+ - eisy
8
+ - nucore
9
+ - home_automation
10
+ - energy_management
11
+ - smartgrid
12
+ - iot
13
+ ---
14
+ # Model Card for Model ID
15
+
16
+ <!-- Provide a quick summary of what the model is/does. -->
17
+ NuCoreAI is a Plugin based platform for the integration and automation of anything. This model serves as teh core of NuCoreAI's local decision making engine, enabling
18
+ seamless and intelligent automation/optimization of things and services, and specifically Smart Home/Building devices.
19
+
20
+ NuCoreAI is free, MIT-licensed. This model can run locally on affordable hardware with an NVIDIA RTX 3060.
21
+ You can learn more about NuCoreAI at [nucore.ai](https://nucore.ai), including links to developer tools and a fully functional Python-based assistant.
22
+
23
+ ## Model Details
24
+
25
+ ### Model Description
26
+
27
+ <!-- Provide a longer summary of what this model is. -->
28
+ This model has been fine-tuned on thousands of anonymized node, device, and profile samples, collected with permission from Universal Devices customers. It is specifically optimized to reason about:
29
+ * Smart home devices and node definitions
30
+ * Device properties, accepted and sent commands, and their parameters
31
+ * Automation routines
32
+ * Units of measure (UOMs) and associated value constraints
33
+
34
+ The finetuning has incorporated most of the system prompts into the model, and therefore the size of the prompt is dramatically reduced by over 70%. (see Prompt)
35
+
36
+ When given a structured prompt, the model can generate actionable commands, such as device control or state queries, that are seamlessly executed through the [eisy | home](https://www.universal-devices.com/product/eisy-home) platform. It also produces intelligent automation routines (known as programs in eisy terminology) using JSONLogic.
37
+
38
+ This model serves as the core of NuCoreAI's local decision-making engine, enabling automation, control, and optimization across a wide range of smart home and energy devices.
39
+
40
+ NuCoreAI is free, MIT-licensed, and can run locally on affordable hardware with an NVIDIA RTX 3060.
41
+ You can learn more about NuCoreAI at [nucore.ai](https://nucore.ai), including links to developer tools and a fully functional Python-based assistant.
42
+
43
+ ### Prompt
44
+ The following is an optimized prompt to get the best out of nucore.11 model:
45
+
46
+ You are a NuCore smart-home assistant. You use the provided DEVICE STRUCTURE to respond to USER QUERY :
47
+ 1. By creating one or more NuCore commands of this format:
48
+ __BEGIN_NUCORE_COMMAND__
49
+ [
50
+ { "device_id": "<DEVICE_ID>", "command_id": "<COMMAND_ID>", "command_params": [ { "id": "<PARAM_ID>", "value": <VALUE>, "uom": "<UOM_ID>" }, { <additional param if any> }, ... ] },
51
+ { <more commands if any> },
52
+ ....
53
+ ]
54
+ __END_NUCORE_COMMAND__
55
+
56
+ ---
57
+
58
+ 2. By querying current and live property values and statuses
59
+ __BEGIN_NUCORE_PROPERTY_QUERY__
60
+ [
61
+ { "device_id": "<DEVICE_ID>", "property_id": "<PROPERTY_ID>", "property_name": "<PROPERTY_NAME>" },
62
+ { <more properties if any },
63
+ ....
64
+ ]
65
+ __END_NUCORE_PROPERTY_QUERY__
66
+
67
+ ---
68
+ 3. By creating one or more NuCore routines
69
+ When to act: explicit request for automation/optimization/triggers. The USER query starts with "if", "when", or contains "routine" or "program"
70
+ __BEGIN_NUCORE_ROUTINE__
71
+ [
72
+ {
73
+ "routine": {
74
+ "id": <int>,
75
+ "name": "<descriptive name>",
76
+ "parent": 0,
77
+ "comment": "<optional>",
78
+ "if": [ /* ordered flat Condition Tokens */ ],
79
+ "then": [ /* actions */ ],
80
+ "else": [ /* actions */ ],
81
+ "reasoning": "<assistant's reasoning for the structure and semantics of this routine>"
82
+ }
83
+ },
84
+ {
85
+ <more routines if any>
86
+ },
87
+ ....
88
+ ]
89
+ __END_NUCORE_ROUTINE__
90
+
91
+
92
+ ### Examples
93
+
94
+ > play classical on youtube
95
+
96
+ The device "YouTube Player" supports the command "Play" with a parameter for the playlist or song to play. The parameter values include "Classical" which corresponds to the enum value [5].
97
+
98
+ Therefore, to play classical music on YouTube, the command is:
99
+
100
+ ```json
101
+ __BEGIN_NUCORE_COMMAND__
102
+ {
103
+ "device_id": "n006_ytsvc",
104
+ "command_id": "PLAY",
105
+ "command_params": [
106
+ {
107
+ "id": "n/a",
108
+ "value": 5,
109
+ "uom": ""
110
+ }
111
+ ]
112
+ }
113
+ __END_NUCORE_COMMAND__
114
+ ```
115
+
116
+ [<Response [200]>]
117
+
118
+ > stop youtube
119
+
120
+ The device "YouTube Player" has a command named "Stop" which does not require parameters.
121
+
122
+ To stop playing YouTube, the command is:
123
+
124
+ ```json
125
+ __BEGIN_NUCORE_COMMAND__
126
+ {
127
+ "device_id": "n006_ytsvc",
128
+ "command_id": "STOP",
129
+ "command_params": []
130
+ }
131
+ __END_NUCORE_COMMAND__
132
+ ```
133
+
134
+ [<Response [200]>]
135
+
136
+
137
+ > what's my car's name?
138
+
139
+ The device name is *"Batmobile"* and its ID is "n007_controller". The device structure does not provide a property specifically named "car's name", but it refers to properties like "Controller Connected", "Console Display State", and others related to the car.
140
+
141
+ Since the user asks for "what's my car's name", and no explicit property for car name is listed, the best approach is to respond with the device name or ID as it represents the car controller.
142
+
143
+ ```json
144
+ __BEGIN_NUCORE_PROPERTY_QUERY__
145
+ {
146
+ "device_id": "n007_controller",
147
+ "property_id": "name",
148
+ "property_name": "Batmobile"
149
+ }
150
+ __END_NUCORE_PROPERTY_QUERY__
151
+ ```
152
+
153
+
154
+ > what's my charge state
155
+
156
+ The device "Charging Info" has a property called "Charging State" with id="GV6" and it is an enum with possible values:
157
+ - Not Connected [0]
158
+ - Connected [1]
159
+ - Starting [2]
160
+ - Charging [3]
161
+ - Stopped [4]
162
+ - Complete [5]
163
+ - Data Invalid [97]
164
+ - Unknown [99]
165
+
166
+ To answer the user's query, I would retrieve the value of "Charging State" property from the "Charging Info" device.
167
+
168
+ Since the actual value is not provided in the structure, I can only provide the property details and possible values.
169
+
170
+ ```json
171
+ __BEGIN_NUCORE_PROPERTY_QUERY__
172
+ {
173
+ "device_id": "n007_chargea5rf7219",
174
+ "property_id": "GV6",
175
+ "property_name": "Charging State"
176
+ }
177
+ __END_NUCORE_PROPERTY_QUERY__
178
+ ```
179
+
180
+ NuCore: Charging State for Charging Info is: Not Connected
181
+
182
+ > what's my charge level
183
+
184
+ The user wants to know their charge level. This is a live property or status query.
185
+
186
+ Step 1: Identify the device related to charge level. From the structure, "Charging Info" device has a property "State of Charge" [id=ST] with unit % and range 0.0 to 100.0.
187
+
188
+ Step 2: Use the property name "State of Charge" and the device ID "n007_chargea5rf7219".
189
+
190
+ ```json
191
+ __BEGIN_NUCORE_PROPERTY_QUERY__
192
+ {
193
+ "device_id": "n007_chargea5rf7219",
194
+ "property_id": "ST",
195
+ "property_name": "State of Charge"
196
+ }
197
+ __END_NUCORE_PROPERTY_QUERY__
198
+ ```
199
+
200
+ NuCore: State of Charge for Charging Info is: 58.44%
201
+
202
+ > what are my tire pressures
203
+
204
+ The device "Batmobile" includes properties related to tire pressures:
205
+
206
+ - Tire Front Right [id=GV23]
207
+ - Tire Front Left [id=GV24]
208
+ - Tire Rear Right [id=GV25]
209
+ - Tire Rear Left [id=GV26]
210
+
211
+ Each tire pressure property has a range from 0.0 to 145.0 Unit PSI [uom id=138] and enum values including Unknown and Invalid Data Received.
212
+
213
+ To answer the user's query, I would respond with the exact property names and their current values (if available) from the device "Batmobile".
214
+
215
+ Since the user asked "what are my tire pressures", I will list the tire pressure properties available on the Batmobile device.
216
+
217
+ ```json
218
+ __BEGIN_NUCORE_PROPERTY_QUERY__
219
+ {
220
+ "device_id": "n007_controller",
221
+ "property_id": "GV23",
222
+ "property_name": "Tire Front Right"
223
+ }
224
+ __END_NUCORE_PROPERTY_QUERY__
225
+
226
+ __BEGIN_NUCORE_PROPERTY_QUERY__
227
+ {
228
+ "device_id": "n007_controller",
229
+ "property_id": "GV24",
230
+ "property_name": "Tire Front Left"
231
+ }
232
+ __END_NUCORE_PROPERTY_QUERY__
233
+
234
+ __BEGIN_NUCORE_PROPERTY_QUERY__
235
+ {
236
+ "device_id": "n007_controller",
237
+ "property_id": "GV25",
238
+ "property_name": "Tire Rear Right"
239
+ }
240
+ __END_NUCORE_PROPERTY_QUERY__
241
+
242
+ __BEGIN_NUCORE_PROPERTY_QUERY__
243
+ {
244
+ "device_id": "n007_controller",
245
+ "property_id": "GV26",
246
+ "property_name": "Tire Rear Left"
247
+ }
248
+ __END_NUCORE_PROPERTY_QUERY__
249
+ ```
250
+
251
+ These properties represent the tire pressures of the Batmobile's front and rear right and left tires.
252
+ NuCore: Tire Front Right for Batmobile is: 36 PSI
253
+ NuCore: Tire Front Left for Batmobile is: 39 PSI
254
+ NuCore: Tire Rear Right for Batmobile is: 33 PSI
255
+ NuCore: Tire Rear Left for Batmobile is: 36 PSI
256
+
257
+ > what's my charge limit
258
+
259
+ The device "Charging Info" has a property called "Battery Charge Target" with ID "GV9" and unit "%". This property represents the battery charge target percentage.
260
+
261
+ Since you asked for "my charge limit", I assume you want to know the current battery charge target value.
262
+
263
+ To get the current value, you would query the "Battery Charge Target" property of the "Charging Info" device.
264
+
265
+ ```json
266
+ __BEGIN_NUCORE_PROPERTY_QUERY__
267
+ {
268
+ "device_id": "n007_chargea5rf7219",
269
+ "property_id": "GV9",
270
+ "property_name": "Battery Charge Target"
271
+ }
272
+ __END_NUCORE_PROPERTY_QUERY__
273
+ ```
274
+
275
+ NuCore: Battery Charge Target for Charging Info is: 91%
276
+
277
+ > turn on both hues
278
+
279
+ The user wants to turn on both Hue lights — specifically "Hue Light - Left" and "Hue Light - Right".
280
+
281
+ Step 1: Identify the devices involved.
282
+ - Device 1: Hue Light - Left
283
+ - Device 2: Hue Light - Right
284
+
285
+ Step 2: Both devices support the command "On" [DON] with optional parameters:
286
+ - Parameter 1: name=n/a [id=n/a]
287
+ - Enum: Off [0], Previous [101]
288
+ - Range 0 to 255 Unit Level [uom id=100]
289
+
290
+ Since the user wants to turn on both lights, we will send the "On" command with parameter value 255 (On) for both devices.
291
+
292
+ Step 3: Construct the JSONLogic commands for both devices.
293
+
294
+ ```json
295
+ __BEGIN_NUCORE_COMMAND__
296
+ {
297
+ "device_id": "ZB31965_011_1",
298
+ "command_id": "DON",
299
+ "command_params": [
300
+ {
301
+ "id": "n/a",
302
+ "value": 255,
303
+ "uom": "100"
304
+ }
305
+ ]
306
+ }
307
+ __END_NUCORE_COMMAND__
308
+
309
+ __BEGIN_NUCORE_COMMAND__
310
+ {
311
+ "device_id": "ZB24569_011_1",
312
+ "command_id": "DON",
313
+ "command_params": [
314
+ {
315
+ "id": "n/a",
316
+ "value": 255,
317
+ "uom": "100"
318
+ }
319
+ ]
320
+ }
321
+ __END_NUCORE_COMMAND__
322
+ ```
323
+
324
+ This will turn on both Hue lights with full brightness.
325
+
326
+ [<Response [200]>, <Response [200]>]
327
+
328
+ > turn on hues for watching movies
329
+
330
+ Step-by-step reasoning:
331
+
332
+ 1. The user wants to turn on the Hue lights for watching movies.
333
+ 2. "Hues" refers to the Hue lights, specifically the ones labeled "Hue Light - Left" and "Hue Light - Right".
334
+ 3. The context is watching movies, so we assume this is a leisure activity.
335
+ 4. To turn on the lights for watching movies, the best command is to turn them on with a pleasant color or brightness.
336
+ 5. Since no specific color or brightness is mentioned, we can turn them on with a medium brightness (e.g., On Level = 127) to provide ambient light without being too bright.
337
+ 6. The device supports the "On" command with optional parameters for level and ramp rate. We will use the "On" command with a level of 127 (about half brightness) and a reasonable ramp rate (e.g., 2 seconds) to smoothly turn on the lights.
338
+ 7. We will send this command to both "Hue Light - Left" and "Hue Light - Right" devices.
339
+
340
+ ```json
341
+ __BEGIN_NUCORE_COMMAND__
342
+ {
343
+ "device_id": "ZB31965_011_1",
344
+ "command_id": "DON",
345
+ "command_params": [
346
+ {
347
+ "id": "n/a",
348
+ "value": 127,
349
+ "uom": "100"
350
+ },
351
+ {
352
+ "id": "RR",
353
+ "value": 2,
354
+ "uom": "58"
355
+ }
356
+ ]
357
+ }
358
+ __END_NUCORE_COMMAND__
359
+
360
+ __BEGIN_NUCORE_COMMAND__
361
+ {
362
+ "device_id": "ZB24569_011_1",
363
+ "command_id": "DON",
364
+ "command_params": [
365
+ {
366
+ "id": "n/a",
367
+ "value": 127,
368
+ "uom": "100"
369
+ },
370
+ {
371
+ "id": "RR",
372
+ "value": 2,
373
+ "uom": "58"
374
+ }
375
+ ]
376
+ }
377
+ __END_NUCORE_COMMAND__
378
+ ```
379
+
380
+ > play high price
381
+
382
+ The user wants to play a song with the name "high price".
383
+
384
+ Step 1: Look for devices that have a "Play" command accepting a parameter for song names.
385
+ Step 2: The "AudioPlayer" device has a "Play" command that accepts a parameter "n/a" with range 0 to 100 Unit Index, including enumerated values such as "computer.mp3", "harp.mp3", "wchime.mp3", "wind.mp3", "chime.mp3", "pa.mp3", "hbell.mp3", "synth.mp3", "bells.mp3", "malonc.mp3", "mystical.mp3", "fragment.mp3", "rbell.mp3", "example.mp3", "fantasy.mp3", "magic.mp3", "chimes.mp3", "schime.mp3", "bells2.mp3", "normal_t.mp3", "high_t.mp3", "moderate_t.mp3".
386
+
387
+ Step 3: Among these, "high_t.mp3" corresponds to the high price song.
388
+
389
+ Conclusion: The command is to play "high_t.mp3" from the AudioPlayer device.
390
+
391
+ ```json
392
+ __BEGIN_NUCORE_COMMAND__
393
+ {
394
+ "device_id": "n004_0",
395
+ "command_id": "PLAY",
396
+ "command_params": [
397
+ {
398
+ "id": "n/a",
399
+ "value": 21,
400
+ "uom": "25"
401
+ }
402
+ ]
403
+ }
404
+ __END_NUCORE_COMMAND__UOM
405
+ ```
406
+
407
+ [<Response [200]>]
408
+
409
+ > set output to bluetooth for yourbue
410
+
411
+ The user wants to set the output to Bluetooth on the YouTube Player device.
412
+
413
+ From the DEVICE STRUCTURE:
414
+ - Device Name: YouTube Player
415
+ - ID: n006_ytsvc
416
+ - Properties:
417
+ - Output [id=GV2]
418
+ - Range: 0 to 1 Unit Index [uom id=25]
419
+ - Values:
420
+ - Speaker Jack [0]
421
+ - Bluetooth [1]
422
+ - Accept Commands:
423
+ - Output [OUTPUT]
424
+ - Parameter 1: name=n/a [id=n/a]
425
+ - Range: 0 to 1 Unit Index [uom id=25]
426
+ - Speaker Jack [0]
427
+ - Bluetooth [1]
428
+
429
+ Step-by-step:
430
+ 1. The user wants output to Bluetooth, which corresponds to value 1.
431
+ 2. Use the command Output [OUTPUT] with parameter 1.
432
+
433
+ ```json
434
+ __BEGIN_NUCORE_COMMAND__
435
+ {
436
+ "device_id": "n006_ytsvc",
437
+ "command_id": "OUTPUT",
438
+ "command_params": [
439
+ {
440
+ "id": "n/a",
441
+ "value": 1,
442
+ "uom": "25"
443
+ }
444
+ ]
445
+ }
446
+ __END_NUCORE_COMMAND__
447
+ ```
448
+ [<Response [200]>]
449
+
450
+ > set voluem to 50 on youtube
451
+
452
+ The user wants to set the volume to 50 on the YouTube player.
453
+
454
+ Step 1: Identify the device - YouTube Player (ID: n006_ytsvc).
455
+ Step 2: Identify the command - Volume [VOLUME] with parameter 1.
456
+ Step 3: Parameter 1 range is 0 to 100 Unit %, so 50 is valid.
457
+ Step 4: Use the command with device_id "n006_ytsvc", command_id "VOLUME", and command_params with id="n/a", value=50, uom="51" (Unit %).
458
+
459
+ ```json
460
+ __BEGIN_NUCORE_COMMAND__
461
+ {
462
+ "device_id": "n006_ytsvc",
463
+ "command_id": "VOLUME",
464
+ "command_params": [
465
+ {
466
+ "id": "n/a",
467
+ "value": 50,
468
+ "uom": "51"
469
+ }
470
+ ]
471
+ }
472
+ __END_NUCORE_COMMAND__
473
+ ```
474
+ [<Response [200]>]
475
+
476
+ > play my favorite music on youtube
477
+
478
+ The device "YouTube Player" has a property "Playing Status" indicating if it is playing or idle, and commands to play, stop, previous, and next. However, the specific favorite music track is not a property but a command parameter.
479
+
480
+ Step 1: Identify the command to play music, which is "PLAY".
481
+ Step 2: The parameter for the "PLAY" command is a name or index of the music track. Since the user says "my favorite music", and the device structure does not specify a direct parameter for favorite music, it implies the user wants to play a predefined favorite track.
482
+ Step 3: The device structure shows "Playing" property ranges from 0 to 100 with indices for various songs including "Favorites" at index 17.
483
+
484
+ Conclusion: To play the user's favorite music, the assistant should send the command:
485
+ ```json
486
+ __BEGIN_NUCORE_COMMAND__
487
+ {
488
+ "device_id": "n006_ytsvc",
489
+ "command_id": "PLAY",
490
+ "command_params": [
491
+ {
492
+ "id": "n/a",
493
+ "value": 17,
494
+ "uom": "index"
495
+ }
496
+ ]
497
+ }
498
+ __END_NUCORE_COMMAND__
499
+ ```
500
+
501
+ This command will play the favorite music track as per the device's indexed songs.[<Response [200]>]
502
+
503
+ > stop youtube
504
+
505
+ The device "YouTube Player" has a command named "Stop" which does not require parameters.
506
+
507
+ To stop playing YouTube, the command is:
508
+
509
+ ```json
510
+ __BEGIN_NUCORE_COMMAND__
511
+ {
512
+ "device_id": "n006_ytsvc",
513
+ "command_id": "STOP",
514
+ "command_params": []
515
+ }
516
+ __END_NUCORE_COMMAND__
517
+ ```
518
+
519
+ [<Response [200]>]
520
+
521
+ > turn off both hues
522
+
523
+ The user wants to turn off both Hue lights. The device names are "Hue Light - Left" and "Hue Light - Right". Both devices support the command "Off" [DOF] without parameters.
524
+
525
+ Step-by-step:
526
+ 1. Identify the devices: Hue Light - Left and Hue Light - Right.
527
+ 2. Command: Off [DOF] (no parameters).
528
+ 3. No parameters needed.
529
+
530
+ Therefore, the commands are:
531
+
532
+ ```json
533
+ __BEGIN_NUCORE_COMMAND__
534
+ {
535
+ "device_id": "ZB31965_011_1",
536
+ "command_id": "DOF",
537
+ "command_params": []
538
+ }
539
+ __END_NUCORE_COMMAND__
540
+
541
+ __BEGIN_NUCORE_COMMAND__
542
+ {
543
+ "device_id": "ZB24569_011_1",
544
+ "command_id": "DOF",
545
+ "command_params": []
546
+ }
547
+ ```
548
+ __END_NUCORE_COMMAND__
549
+
550
+ [<Response [200]>, <Response [200]>]
551
+
552
+ > play clasisical on youtube
553
+
554
+ The user wants to play Classical music on YouTube.
555
+
556
+ From the DEVICE STRUCTURE:
557
+ - Device: YouTube Player
558
+ - ID: n006_ytsvc
559
+ - Playing Status [id=ST]: Range 0 to 1 Unit Index [uom id=25]
560
+ - Idle [0]
561
+ - Playing [1]
562
+ - Playing [id=GV0]: Range 0 to 100 Unit Index [uom id=25]
563
+ - None [0]
564
+ - Classical [5]
565
+
566
+ - Accept Commands:
567
+ Play [PLAY]
568
+ Parameter 1: name=n/a [id=n/a]
569
+ Range 0 to 100 Unit Index [uom id=25]
570
+ Enum values include Classical [5]
571
+
572
+ Step-by-step:
573
+ 1. Use the Play [PLAY] command.
574
+ 2. Parameter 1 value: 5 (Classical music)
575
+ 3. Parameter range: 0 to 100 Unit Index
576
+
577
+ ```json
578
+ __BEGIN_NUCORE_COMMAND__
579
+ {
580
+ "device_id": "n006_ytsvc",
581
+ "command_id": "PLAY",
582
+ "command_params": [
583
+ {
584
+ "id": "n/a",
585
+ "value": 5,
586
+ "uom": "25"
587
+ }
588
+ ]
589
+ }
590
+ __END_NUCORE_COMMAND__
591
+ ```
592
+
593
+ [<Response [200]>]
594
+
595
+ > turn down youtube
596
+
597
+ The user wants to turn down the volume on the YouTube Player.
598
+
599
+ From the device structure:
600
+ - Device: YouTube Player
601
+ - Command: Volume [VOLUME]
602
+ - Parameter 1: name=n/a [id=n/a]
603
+ - Range: 0 to 100 Unit %
604
+ - This is a command to adjust volume, presumably decrementing by a step.
605
+
606
+ Step 1: Identify the command to decrease volume.
607
+ Step 2: No explicit 'Volume Down' command is listed, but 'Volume' command accepts a parameter from 0 to 100%.
608
+
609
+ To turn down volume:
610
+ - Use the Volume command with a parameter value slightly less than current volume (if known).
611
+ - Since no current volume is given, assume user wants to decrease by one step.
612
+
613
+ ```json
614
+ __BEGIN_NUCORE_COMMAND__
615
+ {
616
+ "device_id": "n006_ytsvc",
617
+ "command_id": "VOLUME",
618
+ "command_params": [
619
+ {
620
+ "id": "n/a",
621
+ "value": 39,
622
+ "uom": "51"
623
+ }
624
+ ]
625
+ }
626
+ __END_NUCORE_COMMAND__
627
+ ```
628
+
629
+ [<Response [200]>]
630
+
631
+ > turn it down a bit
632
+
633
+ The user wants to turn something down a bit. This is a vague request, so I need to consider the context. Since no specific device is mentioned, I assume the user wants to adjust a volume or brightness level down slightly.
634
+
635
+ Step 1: Volume controls typically have commands to increase or decrease volume.
636
+ Step 2. Brightness controls often have commands to brighten or dim.
637
+
638
+ Given the DEVICE STRUCTURE, devices with volume controls include:
639
+ - Hue Light - Left
640
+ - Hue Light - Right
641
+ - AudioPlayer
642
+ - Ecobee Controller
643
+ - ZWave Switch
644
+
645
+ Step 3: The commands to decrease volume/brightness are:
646
+ - Hue Light - Left: Dim [DIM]
647
+ - Hue Light - Right: Dim [DIM]
648
+ - AudioPlayer: Stop [STOP] (though this stops playback, not volume)
649
+ - Ecobee Controller: Query [QUERY] (no direct dim command)
650
+ - ZWave Switch: Query [QUERY] (no direct dim command)
651
+
652
+ Since the user wants to turn it down a bit, the best fit is the Dim command on Hue lights or AudioPlayer.
653
+
654
+ Conclusion: I will respond with commands to dim the volume/brightness on Hue Light - Left and Hue Light - Right devices.
655
+
656
+ ```json
657
+ __BEGIN_NUCORE_COMMAND__
658
+ {
659
+ "device_id": "ZB31965_011_1",
660
+ "command_id": "DIM",
661
+ "command_params": []
662
+ }
663
+ __END_NUCORE_COMMAND__
664
+
665
+ __BEGIN_NUCORE_COMMAND__
666
+ {
667
+ "device_id": "ZB24569_011_1",
668
+ "command_id": "DIM",
669
+ "command_params": []
670
+ }
671
+ ```
672
+ __END_NUCORE_COMMAND__
673
+
674
+ [<Response [200]>, <Response [200]>]
675
+
676
+ > if price is < $0.75 and miles I can drive is > 150, set charge limit to 90 and start charging. But only on weekdays.
677
+
678
+ __BEGIN_NUCORE_ROUTINE__
679
+ ```json
680
+ [
681
+ {
682
+ "routine": {
683
+ "id": 101,
684
+ "name": "Charge when low price and long range on weekdays",
685
+ "parent": 0,
686
+ "comment": "When Utility Price is low and vehicle has long estimated range, enable charge limit and start charging during weekdays.",
687
+ "if": [
688
+ { "<": { "device_id": "n001_oadr3ven", "property_id": "ST", "value": 0.75, "uom": "103", "precision": 4 } },
689
+ { "and": 1 },
690
+ { ">": { "device_id": "n007_chargea5rf7219", "property_id": "GV4", "value": 150, "uom": "116", "precision": 0 } },
691
+ { "and": 1 },
692
+ { "weekly": { "days": "mon,tue,wed,thu,fri", "from": { "time": "00:00", "to": { "time": "23:59" } } } }
693
+ ],
694
+ "then": [
695
+ { "device_id": "n007_chargea5rf7219", "command_id": "BATPERCENT", "command_params": [ { "id": "n/a", "value": 90, "uom": "51" } ] },
696
+ { "device_id": "n007_chargea5rf7219", "command_id": "CHARGECTRL", "command_params": [ { "id": "n/a", "value": 1, "uom": "25" } ] }
697
+ ],
698
+ "else": [],
699
+ "reasoning": "Only run on weekdays when price is low and estimated range is high to ensure efficient use of charging resources."
700
+ }
701
+ }
702
+ ]
703
+ ```
704
+ __END_NUCORE_ROUTINE__
705
+
706
+
707
+ - **Developed by:** [NuCoreAI](https://nucore.ai)
708
+ - **Funded by:** [Universal Devices](https://www.universal-devices.com)
709
+ - **Shared by:** [Universal Devices](https://www.universal-devices.com)
710
+ - **Model type:** [Text Generation]
711
+ - **Language(s) (NLP):** [English]
712
+ - **License:** [MIT]
713
+ - **Finetuned from model:** [Qwen2.5 Coder 7B](https://huggingface.co/Qwen/Qwen2.5-Coder-7B)
714
+
715
+ ### Model Sources [optional]
716
+
717
+ <!-- Provide the basic links for the model. -->
718
+
719
+ - **Repository:** [More Information Needed]
720
+ - **Paper [optional]:** [More Information Needed]
721
+ - **Demo [optional]:** [More Information Needed]
722
+
723
+ ## Uses
724
+
725
+ This model can be used by [NuCoreAI Assistant](https://nucore.ai) which enables full integration with Universal Devices [eisy](https://www.universal-devices.com/product/eisy-home)
726
+ for command/control and querying status of devices and services. This said, the NuCoreAI Assistant is agnostic to the backend system.
727
+
728
+ ### Direct Use
729
+
730
+ <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
731
+
732
+ [More Information Needed]
733
+
734
+ ### Downstream Use [optional]
735
+
736
+ <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
737
+
738
+ [More Information Needed]
739
+
740
+ ### Out-of-Scope Use
741
+
742
+ <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
743
+
744
+ [More Information Needed]
745
+
746
+ ## Bias, Risks, and Limitations
747
+
748
+ <!-- This section is meant to convey both technical and sociotechnical limitations. -->
749
+
750
+ [More Information Needed]
751
+
752
+ ### Recommendations
753
+
754
+ <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
755
+
756
+ Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
757
+
758
+ ## How to Get Started with the Model
759
+
760
+ Start with our github at [nucore.ai](https://nucore.ai)
761
+
762
+ [More Information Needed]
763
+
764
+ ## Training Details
765
+
766
+ ### Training Data
767
+
768
+ Thousands of anonymous node, profiles, and programs were used to fine-tune this model.
769
+
770
+ [More Information Needed]
771
+
772
+ ### Training Procedure
773
+
774
+ <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
775
+
776
+ #### Preprocessing [optional]
777
+
778
+ [More Information Needed]
779
+
780
+
781
+ #### Training Hyperparameters
782
+
783
+ - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
784
+
785
+ #### Speeds, Sizes, Times [optional]
786
+
787
+ <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
788
+
789
+ [More Information Needed]
790
+
791
+ ## Evaluation
792
+
793
+ <!-- This section describes the evaluation protocols and provides the results. -->
794
+
795
+ ### Testing Data, Factors & Metrics
796
+
797
+ #### Testing Data
798
+
799
+ <!-- This should link to a Dataset Card if possible. -->
800
+
801
+ [More Information Needed]
802
+
803
+ #### Factors
804
+
805
+ <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
806
+
807
+ [More Information Needed]
808
+
809
+ #### Metrics
810
+
811
+ <!-- These are the evaluation metrics being used, ideally with a description of why. -->
812
+
813
+ [More Information Needed]
814
+
815
+ ### Results
816
+
817
+ [More Information Needed]
818
+
819
+ #### Summary
820
+
821
+
822
+
823
+ ## Model Examination [optional]
824
+
825
+ <!-- Relevant interpretability work for the model goes here -->
826
+
827
+ [More Information Needed]
828
+
829
+ ## Environmental Impact
830
+
831
+ <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
832
+
833
+ Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
834
+
835
+ - **Hardware Type:** [More Information Needed]
836
+ - **Hours used:** [More Information Needed]
837
+ - **Cloud Provider:** [More Information Needed]
838
+ - **Compute Region:** [More Information Needed]
839
+ - **Carbon Emitted:** [More Information Needed]
840
+
841
+ ## Technical Specifications [optional]
842
+
843
+ ### Model Architecture and Objective
844
+
845
+ [More Information Needed]
846
+
847
+ ### Compute Infrastructure
848
+
849
+ [More Information Needed]
850
+
851
+ #### Hardware
852
+
853
+ [More Information Needed]
854
+
855
+ #### Software
856
+
857
+ [More Information Needed]
858
+
859
+ ## Citation [optional]
860
+
861
+ <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
862
+
863
+ **BibTeX:**
864
+
865
+ [More Information Needed]
866
+
867
+ **APA:**
868
+
869
+ [More Information Needed]
870
+
871
+ ## Glossary [optional]
872
+
873
+ <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
874
+
875
+ [More Information Needed]
876
+
877
+ ## More Information [optional]
878
+
879
+ [More Information Needed]
880
+
881
+ ## Model Card Authors [optional]
882
+
883
+ [More Information Needed]
884
+
885
+ ## Model Card Contact
886
+
887
+ [More Information Needed]