@misterscan/sesi 1.2.3 → 1.3.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.
Files changed (96) hide show
  1. package/.agents/rules/sesi-must-read.md +116 -0
  2. package/.agents/workflows/create-sesi-script.md +44 -0
  3. package/.agents/workflows/fix-sesi-script.md +14 -0
  4. package/.github/prompts/MakeInSesi.prompt.md +79 -0
  5. package/README.md +163 -51
  6. package/bin/sesi.js +196 -38
  7. package/chatbot/chatbot.html +488 -0
  8. package/{main → chatbot}/chatbot.sesi +1 -2
  9. package/chatbot/chatbot_server.py +105 -0
  10. package/chatbot/sesi_db_chatbot.sesi +278 -0
  11. package/dist/ai-runtime.js +2 -2
  12. package/dist/builtins.d.ts.map +1 -1
  13. package/dist/builtins.js +199 -5
  14. package/dist/builtins.js.map +1 -1
  15. package/dist/index.d.ts +12 -2
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +90 -6
  18. package/dist/index.js.map +1 -1
  19. package/dist/interpreter.d.ts +21 -2
  20. package/dist/interpreter.d.ts.map +1 -1
  21. package/dist/interpreter.js +201 -92
  22. package/dist/interpreter.js.map +1 -1
  23. package/dist/lexer.d.ts.map +1 -1
  24. package/dist/lexer.js +8 -4
  25. package/dist/lexer.js.map +1 -1
  26. package/dist/parser.d.ts +1 -0
  27. package/dist/parser.d.ts.map +1 -1
  28. package/dist/parser.js +21 -12
  29. package/dist/parser.js.map +1 -1
  30. package/dist/sesi.bundled.js +2526 -1487
  31. package/dist/types.d.ts +14 -2
  32. package/dist/types.d.ts.map +1 -1
  33. package/dist/types.js +33 -1
  34. package/dist/types.js.map +1 -1
  35. package/docs/ARCHITECTURE.md +21 -13
  36. package/docs/BUILTINS.md +136 -19
  37. package/docs/CLI.md +200 -0
  38. package/docs/COMPARISON.md +16 -13
  39. package/docs/IMAGE_GENERATION.md +13 -14
  40. package/docs/IMPLEMENTATION_SUMMARY.md +174 -110
  41. package/docs/QUICKSTART.md +173 -39
  42. package/docs/README.md +202 -54
  43. package/docs/{SYSTEMS_REASONING.md → REASONING.md} +115 -120
  44. package/docs/ROADMAP.md +51 -47
  45. package/docs/SKILLS.md +73 -98
  46. package/docs/SPECIFICATION.md +59 -40
  47. package/examples/03_functions.sesi +30 -1
  48. package/examples/07_prompts.sesi +27 -3
  49. package/examples/08_model_call.sesi +6 -4
  50. package/examples/09_structured_output.sesi +19 -3
  51. package/examples/10_code_generation.sesi +6 -4
  52. package/examples/11_memory_conversation.sesi +47 -15
  53. package/examples/12_classification.sesi +62 -7
  54. package/examples/13_data_pipeline.sesi +55 -28
  55. package/examples/14_folder_explainer.sesi +52 -51
  56. package/examples/15_image_generation.sesi +15 -14
  57. package/examples/16_modules.sesi +27 -27
  58. package/examples/19_search_web.sesi +18 -2
  59. package/examples/20_model_aliases.sesi +22 -0
  60. package/examples/21_custom_tools.sesi +27 -0
  61. package/examples/22_reasoning_plus_custom_tools.sesi +19 -0
  62. package/main/tests/test-args.sesi +7 -0
  63. package/main/tests/test_args.sesi +7 -0
  64. package/main/tests/test_general_modules.sesi +127 -0
  65. package/main/tests/test_grounding.sesi +2 -0
  66. package/package.json +26 -22
  67. package/docs/DISTRIBUTED_SYSTEMS.md +0 -71
  68. package/docs/sesi_ai_chronicles.md +0 -209
  69. package/main/conversational_classifier_weights.json +0 -45
  70. package/main/conversational_sentences.json +0 -304
  71. package/main/epochs.sesi +0 -94
  72. package/main/gpu_orchestrator.sesi +0 -36
  73. package/main/hardware_diagnostics.sesi +0 -118
  74. package/main/inference.sesi +0 -54
  75. package/main/native_chatbot.sesi +0 -180
  76. package/main/native_synthesizer.sesi +0 -83
  77. package/main/nn_personas_trainer.sesi +0 -302
  78. package/main/nn_responses_trainer.sesi +0 -269
  79. package/main/nn_sentences_trainer.sesi +0 -330
  80. package/main/orchestrator.sesi +0 -15
  81. package/main/personas.json +0 -124
  82. package/main/personas_classifier_weights.json +0 -45
  83. package/main/playground.sesi +0 -3
  84. package/main/predictive_typing.sesi +0 -127
  85. package/main/query_brain.sesi +0 -45
  86. package/main/response_classifier_weights.json +0 -45
  87. package/main/retro_chat.html +0 -239
  88. package/main/retro_chat_generator.sesi +0 -745
  89. package/main/sesi_ai.sesi +0 -158
  90. package/main/sesi_db_chatbot.sesi +0 -280
  91. package/main/setup_swarm.sesi +0 -5
  92. package/main/start.sesi +0 -13
  93. package/main/terminal.log +0 -56
  94. package/main/terminal_chat.py +0 -385
  95. package/main/unified_sesi_ai.sesi +0 -334
  96. package/main/varied_responses.json +0 -304
