Download engine/include/blocks.h from amogaddy/neuronal: direct link, hf CLI and curl.
- Browser
- Download file 3.27 kB
-
https://huggingface.co/spaces/amogaddy/neuronal/resolve/main/engine/include/blocks.h
- Command line
-
hf download hf://spaces/amogaddy/neuronal/engine/include/blocks.h
-
curl -L -o blocks.h https://huggingface.co/spaces/amogaddy/neuronal/resolve/main/engine/include/blocks.h
3.27 kB
| // Blocchi: gruppi di neuroni nuovi aggiunti alla rete (neurogenesi). | |
| // | |
| // 1. L'utente crea un blocco scegliendo solo quanti neuroni vuole: nasce vuoto, senza funzione. | |
| // 2. L'utente gli assegna una funzione a parole. Neuronal la applica da solo: | |
| // scrive esempi della funzione, li confronta con testi neutri per capire in quali strati vive, | |
| // costruisce i neuroni (rilevano la funzione nell'ingresso FFN, la rinforzano nell'uscita), | |
| // li collega alle sinapsi della rete e prova il blocco a diverse intensità scegliendo la migliore. | |
| // 3. Il blocco viene salvato e ricaricato a ogni avvio; Neuronal sa di averlo e a cosa serve. | |
| typedef struct { | |
| int id; | |
| int region; // 0 = blocco creato; >0 = nuova funzione della macroarea con questo id | |
| char name[64]; | |
| char function[300]; | |
| int n; // neuroni | |
| bool applied; // ha ricevuto una funzione | |
| bool enabled; | |
| float gain; | |
| int first, last; // strati a cui è collegato | |
| float separation; // quanto il blocco distingue la sua funzione dai testi neutri | |
| float pos_rate, neg_rate; // attivazione media sugli esempi e sui testi neutri | |
| char effect[600]; // la prova fatta da Neuronal | |
| int n_examples; | |
| char *examples[BLOCK_MAX_EXAMPLES]; | |
| int n_embd; // lunghezza dei vettori di peso | |
| BrainArea area; // pesi dei neuroni (se applied) | |
| SynLink *links_out; // [n][BLOCK_LINKS] | |
| SynLink *links_in; // [n][BLOCK_LINKS] | |
| // autodiagnosi (solo in memoria, ricalcolata a ogni avvio) | |
| bool auto_off; // sospeso da Neuronal | |
| float auto_gain; // > 0: intensità ridotta da Neuronal | |
| bool forced; // l'utente ha chiesto di non toccarlo | |
| char auto_reason[200]; | |
| } Block; | |
| typedef void (*block_progress_fn)(void *ud, const char *msg); | |
| void block_init(Block *b, int id, int n, const char *name); | |
| void block_free(Block *b); | |
| // Applica una funzione al blocco. user_examples opzionali. fix_first/fix_last: se >= 0 il blocco | |
| // viene costruito solo dentro quegli strati (riconversione di una macroarea), altrimenti li sceglie Neuronal. | |
| // Ritorna false con err compilato. | |
| bool block_apply(Block *blk, Brain *brain, Synapses *syn, const Atlas *atlas, const char *system_prompt, | |
| const char *function, char **user_examples, int n_user_examples, int fix_first, int fix_last, | |
| block_progress_fn progress, void *ud, char *err, size_t err_cap); | |
| bool block_save(const Block *b, const char *dir); | |
| int block_load_all(const char *dir, int n_embd, Block **out); // ritorna quanti | |
| // Vero se il file del blocco è leggibile e integro. | |
| bool block_file_ok(const char *path, int n_embd); | |
| void block_delete_file(const char *dir, int id); | |
| // JSON per la pagina. links: include le sinapsi di ogni neurone. | |
| void block_json(const Block *b, SBuf *out, bool links); | |