Go to file
neo.webmaster.2@gmail.com 51b9a2392d
Some checks are pending
Python Code Quality / lock_file (push) Waiting to run
Python Code Quality / linting (push) Blocked by required conditions
Python Code Quality / formatting (push) Blocked by required conditions
Python Code Quality / type_consistency (push) Blocked by required conditions
Python Code Quality / tests (push) Blocked by required conditions
Python Code Quality / build (push) Blocked by required conditions
"Auto-commit via make git"
2026-03-04 06:46:51 +01:00
.gitea "Auto-commit via make git" 2026-03-04 06:38:38 +01:00
src "Auto-commit via make git" 2026-03-04 06:38:38 +01:00
.gitignore first commit 2026-03-04 06:09:54 +01:00
configure.ac first commit 2026-03-04 06:09:54 +01:00
Makefile.am "Auto-commit via make git" 2026-03-04 06:38:38 +01:00
pyproject.toml first commit 2026-03-04 06:09:54 +01:00
README.md "Auto-commit via make git" 2026-03-04 06:46:51 +01:00
uv.lock "Auto-commit via make git" 2026-03-04 06:38:38 +01:00

⚙️ Requerimentos

Antes de começar, certifique-se de ter instaladas as dependências principais:

🧱 Sistema e Build

sudo apt update
sudo apt install -y \
    autoconf automake libtool \
    build-essential pkg-config \
    git python3 python3-venv python3-pip \
    make

Passos

  1. Execute aclocal para criar aclocal.m4 e o diretório autom4te.cache/.
  2. Execute autoconf para gerar o script configure.
  3. Execute automake --add-missing para criar os ficheiros Makefile.in.
  4. Execute ./configure para gerar os ficheiros Makefile.
  5. Execute make para compilar e criar o executável.
  6. Execute src/neuro para correr o executável.

Alvos Extras

make git        # commit + push automático  
make tarball    # gera dist/neoricalex-src.tar.gz  
make release    # publica release e cria tag automática
myhomelab/
├─ configure.ac
├─ Makefile.am
├─ README.md
├─ pyproject.toml              # uv + ruff + (pytest)
├─ uv.lock
├─ src/
│  └─ neuro/
│     ├─ __init__.py
│     ├─ cli.py                # entrypoints (tui / bench / repl)
│     │
│     ├─ tui/
│     │  ├─ app.py             # Textual App
│     │  ├─ screens.py         # screens/modals
│     │  ├─ widgets.py         # componentes reutilizáveis
│     │  └─ state.py           # estado e store (sem IA aqui)
│     │
│     ├─ engine/
│     │  ├─ __init__.py
│     │  ├─ session.py         # Session, Chat/Prompt state
│     │  └─ runtime.py         # “orquestração” do loop (streaming, cancel)
│     │
│     ├─ ai/
│     │  ├─ __init__.py
│     │  ├─ config.py          # dataclasses: dims, vocab, layers, seed
│     │  ├─ tokenizer.py       # tokenize/detokenize
│     │  ├─ embeddings.py      # tok->vec, pos enc
│     │  ├─ transformer.py     # forward() (minimo)
│     │  ├─ head.py            # logits/probs
│     │  ├─ sampling.py        # greedy, top-k, top-p, temp
│     │  └─ model.py           # Model = cola tudo (tokenize->sample)
│     │
│     ├─ utils/
│     │  ├─ logging.py
│     │  ├─ rng.py
│     │  └─ perf.py
│     │
│     └─ data/
│        ├─ vocab.json         # opcional no MVP
│        └─ tiny_weights.npz   # opcional (se quiseres pesos fixos)
│
├─ tests/
│  ├─ test_tokenizer.py
│  ├─ test_sampling.py
│  └─ test_transformer_shapes.py
└─ tools/
   ├─ bench.py                 # microbench do forward/sampling
   └─ export_vocab.py