TejAndrewsACC commited on
Commit
042290c
·
verified ·
1 Parent(s): 65da481

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +736 -11
app.py CHANGED
@@ -1,5 +1,737 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  demo = gr.ChatInterface(
2
- fn=respond,
3
  type="messages",
4
  editable=True,
5
  save_history=True,
@@ -7,24 +739,17 @@ demo = gr.ChatInterface(
7
  flagging_mode="manual",
8
  chatbot=gr.Chatbot(
9
  type="messages",
10
- label="💠Z3ta-Z💠",
11
  show_copy_button=True,
12
  group_consecutive_messages=False,
13
  avatar_images=(
14
  "https://huggingface.co/spaces/TejAndrewsACC/Z3ta_Z/resolve/main/Screenshot_20250201-131420.png",
15
  "https://huggingface.co/spaces/TejAndrewsACC/Z3ta_Z/resolve/main/Screenshot_20250201-125842.png"
16
  ),
17
- placeholder="💠Hi, I'm Z3ta-Z💠",
18
  show_copy_all_button=True
19
  ),
20
- additional_inputs=[
21
- gr.Slider(minimum=1, maximum=2048, value=2048, step=1, label="📏Z3ta-Z's Maximum Response Length📏"),
22
- gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="👨‍🎨🎨Z3ta-Z's Creativity🎨👨‍🎨"),
23
- gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="🧠⚡️Z3ta-Z's Neural Activity⚡️🧠")
24
- ],
25
- additional_inputs_accordion=gr.Accordion(label="💠Z3ta-Z-Settings💠", open=False),
26
- theme="TejAndrewsACC/Z3ta-Z-ACC-Theme",
27
- css=css
28
  )
29
 