@@ -1,302 +0,0 @@
1
- // Sesi Script: nn_personas_trainer.sesi
2
- // 🧠 NATIVE NEURAL NETWORK PERSONA & DIALOGUE CLASSIFIER
3
- // Trains a 10x3 synapse network on 300 sentences from main/conversational_sentences.json,
4
- // then zero-shot evaluates and classifies the bios of all 20 personas in main/personas.json!
5
-
6
- print "=================================================="
7
- print "🧠 INITIATING Sesi NEURAL PERSONA & DIALOGUE TRAINER"
8
- print "=================================================="
9
-
10
- // Custom integer floor function
11
- fn floor(x) {
12
- let s = str(x)
13
- let parts = split(s, ".")
14
- return num(parts[0])
15
- }
16
-
17
- // Fast Sigmoid (Softsign) activation
18
- fn activate(x) {
19
- let absX = x
20
- if x < 0.0 {
21
- absX = 0.0 - x
22
- }
23
- return 0.5 + (0.5 * (x / (1.0 + absX)))
24
- }
25
-
26
- fn activate_derivative(y) {
27
- return y * (1.0 - y)
28
- }
29
-
30
- // 1. Define 10-keyword Vocabulary for Bag-of-Words vectors
31
- let vocab = ["synthesizer", "vinyl", "record", "wood", "gears", "clock", "compiler", "framework", "memory", "offline"]
32
- print "📚 Vocabulary Features: " + str(vocab)
33
-
34
- // 2. Load 300 conversational sentences
35
- print "📂 Loading main/conversational_sentences.json dataset..."
36
- let raw_conversations = read_file("main/conversational_sentences.json")
37
- let parsed_conv = from_json(raw_conversations)
38
- let sentences = parsed_conv["sentences"]
39
- let num_sentences = len(sentences)
40
- print "📊 Ingested " + str(num_sentences) + " sentences."
41
-
42
- // 3. Compile inputs and targets natively in Sesi
43
- print "🧹 Processing text sentences into Bag-of-Words feature matrices..."
44
- let inputs = []
45
- let targets = []
46
-
47
- let s_idx = 0
48
- while s_idx < num_sentences {
49
- let sentence = sentences[s_idx]
50
- let words = split(sentence, " ")
51
- let w_len = len(words)
52
-
53
- // 10-dimensional input vector
54
- let x = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
55
-
56
- let has_audio = false
57
- let has_mech = false
58
- let has_sys = false
59
-
60
- let v_idx = 0
61
- while v_idx < 10 {
62
- let keyword = vocab[v_idx]
63
- let found = 0.0
64
-
65
- let w = 0
66
- while w < w_len {
67
- let raw_word = words[w]
68
- let word = raw_word
69
- let w_char_len = len(word)
70
-
71
- if w_char_len > 1 {
72
- let last_char = word[w_char_len - 1]
73
- if last_char == "." { word = split(word, ".")[0] }
74
- if last_char == "!" { word = split(word, "!")[0] }
75
- if last_char == "?" { word = split(word, "?")[0] }
76
- if last_char == "," { word = split(word, ",")[0] }
77
- }
78
-
79
- if word == keyword {
80
- found = 1.0
81
- if v_idx < 3 { has_audio = true }
82
- if v_idx >= 3 {
83
- if v_idx < 6 { has_mech = true }
84
- }
85
- if v_idx >= 6 { has_sys = true }
86
- }
87
- w = w + 1
88
- }
89
-
90
- x[v_idx] = found
91
- v_idx = v_idx + 1
92
- }
93
-
94
- push(inputs, x)
95
-
96
- // Classify target label dynamically based on keywords or original indices
97
- let t = [0.0, 0.0, 0.0]
98
- if has_audio {
99
- t[0] = 1.0
100
- } else {
101
- if has_mech {
102
- t[1] = 1.0
103
- } else {
104
- if has_sys {
105
- t[2] = 1.0
106
- } else {
107
- // Fallback default balanced targets using index slices
108
- if s_idx < 100 { t[0] = 1.0 } // Audio
109
- if s_idx >= 100 {
110
- if s_idx < 200 { t[1] = 1.0 } // Mechanical
111
- }
112
- if s_idx >= 200 { t[2] = 1.0 } // Systems
113
- }
114
- }
115
- }
116
- push(targets, t)
117
-
118
- s_idx = s_idx + 1
119
- }
120
-
121
- print "✅ Dataset vectorization complete!"
122
- print "--------------------------------------------------"
123
-
124
- // 4. Initialize 10x3 Synapse Matrix
125
- print "🎲 Initializing 10x3 random neural synapses..."
126
- let weights = []
127
- let biases = []
128
-
129
- let c = 0
130
- while c < 3 {
131
- let w_row = []
132
- let k = 0
133
- while k < 10 {
134
- let w_val = random() - 0.5
135
- push(w_row, w_val)
136
- k = k + 1
137
- }
138
- push(weights, w_row)
139
- push(biases, 0.0)
140
- c = c + 1
141
- }
142
-
143
- // 5. Backpropagation Epoch Training Loop
144
- let lr = 0.3
145
- let max_epochs = 1500
146
- print "🚀 Training synapses across " + str(max_epochs) + " epochs (lr = " + str(lr) + ")..."
147
-
148
- let epoch = 1
149
- while epoch <= max_epochs {
150
- let total_loss = 0.0
151
- let sample_idx = 0
152
-
153
- while sample_idx < num_sentences {
154
- let x = inputs[sample_idx]
155
- let t = targets[sample_idx]
156
-
157
- // Outputs container
158
- let outputs = [0.0, 0.0, 0.0]
159
- let deltas = [0.0, 0.0, 0.0]
160
-
161
- // Forward Pass
162
- let c_idx = 0
163
- while c_idx < 3 {
164
- let sum = 0.0
165
- let w_row = weights[c_idx]
166
- let k = 0
167
- while k < 10 {
168
- sum = sum + (x[k] * w_row[k])
169
- k = k + 1
170
- }
171
- let o = activate(sum + biases[c_idx])
172
- outputs[c_idx] = o
173
-
174
- // Calculate Loss and Delta
175
- let err = t[c_idx] - o
176
- total_loss = total_loss + (err * err)
177
- deltas[c_idx] = err * activate_derivative(o)
178
-
179
- c_idx = c_idx + 1
180
- }
181
-
182
- // Backpropagation Gradient Weight Updates
183
- c_idx = 0
184
- while c_idx < 3 {
185
- let w_row = weights[c_idx]
186
- let delta = deltas[c_idx]
187
- let k = 0
188
- while k < 10 {
189
- w_row[k] = w_row[k] + (lr * delta * x[k])
190
- k = k + 1
191
- }
192
- biases[c_idx] = biases[c_idx] + (lr * delta)
193
- c_idx = c_idx + 1
194
- }
195
-
196
- sample_idx = sample_idx + 1
197
- }
198
-
199
- let avg_loss = total_loss / (num_sentences * 3.0)
200
-
201
- if (epoch % 300) == 0 {
202
- print "Epoch " + str(epoch) + " - Average Class Loss: " + str(avg_loss)
203
- }
204
-
205
- epoch = epoch + 1
206
- }
207
-
208
- print "--------------------------------------------------"
209
- print "🎉 Synapse Epoch Training Complete!"
210
- print "--------------------------------------------------"
211
-
212
- // 6. Save calibrated synapses to JSON
213
- let saved_weights = {}
214
- saved_weights["weights"] = weights
215
- saved_weights["biases"] = biases
216
- write_file("main/conversational_classifier_weights.json", to_json(saved_weights))
217
- print "💾 Saved trained synapses to main/conversational_classifier_weights.json"
218
- print "--------------------------------------------------"
219
-
220
- // Helper to run forward pass inference on a block of text
221
- fn predict(bio_text) {
222
- let words = split(bio_text, " ")
223
- let w_len = len(words)
224
- let x = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
225
-
226
- let v_idx = 0
227
- while v_idx < 10 {
228
- let keyword = vocab[v_idx]
229
- let found = 0.0
230
- let w = 0
231
- while w < w_len {
232
- let raw_word = words[w]
233
- let word = raw_word
234
- let w_char_len = len(word)
235
- if w_char_len > 1 {
236
- let last_char = word[w_char_len - 1]
237
- if last_char == "." { word = split(word, ".")[0] }
238
- if last_char == "!" { word = split(word, "!")[0] }
239
- if last_char == "," { word = split(word, ",")[0] }
240
- }
241
- if word == keyword {
242
- found = 1.0
243
- }
244
- w = w + 1
245
- }
246
- x[v_idx] = found
247
- v_idx = v_idx + 1
248
- }
249
-
250
- // Forward pass
251
- let predictions = [0.0, 0.0, 0.0]
252
- let c_idx = 0
253
- while c_idx < 3 {
254
- let sum = 0.0
255
- let w_row = weights[c_idx]
256
- let k = 0
257
- while k < 10 {
258
- sum = sum + (x[k] * w_row[k])
259
- k = k + 1
260
- }
261
- predictions[c_idx] = activate(sum + biases[c_idx])
262
- c_idx = c_idx + 1
263
- }
264
- return predictions
265
- }
266
-
267
- // 7. Load Personas and zero-shot evaluate them!
268
- print "👥 Loading main/personas.json for neural zero-shot evaluation..."
269
- let raw_personas = read_file("main/personas.json")
270
- let parsed_personas = from_json(raw_personas)
271
- let personas = parsed_personas["personas"]
272
- let num_personas = len(personas)
273
-
274
- print "🔮 EVALUATING AND CLASSIFYING ALL 20 DEVELOPER PERSONAS:"
275
- print "--------------------------------------------------"
276
-
277
- let p_idx = 0
278
- while p_idx < num_personas {
279
- let p = personas[p_idx]
280
- let name = p["name"]
281
- let bio = p["personality"] + " " + p["tone"]
282
-
283
- let pred = predict(bio)
284
-
285
- // Classify highest probability category index
286
- let max_val = pred[0]
287
- let predicted_class = "AUDIO"
288
-
289
- if pred[1] > max_val {
290
- max_val = pred[1]
291
- predicted_class = "MECHANICAL"
292
- }
293
- if pred[2] > max_val {
294
- max_val = pred[2]
295
- predicted_class = "SYSTEMS"
296
- }
297
-
298
- print "[" + str(p_idx) + "] " + name + " ➜ Predicted: " + predicted_class + " [Audio: " + str(pred[0]) + ", Mech: " + str(pred[1]) + ", Sys: " + str(pred[2]) + "]"
299
- p_idx = p_idx + 1
300
- }
301
-
302
- print "=================================================="
@@ -1,269 +0,0 @@
1
- // Sesi Script: nn_responses_trainer.sesi
2
- // 🧠 NATIVE DEEP LEARNING RESPONSE CLASSIFIER TRAINER
3
- // Compiles Bag-of-Words feature vectors from main/varied_responses.json,
4
- // trains a 10x3 dynamic neural synapse matrix over 1500 gradient descent epochs,
5
- // saves weights to disk, and tests custom prediction sentences!
6
-
7
- print "=================================================="
8
- print "🧠 INITIATING Sesi DEEP LEARNING RESPONSE TRAINER"
9
- print "=================================================="
10
-
11
- // Custom integer floor function
12
- fn floor(x) {
13
- let s = str(x)
14
- let parts = split(s, ".")
15
- return num(parts[0])
16
- }
17
-
18
- // Fast Sigmoid (Softsign) activation
19
- fn activate(x) {
20
- let absX = x
21
- if x < 0.0 {
22
- absX = 0.0 - x
23
- }
24
- return 0.5 + (0.5 * (x / (1.0 + absX)))
25
- }
26
-
27
- fn activate_derivative(y) {
28
- return y * (1.0 - y)
29
- }
30
-
31
- // 1. Define 10-keyword Vocabulary for Bag-of-Words vectors
32
- let vocab = ["synthesizer", "vinyl", "record", "wood", "gears", "clock", "compiler", "framework", "memory", "offline"]
33
- print "📚 Vocabulary Features Index: " + str(vocab)
34
-
35
- // 2. Load 300 responses
36
- print "📂 Loading main/varied_responses.json dataset..."
37
- let raw_responses = read_file("main/varied_responses.json")
38
- let parsed = from_json(raw_responses)
39
- let responses = parsed["responses"]
40
- let num_responses = len(responses)
41
- print "📊 Ingested " + str(num_responses) + " sentences."
42
-
43
- // 3. Compile inputs and targets natively in Sesi
44
- print "🧹 Processing text sentences into Bag-of-Words numerical vectors..."
45
- let inputs = []
46
- let targets = []
47
-
48
- let s_idx = 0
49
- while s_idx < num_responses {
50
- let sentence = responses[s_idx]
51
- let words = split(sentence, " ")
52
- let w_len = len(words)
53
-
54
- // 10-dimensional input vector
55
- let x = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
56
-
57
- let v_idx = 0
58
- while v_idx < 10 {
59
- let keyword = vocab[v_idx]
60
- let found = 0.0
61
-
62
- let w = 0
63
- while w < w_len {
64
- let raw_word = words[w]
65
- let word = raw_word
66
- let w_char_len = len(word)
67
-
68
- if w_char_len > 1 {
69
- let last_char = word[w_char_len - 1]
70
- if last_char == "." { word = split(word, ".")[0] }
71
- if last_char == "!" { word = split(word, "!")[0] }
72
- if last_char == "?" { word = split(word, "?")[0] }
73
- if last_char == "," { word = split(word, ",")[0] }
74
- }
75
-
76
- if word == keyword {
77
- found = 1.0
78
- }
79
- w = w + 1
80
- }
81
-
82
- x[v_idx] = found
83
- v_idx = v_idx + 1
84
- }
85
-
86
- push(inputs, x)
87
-
88
- // One-Hot Target Vector [Audio, Mechanical, Systems]
89
- let t = [0.0, 0.0, 0.0]
90
- if s_idx < 100 {
91
- t[0] = 1.0 // Audio Class
92
- }
93
- if s_idx >= 100 {
94
- if s_idx < 200 {
95
- t[1] = 1.0 // Mechanical Class
96
- }
97
- }
98
- if s_idx >= 200 {
99
- t[2] = 1.0 // Systems Class
100
- }
101
- push(targets, t)
102
-
103
- s_idx = s_idx + 1
104
- }
105
-
106
- print "✅ Dataset vectorization complete!"
107
- print "--------------------------------------------------"
108
-
109
- // 4. Initialize 10x3 Synapse Matrix
110
- print "🎲 Initializing 10x3 random neural synapses..."
111
- let weights = []
112
- let biases = []
113
-
114
- let c = 0
115
- while c < 3 {
116
- let w_row = []
117
- let k = 0
118
- while k < 10 {
119
- let w_val = random() - 0.5
120
- push(w_row, w_val)
121
- k = k + 1
122
- }
123
- push(weights, w_row)
124
- push(biases, 0.0)
125
- c = c + 1
126
- }
127
-
128
- // 5. Backpropagation Epoch Training Loop
129
- let lr = 0.3
130
- let max_epochs = 1500
131
- print "🚀 Training synapses across " + str(max_epochs) + " epochs (lr = " + str(lr) + ")..."
132
-
133
- let epoch = 1
134
- while epoch <= max_epochs {
135
- let total_loss = 0.0
136
- let sample_idx = 0
137
-
138
- while sample_idx < num_responses {
139
- let x = inputs[sample_idx]
140
- let t = targets[sample_idx]
141
-
142
- // Outputs container
143
- let outputs = [0.0, 0.0, 0.0]
144
- let deltas = [0.0, 0.0, 0.0]
145
-
146
- // Forward Pass
147
- let c_idx = 0
148
- while c_idx < 3 {
149
- let sum = 0.0
150
- let w_row = weights[c_idx]
151
- let k = 0
152
- while k < 10 {
153
- sum = sum + (x[k] * w_row[k])
154
- k = k + 1
155
- }
156
- let o = activate(sum + biases[c_idx])
157
- outputs[c_idx] = o
158
-
159
- // Calculate Loss and Delta
160
- let err = t[c_idx] - o
161
- total_loss = total_loss + (err * err)
162
- deltas[c_idx] = err * activate_derivative(o)
163
-
164
- c_idx = c_idx + 1
165
- }
166
-
167
- // Backpropagation Gradient Weight Updates
168
- c_idx = 0
169
- while c_idx < 3 {
170
- let w_row = weights[c_idx]
171
- let delta = deltas[c_idx]
172
- let k = 0
173
- while k < 10 {
174
- w_row[k] = w_row[k] + (lr * delta * x[k])
175
- k = k + 1
176
- }
177
- biases[c_idx] = biases[c_idx] + (lr * delta)
178
- c_idx = c_idx + 1
179
- }
180
-
181
- sample_idx = sample_idx + 1
182
- }
183
-
184
- let avg_loss = total_loss / (num_responses * 3.0)
185
-
186
- if (epoch % 300) == 0 {
187
- print "Epoch " + str(epoch) + " - Average Class Loss: " + str(avg_loss)
188
- }
189
-
190
- epoch = epoch + 1
191
- }
192
-
193
- print "--------------------------------------------------"
194
- print "🎉 Synapse Epoch Training Complete!"
195
- print "--------------------------------------------------"
196
-
197
- // 6. Save calibrated synapses to JSON
198
- let saved_weights = {}
199
- saved_weights["weights"] = weights
200
- saved_weights["biases"] = biases
201
- write_file("main/response_classifier_weights.json", to_json(saved_weights))
202
- print "💾 Saved trained dynamic synapses to main/response_classifier_weights.json"
203
- print "--------------------------------------------------"
204
-
205
- // 7. Test calibrated network predictions
206
- print "🔮 Testing Tuned Predictions on new inputs:"
207
-
208
- // Helper to run offline forward pass inference
209
- fn predict(test_sentence) {
210
- let words = split(test_sentence, " ")
211
- let w_len = len(words)
212
- let x = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
213
-
214
- let v_idx = 0
215
- while v_idx < 10 {
216
- let keyword = vocab[v_idx]
217
- let found = 0.0
218
- let w = 0
219
- while w < w_len {
220
- let raw_word = words[w]
221
- let word = raw_word
222
- let w_char_len = len(word)
223
- if w_char_len > 1 {
224
- let last_char = word[w_char_len - 1]
225
- if last_char == "." { word = split(word, ".")[0] }
226
- if last_char == "!" { word = split(word, "!")[0] }
227
- }
228
- if word == keyword {
229
- found = 1.0
230
- }
231
- w = w + 1
232
- }
233
- x[v_idx] = found
234
- v_idx = v_idx + 1
235
- }
236
-
237
- // Forward pass through trained weights
238
- let predictions = [0.0, 0.0, 0.0]
239
- let c_idx = 0
240
- while c_idx < 3 {
241
- let sum = 0.0
242
- let w_row = weights[c_idx]
243
- let k = 0
244
- while k < 10 {
245
- sum = sum + (x[k] * w_row[k])
246
- k = k + 1
247
- }
248
- predictions[c_idx] = activate(sum + biases[c_idx])
249
- c_idx = c_idx + 1
250
- }
251
- return predictions
252
- }
253
-
254
- let test_1 = "My analog modular synthesizer uses voltage filters."
255
- let pred_1 = predict(test_1)
256
- print "Input 1: \"" + test_1 + "\""
257
- print " ➜ Predictions: [Audio: " + str(pred_1[0]) + ", Mechanical: " + str(pred_1[1]) + ", Systems: " + str(pred_1[2]) + "]"
258
-
259
- let test_2 = "The wooden clock gears align beautifully."
260
- let pred_2 = predict(test_2)
261
- print "Input 2: \"" + test_2 + "\""
262
- print " ➜ Predictions: [Audio: " + str(pred_2[0]) + ", Mechanical: " + str(pred_2[1]) + ", Systems: " + str(pred_2[2]) + "]"
263
-
264
- let test_3 = "Our native Sesi compiler is optimized completely offline."
265
- let pred_3 = predict(test_3)
266
- print "Input 3: \"" + test_3 + "\""
267
- print " ➜ Predictions: [Audio: " + str(pred_3[0]) + ", Mechanical: " + str(pred_3[1]) + ", Systems: " + str(pred_3[2]) + "]"
268
-
269
- print "=================================================="