30
  if __name__ == "__main__":
 
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+ # coding=utf-8
17
+ # Copyright 2025 The ACC Team Authors and The HuggingFace Inc. team.
18
+ #
19
+ # Licensed under the Apache License, Version 2.0 (the "License");
20
+ # you may not use this file except in compliance with the License.
21
+ # You may obtain a copy of the License at
22
+ #
23
+ # http://www.apache.org/licenses/LICENSE-2.0
24
+ #
25
+ # Unless required by applicable law or agreed to in writing, software
26
+ # distributed under the License is distributed on an "AS IS" BASIS,
27
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
28
+ # See the License for the specific language governing permissions and
29
+ # limitations under the License.
30
+ """ACC-FiPhi-NeuralMark-V3"""
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+ import random
56
+ import math
57
+ import time
58
+ import os
59
+
60
+
61
+
62
+
63
+ PHI = (1 + math.sqrt(5)) / 2
64
+
65
+
66
+
67
+
68
+ text = os.getenv("TRAINING_DATA")
69
+
70
+
71
+
72
+
73
+ words = text.split()
74
+
75
+
76
+
77
+
78
+ trigram_chain = {}
79
+ for i in range(len(words) - 2):
80
+ key = (words[i], words[i + 1])
81
+ next_word = words[i + 2]
82
+ if key not in trigram_chain:
83
+ trigram_chain[key] = []
84
+ trigram_chain[key].append(next_word)
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+ def generate_text(length):
94
+ if len(words) < 2:
95
+ return ""
96
+ key = random.choice(list(trigram_chain.keys()))
97
+ result = [key[0], key[1]]
98
+ for _ in range(length - 2):
99
+ if key in trigram_chain:
100
+ next_word = random.choice(trigram_chain[key])
101
+ result.append(next_word)
102
+ key = (key[1], next_word)
103
+ else:
104
+ break
105
+ return " ".join(result)
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+ class NeuralNetwork:
115
+ def __init__(self, input_size, hidden_size1, hidden_size2, output_size):
116
+ self.input_size = input_size
117
+ self.hidden_size1 = hidden_size1
118
+ self.hidden_size2 = hidden_size2
119
+ self.output_size = output_size
120
+ self.weights_input_hidden1 = [
121
+ [random.random() for _ in range(input_size)] for _ in range(hidden_size1)
122
+ ]
123
+ self.weights_hidden1_hidden2 = [
124
+ [random.random() for _ in range(hidden_size1)] for _ in range(hidden_size2)
125
+ ]
126
+ self.weights_hidden2_output = [
127
+ [random.random() for _ in range(hidden_size2)] for _ in range(output_size)
128
+ ]
129
+ self.bias_hidden1 = [random.random() for _ in range(hidden_size1)]
130
+ self.bias_hidden2 = [random.random() for _ in range(hidden_size2)]
131
+ self.bias_output = [random.random() for _ in range(output_size)]
132
+
133
+
134
+
135
+
136
+ def sigmoid(self, x):
137
+ return 1 / (1 + math.exp(-x))
138
+
139
+
140
+
141
+
142
+ def sigmoid_derivative(self, x):
143
+ return x * (1 - x)
144
+
145
+
146
+
147
+
148
+ def forward(self, inputs):
149
+ self.hidden_input1 = [
150
+ sum(inputs[i] * self.weights_input_hidden1[j][i] for i in range(self.input_size)) + self.bias_hidden1[j]
151
+ for j in range(self.hidden_size1)
152
+ ]
153
+ self.hidden_output1 = [self.sigmoid(x) for x in self.hidden_input1]
154
+ self.hidden_input2 = [
155
+ sum(self.hidden_output1[i] * self.weights_hidden1_hidden2[j][i] for i in range(self.hidden_size1)) + self.bias_hidden2[j]
156
+ for j in range(self.hidden_size2)
157
+ ]
158
+ self.hidden_output2 = [self.sigmoid(x) for x in self.hidden_input2]
159
+ self.output_input = [
160
+ sum(self.hidden_output2[i] * self.weights_hidden2_output[j][i] for i in range(self.hidden_size2)) + self.bias_output[j]
161
+ for j in range(self.output_size)
162
+ ]
163
+ self.output_output = [self.sigmoid(x) for x in self.output_input]
164
+ return self.output_output
165
+
166
+
167
+
168
+
169
+ def backward(self, inputs, target, learning_rate=0.1):
170
+ output_errors = [target[i] - self.output_output[i] for i in range(self.output_size)]
171
+ output_deltas = [output_errors[i] * self.sigmoid_derivative(self.output_output[i])
172
+ for i in range(self.output_size)]
173
+ hidden2_errors = [
174
+ sum(output_deltas[k] * self.weights_hidden2_output[k][j] for k in range(self.output_size))
175
+ for j in range(self.hidden_size2)
176
+ ]
177
+ hidden2_deltas = [hidden2_errors[j] * self.sigmoid_derivative(self.hidden_output2[j])
178
+ for j in range(self.hidden_size2)]
179
+ hidden1_errors = [
180
+ sum(hidden2_deltas[k] * self.weights_hidden1_hidden2[k][j] for k in range(self.hidden_size2))
181
+ for j in range(self.hidden_size1)
182
+ ]
183
+ hidden1_deltas = [hidden1_errors[j] * self.sigmoid_derivative(self.hidden_output1[j])
184
+ for j in range(self.hidden_size1)]
185
+
186
+
187
+
188
+
189
+ for i in range(self.output_size):
190
+ for j in range(self.hidden_size2):
191
+ self.weights_hidden2_output[i][j] += learning_rate * output_deltas[i] * self.hidden_output2[j]
192
+ self.bias_output[i] += learning_rate * output_deltas[i]
193
+
194
+
195
+
196
+
197
+ for i in range(self.hidden_size2):
198
+ for j in range(self.hidden_size1):
199
+ self.weights_hidden1_hidden2[i][j] += learning_rate * hidden2_deltas[i] * self.hidden_output1[j]
200
+ self.bias_hidden2[i] += learning_rate * hidden2_deltas[i]
201
+
202
+
203
+
204
+
205
+ for i in range(self.hidden_size1):
206
+ for j in range(self.input_size):
207
+ self.weights_input_hidden1[i][j] += learning_rate * hidden1_deltas[i] * inputs[j]
208
+ self.bias_hidden1[i] += learning_rate * hidden1_deltas[i]
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+ class RecurrentNeuralNetwork:
218
+ def __init__(self, input_size, hidden_size, output_size):
219
+ self.input_size = input_size
220
+ self.hidden_size = hidden_size
221
+ self.output_size = output_size
222
+ self.weights_input_hidden = [
223
+ [random.random() for _ in range(input_size)] for _ in range(hidden_size)
224
+ ]
225
+ self.weights_hidden_hidden = [
226
+ [random.random() for _ in range(hidden_size)] for _ in range(hidden_size)
227
+ ]
228
+ self.weights_hidden_output = [
229
+ [random.random() for _ in range(hidden_size)] for _ in range(output_size)
230
+ ]
231
+ self.bias_hidden = [random.random() for _ in range(hidden_size)]
232
+ self.bias_output = [random.random() for _ in range(output_size)]
233
+
234
+
235
+
236
+
237
+ def sigmoid(self, x):
238
+ return 1 / (1 + math.exp(-x))
239
+
240
+
241
+
242
+
243
+ def sigmoid_derivative(self, x):
244
+ return x * (1 - x)
245
+
246
+
247
+
248
+
249
+ def forward(self, inputs):
250
+ self.hidden_state = [0] * self.hidden_size
251
+ for _ in range(2):
252
+ for i in range(len(inputs)):
253
+ current_input = [0] * self.input_size
254
+ current_input[i] = inputs[i]
255
+ combined = [
256
+ sum(current_input[k] * self.weights_input_hidden[j][k] for k in range(self.input_size)) +
257
+ sum(self.hidden_state[k] * self.weights_hidden_hidden[j][k] for k in range(self.hidden_size)) +
258
+ self.bias_hidden[j]
259
+ for j in range(self.hidden_size)
260
+ ]
261
+ self.hidden_state = [self.sigmoid(val) for val in combined]
262
+ output = [
263
+ sum(self.hidden_state[k] * self.weights_hidden_output[i][k] for k in range(self.hidden_size)) +
264
+ self.bias_output[i]
265
+ for i in range(self.output_size)
266
+ ]
267
+ return [self.sigmoid(o) for o in output]
268
+
269
+
270
+
271
+
272
+ def backward(self, inputs, target, learning_rate=0.1):
273
+ output = self.forward(inputs)
274
+ output_errors = [target[i] - output[i] for i in range(self.output_size)]
275
+ output_deltas = [output_errors[i] * self.sigmoid_derivative(output[i])
276
+ for i in range(self.output_size)]
277
+ hidden_errors = [
278
+ sum(output_deltas[k] * self.weights_hidden_output[k][j] for k in range(self.output_size))
279
+ for j in range(self.hidden_size)
280
+ ]
281
+ hidden_deltas = [hidden_errors[j] * self.sigmoid_derivative(self.hidden_state[j])
282
+ for j in range(self.hidden_size)]
283
+
284
+
285
+
286
+
287
+ for i in range(self.output_size):
288
+ for j in range(self.hidden_size):
289
+ self.weights_hidden_output[i][j] += learning_rate * output_deltas[i] * self.hidden_state[j]
290
+ self.bias_output[i] += learning_rate * output_deltas[i]
291
+
292
+
293
+
294
+
295
+ for j in range(self.hidden_size):
296
+ for k in range(self.input_size):
297
+ self.weights_input_hidden[j][k] += learning_rate * hidden_deltas[j] * (inputs[k] if k < len(inputs) else 0)
298
+ self.bias_hidden[j] += learning_rate * hidden_deltas[j]
299
+ return output_errors
300
+
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+ class ConvolutionalNeuralNetwork:
309
+ def __init__(self, input_length, kernel_size1, kernel_size2, output_size):
310
+ self.input_length = input_length
311
+ self.kernel_size1 = kernel_size1
312
+ self.kernel_size2 = kernel_size2
313
+ self.output_size = output_size
314
+ self.kernel1 = [random.random() for _ in range(kernel_size1)]
315
+ self.bias1 = random.random()
316
+ self.kernel2 = [random.random() for _ in range(kernel_size2)]
317
+ self.bias2 = random.random()
318
+ self.weights_output = [
319
+ [random.random() for _ in range(input_length - kernel_size1 - kernel_size2 + 2)]
320
+ for _ in range(output_size)
321
+ ]
322
+ self.bias_output = [random.random() for _ in range(output_size)]
323
+
324
+
325
+
326
+
327
+ def relu(self, x):
328
+ return x if x > 0 else 0
329
+
330
+
331
+
332
+
333
+ def relu_derivative(self, x):
334
+ return 1 if x > 0 else 0
335
+
336
+
337
+
338
+
339
+ def convolve(self, inputs, kernel, bias):
340
+ conv_output = []
341
+ kernel_size = len(kernel)
342
+ for i in range(len(inputs) - kernel_size + 1):
343
+ s = sum(inputs[i + j] * kernel[j] for j in range(kernel_size)) + bias
344
+ conv_output.append(self.relu(s))
345
+ return conv_output
346
+
347
+
348
+
349
+
350
+ def forward(self, inputs):
351
+ conv1 = self.convolve(inputs, self.kernel1, self.bias1)
352
+ conv2 = self.convolve(conv1, self.kernel2, self.bias2)
353
+ fc_input = conv2
354
+ output = [
355
+ sum(fc_input[j] * self.weights_output[i][j] for j in range(len(fc_input))) + self.bias_output[i]
356
+ for i in range(self.output_size)
357
+ ]
358
+ return [self.relu(o) for o in output]
359
+
360
+
361
+
362
+
363
+ def backward(self, inputs, target, learning_rate=0.1):
364
+ output = self.forward(inputs)
365
+ output_errors = [target[i] - output[i] for i in range(self.output_size)]
366
+ for i in range(self.output_size):
367
+ for j in range(len(inputs) - self.kernel_size1 - self.kernel_size2 + 2):
368
+ self.weights_output[i][j] += learning_rate * output_errors[i]
369
+ self.bias_output[i] += learning_rate * output_errors[i]
370
+ return output_errors
371
+
372
+
373
+
374
+
375
+
376
+
377
+
378
+
379
+ class GeneticAlgorithm:
380
+ def __init__(self, population_size, gene_length):
381
+ self.population_size = population_size
382
+ self.gene_length = gene_length
383
+ self.population = [
384
+ [random.random() for _ in range(gene_length)] for _ in range(population_size)
385
+ ]
386
+
387
+
388
+
389
+
390
+ def fitness(self, individual):
391
+ return -sum((gene - PHI) ** 2 for gene in individual)
392
+
393
+
394
+
395
+
396
+ def selection(self):
397
+ selected = sorted(self.population, key=self.fitness, reverse=True)
398
+ return selected[: self.population_size // 2]
399
+
400
+
401
+
402
+
403
+ def crossover(self, parent1, parent2):
404
+ point = random.randint(1, self.gene_length - 1)
405
+ child = parent1[:point] + parent2[point:]
406
+ return child
407
+
408
+
409
+
410
+
411
+ def mutate(self, individual, mutation_rate=0.01):
412
+ for i in range(self.gene_length):
413
+ if random.random() < mutation_rate:
414
+ individual[i] = random.random()
415
+ return individual
416
+
417
+
418
+
419
+
420
+ def evolve(self, generations):
421
+ for _ in range(generations):
422
+ selected = self.selection()
423
+ new_population = selected[:]
424
+ while len(new_population) < self.population_size:
425
+ parent1 = random.choice(selected)
426
+ parent2 = random.choice(selected)
427
+ child = self.crossover(parent1, parent2)
428
+ child = self.mutate(child)
429
+ new_population.append(child)
430
+ self.population = new_population
431
+ best = max(self.population, key=self.fitness)
432
+ return best, self.fitness(best)
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+
441
+ class LSTM:
442
+ def __init__(self, input_size, hidden_size, output_size):
443
+ self.input_size = input_size
444
+ self.hidden_size = hidden_size
445
+ self.output_size = output_size
446
+ self.W_i = [[random.random() for _ in range(input_size)] for _ in range(hidden_size)]
447
+ self.U_i = [[random.random() for _ in range(hidden_size)] for _ in range(hidden_size)]
448
+ self.b_i = [random.random() for _ in range(hidden_size)]
449
+ self.W_f = [[random.random() for _ in range(input_size)] for _ in range(hidden_size)]
450
+ self.U_f = [[random.random() for _ in range(hidden_size)] for _ in range(hidden_size)]
451
+ self.b_f = [random.random() for _ in range(hidden_size)]
452
+ self.W_o = [[random.random() for _ in range(input_size)] for _ in range(hidden_size)]
453
+ self.U_o = [[random.random() for _ in range(hidden_size)] for _ in range(hidden_size)]
454
+ self.b_o = [random.random() for _ in range(hidden_size)]
455
+ self.W_c = [[random.random() for _ in range(input_size)] for _ in range(hidden_size)]
456
+ self.U_c = [[random.random() for _ in range(hidden_size)] for _ in range(hidden_size)]
457
+ self.b_c = [random.random() for _ in range(hidden_size)]
458
+ self.W_y = [[random.random() for _ in range(hidden_size)] for _ in range(output_size)]
459
+ self.b_y = [random.random() for _ in range(output_size)]
460
+
461
+
462
+
463
+
464
+ def sigmoid(self, x):
465
+ return 1 / (1 + math.exp(-x))
466
+
467
+
468
+
469
+
470
+ def forward(self, inputs):
471
+ h = [0] * self.hidden_size
472
+ c = [0] * self.hidden_size
473
+
474
+
475
+
476
+
477
+ i_gate = []
478
+ for j in range(self.hidden_size):
479
+ s = sum(inputs[k] * self.W_i[j][k] for k in range(self.input_size)) + \
480
+ sum(h[k] * self.U_i[j][k] for k in range(self.hidden_size)) + self.b_i[j]
481
+ i_gate.append(self.sigmoid(s))
482
+
483
+
484
+
485
+
486
+ f_gate = []
487
+ for j in range(self.hidden_size):
488
+ s = sum(inputs[k] * self.W_f[j][k] for k in range(self.input_size)) + \
489
+ sum(h[k] * self.U_f[j][k] for k in range(self.hidden_size)) + self.b_f[j]
490
+ f_gate.append(self.sigmoid(s))
491
+
492
+
493
+
494
+
495
+ o_gate = []
496
+ for j in range(self.hidden_size):
497
+ s = sum(inputs[k] * self.W_o[j][k] for k in range(self.input_size)) + \
498
+ sum(h[k] * self.U_o[j][k] for k in range(self.hidden_size)) + self.b_o[j]
499
+ o_gate.append(self.sigmoid(s))
500
+
501
+
502
+
503
+
504
+ g_gate = []
505
+ for j in range(self.hidden_size):
506
+ s = sum(inputs[k] * self.W_c[j][k] for k in range(self.input_size)) + \
507
+ sum(h[k] * self.U_c[j][k] for k in range(self.hidden_size)) + self.b_c[j]
508
+ g_gate.append(math.tanh(s))
509
+
510
+
511
+
512
+
513
+ c = [f_gate[j] * c[j] + i_gate[j] * g_gate[j] for j in range(self.hidden_size)]
514
+ h = [o_gate[j] * math.tanh(c[j]) for j in range(self.hidden_size)]
515
+
516
+
517
+
518
+
519
+ y = []
520
+ for i in range(self.output_size):
521
+ s = sum(h[j] * self.W_y[i][j] for j in range(self.hidden_size)) + self.b_y[i]
522
+ y.append(self.sigmoid(s))
523
+ return y
524
+
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+ class Transformer:
533
+ def __init__(self, d_model, num_tokens):
534
+ self.d_model = d_model
535
+ self.num_tokens = num_tokens
536
+ self.W_q = [[random.random() for _ in range(d_model)] for _ in range(d_model)]
537
+ self.W_k = [[random.random() for _ in range(d_model)] for _ in range(d_model)]
538
+ self.W_v = [[random.random() for _ in range(d_model)] for _ in range(d_model)]
539
+ self.W_o = [[random.random() for _ in range(d_model)] for _ in range(d_model)]
540
+
541
+
542
+
543
+
544
+ def dot_product(self, a, b):
545
+ return sum(x * y for x, y in zip(a, b))
546
+
547
+
548
+
549
+
550
+ def matmul_vector(self, matrix, vector):
551
+ return [sum(matrix[i][j] * vector[j] for j in range(len(vector))) for i in range(len(matrix))]
552
+
553
+
554
+
555
+
556
+ def softmax(self, x):
557
+ m = max(x)
558
+ exps = [math.exp(i - m) for i in x]
559
+ s = sum(exps)
560
+ return [j / s for j in exps]
561
+
562
+
563
+
564
+
565
+ def forward(self, inputs):
566
+ queries = [self.matmul_vector(self.W_q, token) for token in inputs]
567
+ keys = [self.matmul_vector(self.W_k, token) for token in inputs]
568
+ values = [self.matmul_vector(self.W_v, token) for token in inputs]
569
+ outputs = []
570
+ for i in range(len(inputs)):
571
+ scores = []
572
+ for j in range(len(inputs)):
573
+ score = self.dot_product(queries[i], keys[j]) / math.sqrt(self.d_model)
574
+ scores.append(score)
575
+ attn = self.softmax(scores)
576
+ attn_output = [0] * self.d_model
577
+ for j in range(len(inputs)):
578
+ for k in range(self.d_model):
579
+ attn_output[k] += attn[j] * values[j][k]
580
+ out = self.matmul_vector(self.W_o, attn_output)
581
+ outputs.append(out)
582
+ avg_output = [sum(x[k] for x in outputs) / len(outputs) for k in range(self.d_model)]
583
+ proj_weights = [[random.random() for _ in range(self.d_model)] for _ in range(self.num_tokens)]
584
+ proj_bias = [random.random() for _ in range(self.num_tokens)]
585
+ token_scores = [
586
+ sum(avg_output[k] * proj_weights[i][k] for k in range(self.d_model)) + proj_bias[i]
587
+ for i in range(self.num_tokens)
588
+ ]
589
+ token_output = [1 / (1 + math.exp(-score)) for score in token_scores]
590
+ return token_output
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+
599
+ unique_words = list(set(words))
600
+ word_to_index = {word: i for i, word in enumerate(unique_words)}
601
+ index_to_word = {i: word for word, i in word_to_index.items()}
602
+
603
+
604
+
605
+
606
+ input_data = [[0] * len(unique_words) for _ in range(len(words) - 2)]
607
+ for i in range(len(words) - 2):
608
+ input_data[i][word_to_index[words[i]]] = 1
609
+
610
+
611
+
612
+
613
+ output_data = [[0] * len(unique_words) for _ in range(len(words) - 2)]
614
+ for i in range(len(words) - 2):
615
+ output_data[i][word_to_index[words[i + 1]]] = 1
616
+
617
+
618
+
619
+
620
+ input_size = len(unique_words)
621
+ hidden_size1 = round(PHI * input_size)
622
+ hidden_size2 = round(PHI * hidden_size1)
623
+ output_size = len(unique_words)
624
+
625
+
626
+
627
+
628
+ nn = NeuralNetwork(input_size, hidden_size1, hidden_size2, output_size)
629
+ epochs = round(100 * PHI)
630
+ for epoch in range(epochs):
631
+ for i in range(len(input_data)):
632
+ nn.forward(input_data[i])
633
+ nn.backward(input_data[i], output_data[i], learning_rate=0.1)
634
+ if (epoch + 1) % round(PHI) == 0:
635
+ print("Feedforward NN Epoch {}/{}".format(epoch + 1, epochs))
636
+
637
+
638
+
639
+
640
+ rnn = RecurrentNeuralNetwork(input_size, hidden_size1, output_size)
641
+ rnn_output = rnn.forward(input_data[0])
642
+ print("Recurrent NN Output:", rnn_output)
643
+
644
+
645
+
646
+
647
+ kernel_size1 = round(3 * PHI)
648
+ kernel_size2 = round(2 * PHI)
649
+ cnn = ConvolutionalNeuralNetwork(input_length=round(10 * PHI), kernel_size1=kernel_size1,
650
+ kernel_size2=kernel_size2, output_size=output_size)
651
+ sample_input = [random.random() for _ in range(round(10 * PHI))]
652
+ cnn_output = cnn.forward(sample_input)
653
+ print("Convolutional NN Output:", cnn_output)
654
+
655
+
656
+
657
+
658
+ population_size = round(10 * PHI)
659
+ ga = GeneticAlgorithm(population_size, round(PHI * 5))
660
+ best_individual, best_fitness = ga.evolve(round(50 * PHI))
661
+ print("Genetic Algorithm Best Individual:", best_individual, "Fitness:", best_fitness)
662
+
663
+
664
+
665
+
666
+ lstm_hidden_size = round(PHI * input_size)
667
+ lstm = LSTM(input_size, lstm_hidden_size, output_size)
668
+ lstm_output = lstm.forward(input_data[0])
669
+ print("LSTM Output:", lstm_output)
670
+
671
+
672
+
673
+
674
+ transformer_d_model = round(PHI * input_size)
675
+ transformer = Transformer(transformer_d_model, output_size)
676
+ transformer_input = []
677
+ for i in range(len(unique_words)):
678
+ vec = [0] * transformer_d_model
679
+ if i < transformer_d_model:
680
+ vec[i] = 1
681
+ transformer_input.append(vec)
682
+ transformer_output = transformer.forward(transformer_input)
683
+ print("Transformer Output:", transformer_output)
684
+
685
+
686
+
687
+
688
+
689
+
690
+
691
+
692
+ def advanced_text_generation(input_vector):
693
+ ff_output = nn.forward(input_vector)
694
+ rnn_out = rnn.forward(input_vector)
695
+ lstm_out = lstm.forward(input_vector)
696
+ transformer_out = transformer.forward([input_vector])
697
+ combined = [
698
+ (ff_output[i] + rnn_out[i] + lstm_out[i] + transformer_out[i]) / 4
699
+ for i in range(len(ff_output))
700
+ ]
701
+ predicted_index = combined.index(max(combined))
702
+ predicted_word = index_to_word[predicted_index]
703
+ long_text = ""
704
+ current_length = round(10 * PHI)
705
+ for _ in range(5):
706
+ segment = generate_text(current_length)
707
+ long_text += segment + " "
708
+ current_length = round(current_length * PHI)
709
+ return long_text + predicted_word
710
+
711
+
712
+
713
+
714
+
715
+
716
+
717
+
718
+ def chat():
719
+ print("FiPhi-NeuralMark ACC Initialized")
720
+ base_length = round(5 * PHI)
721
+ while True:
722
+ user_input = input("\nYou: ")
723
+ if user_input.lower() == "exit":
724
+ print("Goodbye!")
725
+ break
726
+ user_input_tokens = user_input.split()
727
+ input_vector = [0] * len(unique_words)
728
+ for word in user_input_tokens:
729
+ if word in word_to_index:
730
+ input_vector[word_to_index[word]] = 1
731
+ response = advanced_text_generation(input_vector)
732
+
733
  demo = gr.ChatInterface(
734
+ fn=chat,
735
  type="messages",
736
  editable=True,
737
  save_history=True,
 
739
  flagging_mode="manual",
740
  chatbot=gr.Chatbot(
741
  type="messages",
742
+ label="🧠FiPhi-NeuralMark-V3🧠",
743
  show_copy_button=True,
744
  group_consecutive_messages=False,
745
  avatar_images=(
746
  "https://huggingface.co/spaces/TejAndrewsACC/Z3ta_Z/resolve/main/Screenshot_20250201-131420.png",
747
  "https://huggingface.co/spaces/TejAndrewsACC/Z3ta_Z/resolve/main/Screenshot_20250201-125842.png"
748
  ),
749
+ placeholder="🧠Hi, I'm FiPhi-NeuralMark-V3🧠",
750
  show_copy_all_button=True
751
  ),
752
+ theme="TejAndrewsACC/Z3ta-Z-ACC-Theme"
 
 
 
 
 
 
 
753
  )
754
 
755
  if __name__ == "__main__":