From 27b4c4263a74bbfd568f5b91be01b0d5481eac6a Mon Sep 17 00:00:00 2001 From: Davide Quack Date: Sun, 19 Jul 2026 16:49:29 +0200 Subject: [PATCH] =?UTF-8?q?Added=20Dockerfile=20and=20instructions=20for?= =?UTF-8?q?=20using=20Colibr=C3=AC=20through=20a=20docker=20container?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/Dockerfile | 15 ++ docker/README.IT.md | 454 +++++++++++++++++++++++++++++++++++++++++ docker/README.md | 488 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 957 insertions(+) create mode 100644 docker/Dockerfile create mode 100644 docker/README.IT.md create mode 100644 docker/README.md diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..fa639f9 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,15 @@ +FROM debian:stable-slim + +# We install the necessary packages to download and compile the code +RUN apt-get update && \ + apt-get install -y locales git build-essential python3 python3-pip && \ + rm -rf /var/lib/apt/lists/* && \ + mkdir /app + +# Let's clone the repository +WORKDIR /app +RUN git clone https://github.com/JustVugg/colibri.git . +WORKDIR /app/c +# It's time to compile +RUN ./setup.sh && ./coli build + diff --git a/docker/README.IT.md b/docker/README.IT.md new file mode 100644 index 0000000..43c3e31 --- /dev/null +++ b/docker/README.IT.md @@ -0,0 +1,454 @@ +_Read the read me in [English](README.md)._ + + +# Guida a Colibrรฌ - Motore di Inferenza Locale + +Una guida semplice per eseguire **Colibrรฌ**, un motore di inferenza locale basato su GLM 5.2, senza conoscenze di programmazione. Se hai giร  Docker installato, sei a buon punto. + +--- + +## ๐Ÿ“‹ Sommario + +- [Cosa รจ Colibrรฌ?](#cosa-รจ-colibrรฌ) +- [Cosa serve](#cosa-serve) + - [Hardware](#hardware) + - [Software](#software) +- [Come iniziare](#come-iniziare) + - [Passo 1: Scarica il modello](#passo-1-scarica-il-modello) + - [Passo 2: Scarica il Dockerfile di Colibrรฌ](#passo-2-scarica-il-dockerfile-di-colibrรฌ) + - [Passo 3: Compila l'immagine Docker](#passo-3-compila-limmagine-docker) + - [Passo 4: Avvia Colibrรฌ](#passo-4-avvia-colibr%C3%AC) + - [Cosa significa quel comando?](#cosa-significa-quel-comando) + - [Usare Colibrรฌ](#usare-colibrรฌ) +- [Entrare in una console Linux dentro il container](#entrare-in-una-console-linux-dentro-il-container) +- [Risoluzione dei problemi](#risoluzione-dei-problemi) +- [Note tecniche](#note-tecniche) +- [Domande frequenti](#domande-frequenti) +- [Supporto e contributi](#supporto-e-contributi) +- [Test sul mio PC](#test-sul-mio-pc) + +--- + +## Cosa รจ Colibrรฌ? + +Colibrรฌ รจ un'applicazione che ti permette di eseguire un modello di intelligenza artificiale (GLM 5.2) direttamente sul tuo computer, senza connettersi a server esterni. รˆ possbile anche farlo girare in Docker, che isola l'applicazione dal resto del sistema. + +> **Nota importante**: Il modello รจ molto grande. Attendi anche diversi minuti per una risposta a una domanda semplice, specialmente con poca RAM. Alla fine di questo readme vedrai il risultato sul mio PC (senza scheda grafica discreta) e arrivo a 0.01 token al secondo. + +--- + +## Cosa serve + +### Hardware + +| Memoria RAM | Funziona? | Note | +|:---:|:---:|---| +| < 16 GB | โŒ No | Memoria insufficiente | +| 24 GB | โš ๏ธ Forse | Possibile, da testare | +| 32 GB | โœ… Sรฌ | Il minimo (ma vedi sezione memoria su Windows) | +| 48+ GB | โœ… Sรฌ | Meglio | + +Inoltre: un **disco SSD veloce** รจ essenziale. Colibrรฌ usa il disco come memoria aggiuntiva. Con una scheda grafica NVidia รจ ancora meglio. + +### Software + +- **Docker Desktop** (Windows, Mac, Linux) โ€” [scarica qui](https://www.docker.com/products/docker-desktop/) +- **Python** (solo se vuoi scaricare il modello da casa tua) + - Windows: [python.org](https://www.python.org) oppure Microsoft Store + - Linux: `apt-get install python3 python3-pip` + - Mac: [python.org](https://www.python.org) oppure Homebrew + +Non serve nessun ambiente di compilazione. Tutto avviene dentro il container Docker. + +--- + +## Come iniziare + +### Passo 1: Scarica il modello + +Il modello GLM 5.2 รจ circa **360 GB**. Scegli uno di questi metodi: + +#### Metodo A: Con Python (consigliato) + +1. **Installa la libreria per Hugging Face:** + ```bash + python -m pip install -U huggingface_hub[cli] + ``` + Su Linux, usa `python3` al posto di `python`. + +2. **Scarica il modello** (apri il terminale nella cartella dove lo vuoi salvare): + ```bash + hf_download mateogrgic/GLM-5.2-colibri-int4-with-int8-mtp --local-dir . + ``` + + **Esempio**: se vuoi salvarlo in `C:\LLM\models\glm-5.2` (Windows): + - Apri PowerShell in quella cartella + - Copia e incolla il comando sopra + - Attendi (molto) + +#### Metodo B: Senza Python (solo se necessario) + +Se sei su Windows e non riesci con Python: +- Scarica manualmente da [Hugging Face](https://huggingface.co/mateogrgic/GLM-5.2-colibri-int4-with-int8-mtp) +- Decomprimi in una cartella (es. `C:\LLM\models\glm-5.2`) + +--- + +### Passo 2: Scarica il Dockerfile di Colibrรฌ + +1. Vai a: https://github.com/JustVugg/colibri/blob/main/docker/Dockerfile +2. Clicca il pulsante **Download** (icona โฌ‡๏ธ) in alto a destra +3. Salva il file in una cartella (es. `C:\LLM\Colibrรฌ`) + +--- + +### Passo 3: Compila l'immagine Docker + +Apri il terminale (PowerShell su Windows, Terminal su Mac/Linux) **nella cartella dove hai salvato il Dockerfile** e digita: + +**Windows:** +```bash +docker build -t colibri-i . +``` + +**Linux/Mac:** +```bash +sudo docker build -t colibri-i . +``` + +Attendi che finisca (pochi minuti). Se tutto va bene, vedrai: `Successfully tagged colibri-i:latest` + +> **Se vuoi recepire gli aggiornamenti del repository**: Cancella prima l'immagine vecchia con `docker rmi colibri-i` e ricompila. + +--- + +### Passo 4: Avvia Colibrรฌ + +Apri il terminale e digita il comando sottostante (sostituisci `C:\LLM\models\glm-5.2` con il percorso reale del tuo PC): + +**Windows** (PowerShell): +```bash +$MODEL_PATH="C:\LLM\models\glm-5.2" +docker run --rm -it --name colibri-c ` + -v "$MODEL_PATH`:/app/glm-5.2" ` + -e COLI_MODEL=/app/glm-5.2 ` + colibri-i ./coli chat +``` + +**Mac/Linux** (Terminal/Bash): +```bash +MODEL_PATH="/path/to/glm-5.2" +docker run --rm -it --name colibri-c \ + -v "$MODEL_PATH:/app/glm-5.2" \ + -e COLI_MODEL=/app/glm-5.2 \ + colibri-i ./coli chat +``` + +**Esempio per Linux:** +```bash +MODEL_PATH="/home/user/LLM/glm-5.2" +docker run --rm -it --name colibri-c \ + -v "$MODEL_PATH:/app/glm-5.2" \ + -e COLI_MODEL=/app/glm-5.2 \ + colibri-i ./coli chat +``` + +--- + +### Cosa significa quel comando? + +| Parte | Spiegazione | +|-------|-------------| +| `docker run` | Avvia un container | +| `--rm` | Cancella il container quando chiudi | +| `-it` | Modalitร  interattiva (puoi scrivere e leggere) | +| `-v "PERCORSO:/app/glm-5.2"` | Collega il tuo modello dentro il container | +| `-e COLI_MODEL=/app/glm-5.2` | Dice a Colibrรฌ dove trovare il modello | +| `colibri-i` | Nome dell'immagine Docker | +| `./coli chat` | Avvia Colibrรฌ in modalitร  chat | + +--- + +### Usare Colibrรฌ + +Una volta avviato, vedrai un prompt come questo: + +``` + โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + type and press Enter ยท Ctrl-C stops the answer ยท :more continues ยท :reset clears memory ยท :q exits +``` + +**Comandi utili:** +- `Scrivi una domanda + Invio` โ†’ Ricevi la risposta +- `Ctrl + C` โ†’ Interrompi la risposta +- `:reset` โ†’ Cancella la memoria della conversazione +- `:q` โ†’ Esci + +**Esempio di uso:** +``` +โ€บ Quanti abitanti ha la Cina? + +La Cina รจ attualmente il paese piรน popoloso al mondo. +La popolazione รจ di circa 1,41 miliardi di abitanti. +``` + +Il modello capisce **italiano, inglese, cinese e altre lingue**, anche se รจ ottimizzato per inglese e cinese. + +--- + +## Entrare in una console Linux dentro il container + +Se vuoi esplorare il container come fosse una macchina Linux normale: + +```bash +docker run --rm -it --name colibri-c \ + -v "PERCORSO_MODELLO:/app/glm-5.2" \ + -e COLI_MODEL=/app/glm-5.2 \ + colibri-i /bin/bash +``` + +Ora sei dentro Linux. Digita `exit` per uscire. + +--- + +## Risoluzione dei problemi + +### โŒ "Docker non trovato" + +**Causa**: Docker non รจ installato o il terminale non lo riconosce. + +**Soluzione**: +1. Reinstalla [Docker Desktop](https://www.docker.com/products/docker-desktop/) +2. Riavvia il computer +3. Apri un nuovo terminale e riprova + +--- + +### โŒ "Out of memory" (memoria insufficiente) o container che si chiude subito + +**Causa**: Il tuo computer non ha abbastanza RAM, oppure su Windows, WSL usa meno memoria di quella disponibile. + +**Soluzione per Windows (WSL):** + +1. Apri PowerShell e controlla la memoria disponibile a WSL: + ```bash + wsl + cat /proc/meminfo | grep MemTotal + exit + ``` + Dividi il numero per 1.073.741.824 (รจ 1024ยณ) per averlo in GB. + +2. Se WSL usa meno di quello che hai, crea un file di configurazione: + - Apri un editor di testo (Notepad va bene) + - Copia questo: + ```ini + [wsl2] + memory=24GB + processors=12 + swap=16GB + ``` + - Salva il file con il nome: `.wslconfig` (con il punto) + - Posizionalo in: `C:\Users\TuoNomeUtente\` + +3. Riavvia WSL da PowerShell: + ```bash + wsl --shutdown + wsl + ``` + +4. Controlla di nuovo: + ```bash + # cat /proc/meminfo | grep MemTotal + # exit + ``` + +**Soluzione per Mac/Linux**: Aumenta la RAM disponibile a Docker dalle impostazioni di Docker Desktop, oppure aggiungi piรน RAM al computer. + +--- + +### โŒ La risposta รจ molto lenta + +**Cause possibili**: +1. Il disco รจ lento +2. Hai poca RAM +3. Colibrรฌ sta usando il disco come memoria aggiuntiva (normale) + +**Come controllare la velocitร  del disco:** + +**Windows** (PowerShell da amministratore): +```bash +winsat disk -drive C +``` +Cambia `C` con la lettera del tuo disco. + +**Linux/Mac** (Terminal): +```bash +sudo hdparm -Tt /dev/sda +``` +Cambia `/dev/sda` con il tuo disco (vedi con `lsblk` per Linux). + +Un **SSD NVMe moderno** arriva a 15 GB/sec. Se il tuo รจ sotto 2-3 GB/sec, รจ lento. + +--- + +### โŒ "Permission denied" su Linux + +**Causa**: Docker richiede permessi da amministratore. + +**Soluzione - Opzione 1** (rapida): +```bash +sudo docker build -t colibri-i . +sudo docker run ... (come sopra, con sudo davanti) +``` + +**Soluzione - Opzione 2** (permanente): +```bash +sudo usermod -aG docker $USER +# Riavvia il computer +docker run ... (senza sudo) +``` + +--- + +### โŒ "Image not found" o errore durante il build + +**Causa**: Il Dockerfile รจ corrotto o non nella cartella giusta. + +**Soluzione**: +1. Verifica che il Dockerfile sia nella cartella dove apri il terminale: + ```bash + ls Dockerfile # Mac/Linux + dir Dockerfile # Windows + ``` +2. Riscarica il Dockerfile dal repository GitHub +3. Elimina l'immagine vecchia: `docker rmi colibri-i` +4. Riprova il build + +--- + +### โŒ "hf_download: command not found" + +**Causa**: La libreria Hugging Face non รจ installata correttamente. + +**Soluzione**: +```bash +pip install -U huggingface_hub[cli] +# oppure su Linux/Mac: +pip3 install -U huggingface_hub[cli] +``` + +Poi riprova il comando `hf_download`. + +--- + +### โŒ Il modello non si scarica (timeout o errori di rete) + +**Cause**: Connessione lenta o instabile, Hugging Face temporaneamente non disponibile. + +**Soluzione**: +1. Attendi e riprova il comando `hf_download` +2. Se continua, scarica manualmente da [qui](https://huggingface.co/mateogrgic/GLM-5.2-colibri-int4-with-int8-mtp) +3. Decomprimi il file ZIP nella cartella desiderata + +--- + +## Note tecniche + +### Perchรฉ il disco รจ importante? + +Colibrรฌ usa il disco come "RAM aggiuntiva" virtuale (paging). Un disco **veloce** รจ cruciale per prestazioni decenti. + +- **SSD NVMe** (consigliato): 1-15 GB/sec +- **SSD SATA**: 0.5-1 GB/sec +- **Hard disk meccanico**: 0.05-0.1 GB/sec โŒ (troppo lento) + +Se il tuo disco รจ lento, le risposte saranno molto lente anche con molta RAM. + +--- + +### Configurazione di default consigliata per WLS su Windows + +Se hai **esattamente 32 GB di RAM** e usi Windows, รจ molto probabile che WLS di default sia settato per non consumare piรน di 16 GB di RAM. Bisogna aumentare questo limite [Risoluzione dei problemi](#risoluzione-dei-problemi) . Nel mio caso ho adottato questa configurazione: +```ini +[wsl2] +memory=24GB +processors=12 +swap=16GB +``` + +Ovvero, nel mio caso, ho lasciato 8 GB di RAM e 4 CPU a Windows e dato 24 GB e 12 processori a WSL + Linux. + +--- + +## Domande frequenti + +**D: E se ho meno di 32 GB di RAM?** +R: Probabile che non funzioni bene. Puoi provare se hai 24 GB, ma non รจ garantito. + +**D: Posso aumentare la velocitร  di risposta?** +R: Sรฌ, in parte: +- Usa un SSD NVMe veloce +- Aumenta la RAM +- Riduci la complessitร  delle domande +- Usa `:reset` per cancellare la memoria e alleggerire il carico + +**D: Posso usare Colibrรฌ senza Docker?** +R: Colibrรฌ รจ nato cosรฌ, ma questa guida assume Docker. Per compilare da sorgente, vedi il repository GitHub. + +**D: Quanta connessione internet mi serve dopo aver scaricato il modello?** +R: Zero. Colibrรฌ funziona completamente offline. + +--- + +## Supporto e contributi + +Se trovi errori o hai suggerimenti per migliorare questa guida, aprici una issue o una pull request sul repository GitHub di Colibrรฌ. + +Buon divertimento! ๐Ÿฆ + +--- + +## Test sul mio PC + +Nel primo caso ho fatto una domanda in italiano, nel secondo in giapponese, e nel terzo ho rifatto la domanda in giapponese ma ho richiesto una risposta in italiano. + +``` +PS C:\quack\llm\colibri\docker> docker run --rm -it --name colibri-c -v "C:\quack\llm\models\glm-5.2:/app/glm-5.2" -e COLI_MODEL=/app/glm-5.2 colibri-i ./coli chat + + โ–„โ–€โ–€โ–€โ–„ โ–„ colibrรฌ v1.0 + โ–„โ–„โ–„โ–„โ–€โ–€โ–€โ–€โ–„โ–€โ–€ tiny engine, immense model + โ–€โ–€โ–€โ–€โ–€โ–€โ–€ GLM-5.2 ยท 744B MoE ยท int4 ยท streaming CPU + โ–€โ–€โ–€โ–€ chat ยท glm-5.2 ยท ram -GB ยท topp off + โ–€ + โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + type and press Enter ยท Ctrl-C stops the answer ยท :more continues ยท :reset clears memory ยท :q exits + + โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ + โ”‚ โ€บ Quanti abitanti ha la Cina? โ”‚ + โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ + + โ—† colibrรฌ + La Cina รจ attualmente il paese piรน popoloso al mondo (sebbene, secondo alcune stime recenti, sia stata ormai superata dall'India). + + La popolazione totale della Repubblica Popolare Cinese รจ di circa 1,41 miliardi di abitanti (dati del 2020-2022 circa). + โ””โ”€ 76 tok ยท 0.04 tok/s ยท hit 3% ยท RSS 15.9 GB ยท 2012s + + โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ + โ”‚ โ€บ ๆผซ็”ปใ€Œใƒฏใƒณใƒ”ใƒผใ‚นใ€ใฎไธปไบบๅ…ฌใฎๅๅ‰ใ‚’ๆ•™ใˆใฆใใ ใ•ใ„ใ€‚ๅๅ‰ใ ใ‘ใงใ€ใใ‚ŒไปฅไธŠใฎใ‚ณใƒกใƒณใƒˆใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ โ”‚ + โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ + + โ—† colibrรฌ + ใƒซใƒ•ใ‚ฃ + โ””โ”€ 2 tok ยท 0.01 tok/s ยท hit 1% ยท RSS 16.7 GB ยท 260s + + โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ + โ”‚ โ€บ ๆผซ็”ปใ€Œใƒฏใƒณใƒ”ใƒผใ‚นใ€ใฎไธปไบบๅ…ฌใฎๅๅ‰ใ‚’ๆ•™ใˆใฆใใ ใ•ใ„ใ€‚ๅๅ‰ใ ใ‘ใงใ€ใใ‚ŒไปฅไธŠใฎใ‚ณใƒกใƒณใƒˆใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใ‚คใ‚ฟใƒชใ‚ข่ชžใง่ฟ”ไฟก โ”‚ + โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ + + โ—† colibrรฌ + Il nome del protagonista di One Piece รจ Monkey D. Luffy. + โ””โ”€ 14 tok ยท 0.02 tok/s ยท hit 2% ยท RSS 17.3 GB ยท 593s + + โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ + โ”‚ โ€บ + ``` \ No newline at end of file diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000..44d8a19 --- /dev/null +++ b/docker/README.md @@ -0,0 +1,488 @@ +_Leggi il leggimi in [Italiano](README.IT.md)._ + + +# Colibrรฌ Guide - Local Inference Engine + +A simple guide to running **Colibrรฌ**, a local inference engine based on GLM 5.2, without needing programming knowledge. If you already have Docker installed, you are well on your way. + +--- + +## ๐Ÿ“‹ Table of Contents + +* [What is Colibrรฌ?](https://www.google.com/search?q=#what-is-colibr%C3%AC) +* [Requirements](https://www.google.com/search?q=#requirements) + * [Hardware](https://www.google.com/search?q=#hardware) + * [Software](https://www.google.com/search?q=#software) +* [How to get started](https://www.google.com/search?q=#how-to-get-started) + * [Step 1: Download the model](https://www.google.com/search?q=#step-1-download-the-model) + * [Step 2: Download the Colibrรฌ Dockerfile](https://www.google.com/search?q=#step-2-download-the-colibr%C3%AC-dockerfile) + * [Step 3: Build the Docker image](https://www.google.com/search?q=#step-3-build-the-docker-image) + * [Step 4: Start Colibrรฌ](https://www.google.com/search?q=#step-4-start-colibr%C3%AC) + * [What does that command mean?](https://www.google.com/search?q=#what-does-that-command-mean) + * [Using Colibrรฌ](https://www.google.com/search?q=#using-colibr%C3%AC) +* [Entering a Linux console inside the container](https://www.google.com/search?q=#entering-a-linux-console-inside-the-container) +* [Troubleshooting](https://www.google.com/search?q=#troubleshooting) +* [Technical notes](https://www.google.com/search?q=#technical-notes) +* [Frequently Asked Questions](https://www.google.com/search?q=#frequently-asked-questions) +* [Support and contributions](https://www.google.com/search?q=#support-and-contributions) +* [Tests on my PC](https://www.google.com/search?q=#tests-on-my-pc) + +--- + +## What is Colibrรฌ? + +Colibrรฌ is an application that allows you to run an artificial intelligence model (GLM 5.2) directly on your computer, without connecting to external servers. It is also possible to run it in Docker, which isolates the application from the rest of the system. + +> **Important note**: The model is very large. Expect to wait several minutes for an answer to a simple question, especially with low RAM. At the end of this readme, you will see the result on my PC (without a discrete graphics card), and I reach 0.01 tokens per second. + +--- + +## Requirements + +### Hardware + +| RAM Memory | Works? | Notes | +| --- | --- | --- | +| < 16 GB | โŒ No | Insufficient memory | +| 24 GB | โš ๏ธ Maybe | Possible, needs testing | +| 32 GB | โœ… Yes | The minimum (but see memory section for Windows) | +| 48+ GB | โœ… Yes | Better | + +Additionally: a **fast SSD** is essential. Colibrรฌ uses the disk as additional memory. Having an NVidia graphics card is even better. + +### Software + +* **Docker Desktop** (Windows, Mac, Linux) โ€” [download here](https://www.google.com/search?q=https://www.docker.com/products/docker-desktop/) +* **Python** (only if you want to download the model yourself) +* Windows: [python.org](https://www.google.com/search?q=https://www.python.org) or Microsoft Store +* Linux: `apt-get install python3 python3-pip` +* Mac: [python.org](https://www.google.com/search?q=https://www.python.org) or Homebrew + +No build environment is needed. Everything happens inside the Docker container. + +--- + +## How to get started + +### Step 1: Download the model + +The GLM 5.2 model is approximately **360 GB**. Choose one of these methods: + +#### Method A: Using Python (recommended) + +1. **Install the library for Hugging Face:** +```bash +python -m pip install -U huggingface_hub[cli] +``` + +On Linux, use `python3` instead of `python`. +2. **Download the model** (open the terminal in the folder where you want to save it): +```bash +hf_download mateogrgic/GLM-5.2-colibri-int4-with-int8-mtp --local-dir . +``` + +**Example**: if you want to save it in `C:\LLM\models\glm-5.2` (Windows): +* Open PowerShell in that folder +* Copy and paste the command above +* Wait (a long time) + +#### Method B: Without Python (only if necessary) + +If you are on Windows and cannot get it to work with Python: + +* Download manually from [Hugging Face](https://www.google.com/search?q=https://huggingface.co/mateogrgic/GLM-5.2-colibri-int4-with-int8-mtp) +* Unzip into a folder (e.g., `C:\LLM\models\glm-5.2`) + +--- + +### Step 2: Download the Colibrรฌ Dockerfile + +1. Go to: [https://github.com/JustVugg/colibri/blob/main/docker/Dockerfile](https://www.google.com/search?q=https://github.com/JustVugg/colibri/blob/main/docker/Dockerfile) +2. Click the **Download** button (โฌ‡๏ธ icon) in the top right +3. Save the file in a folder (e.g., `C:\LLM\Colibrรฌ`) + +--- + +### Step 3: Build the Docker image + +Open the terminal (PowerShell on Windows, Terminal on Mac/Linux) **in the folder where you saved the Dockerfile** and type: + +**Windows:** + +```bash +docker build -t colibri-i . +``` + +**Linux/Mac:** + +```bash +sudo docker build -t colibri-i . +``` + +Wait for it to finish (a few minutes). If everything goes well, you will see: `Successfully tagged colibri-i:latest` + +> **If you want to receive repository updates**: First delete the old image with `docker rmi colibri-i` and rebuild. + +--- + +### Step 4: Start Colibrรฌ + +Open the terminal and type the command below (replace `C:\LLM\models\glm-5.2` with the actual path on your PC): + +**Windows** (PowerShell): + +```bash +$MODEL_PATH="C:\LLM\models\glm-5.2" +docker run --rm -it --name colibri-c ` + -v "$MODEL_PATH`:/app/glm-5.2" ` + -e COLI_MODEL=/app/glm-5.2 ` + colibri-i ./coli chat +``` + +**Mac/Linux** (Terminal/Bash): + +```bash +MODEL_PATH="/path/to/glm-5.2" +docker run --rm -it --name colibri-c \ + -v "$MODEL_PATH:/app/glm-5.2" \ + -e COLI_MODEL=/app/glm-5.2 \ + colibri-i ./coli chat +``` + +**Example for Linux:** + +```bash +MODEL_PATH="/home/user/LLM/glm-5.2" +docker run --rm -it --name colibri-c \ + -v "$MODEL_PATH:/app/glm-5.2" \ + -e COLI_MODEL=/app/glm-5.2 \ + colibri-i ./coli chat +``` + +--- + +### What does that command mean? + +| Part | Explanation | +| --- | --- | +| `docker run` | Starts a container | +| `--rm` | Deletes the container when you close it | +| `-it` | Interactive mode (you can write and read) | +| `-v "PATH:/app/glm-5.2"` | Mounts your model inside the container | +| `-e COLI_MODEL=/app/glm-5.2` | Tells Colibrรฌ where to find the model | +| `colibri-i` | Name of the Docker image | +| `./coli chat` | Starts Colibrรฌ in chat mode | + +--- + +### Using Colibrรฌ + +Once started, you will see a prompt like this: + +``` + โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + type and press Enter ยท Ctrl-C stops the answer ยท :more continues ยท :reset clears memory ยท :q exits + +``` + +**Useful commands:** + +* `Write a question + Enter` โ†’ Receive the answer +* `Ctrl + C` โ†’ Stop the answer +* `:reset` โ†’ Clear conversation memory +* `:q` โ†’ Exit + +**Usage example:** + +``` +โ€บ How many inhabitants does China have? + +China is currently the most populous country in the world. +The population is approximately 1.41 billion people. + +``` + +The model understands **Italian, English, Chinese, and other languages**, although it is optimized for English and Chinese. + +--- + +## Entering a Linux console inside the container + +If you want to explore the container as if it were a normal Linux machine: + +```bash +docker run --rm -it --name colibri-c \ + -v "MODEL_PATH:/app/glm-5.2" \ + -e COLI_MODEL=/app/glm-5.2 \ + colibri-i /bin/bash +``` + +Now you are inside Linux. Type `exit` to leave. + +--- + +## Troubleshooting + +### โŒ "Docker not found" + +**Cause**: Docker is not installed or the terminal does not recognize it. + +**Solution**: + +1. Reinstall [Docker Desktop](https://www.google.com/search?q=https://www.docker.com/products/docker-desktop/) +2. Restart your computer +3. Open a new terminal and try again + +--- + +### โŒ "Out of memory" or container closes immediately + +**Cause**: Your computer does not have enough RAM, or on Windows, WSL is using less memory than available. + +**Solution for Windows (WSL):** + +1. Open PowerShell and check the memory available to WSL: +```bash +wsl +cat /proc/meminfo | grep MemTotal +exit +``` + + +Divide the number by 1,073,741,824 (which is 1024ยณ) to get it in GB. +2. If WSL uses less than what you have, create a configuration file: +* Open a text editor (Notepad is fine) +* Copy this: +```ini +[wsl2] +memory=24GB +processors=12 +swap=16GB + +``` + +* Save the file with the name: `.wslconfig` (with the dot) +* Place it in: `C:\Users\YourUsername\` + +3. Restart WSL from PowerShell: +```bash +wsl --shutdown +wsl +``` + +4. Check again: +```bash +# cat /proc/meminfo | grep MemTotal +# exit +``` + +**Solution for Mac/Linux**: Increase the RAM available to Docker from the Docker Desktop settings, or add more RAM to the computer. + +--- + +### โŒ The answer is very slow + +**Possible causes**: + +1. The disk is slow +2. You have low RAM +3. Colibrรฌ is using the disk as additional memory (normal) + +**How to check disk speed:** + +**Windows** (PowerShell as administrator): + +```bash +winsat disk -drive C +``` + +Change `C` with your disk letter. + +**Linux/Mac** (Terminal): + +```bash +sudo hdparm -Tt /dev/sda +``` + +Change `/dev/sda` with your disk (check with `lsblk` on Linux). + +A **modern NVMe SSD** reaches 15 GB/sec. If yours is under 2-3 GB/sec, it is slow. + +--- + +### โŒ "Permission denied" on Linux + +**Cause**: Docker requires administrator permissions. + +**Solution - Option 1** (quick): + +```bash +sudo docker build -t colibri-i . +sudo docker run ... (as above, with sudo in front) +``` + +**Solution - Option 2** (permanent): + +```bash +sudo usermod -aG docker $USER +# Restart the computer +docker run ... (without sudo) +``` +--- + +### โŒ "Image not found" or error during build + +**Cause**: The Dockerfile is corrupted or not in the right folder. + +**Solution**: + +1. Verify that the Dockerfile is in the folder where you open the terminal: +```bash +ls Dockerfile # Mac/Linux +dir Dockerfile # Windows +``` + +2. Redownload the Dockerfile from the GitHub repository +3. Delete the old image: `docker rmi colibri-i` +4. Retry the build + +--- + +### โŒ "hf_download: command not found" + +**Cause**: The Hugging Face library is not installed correctly. + +**Solution**: + +```bash +pip install -U huggingface_hub[cli] +# or on Linux/Mac: +pip3 install -U huggingface_hub[cli] +``` + +Then retry the `hf_download` command. + +--- + +### โŒ The model does not download (timeout or network errors) + +**Causes**: Slow or unstable connection, Hugging Face temporarily unavailable. + +**Solution**: + +1. Wait and retry the `hf_download` command +2. If it continues, download manually from [here](https://www.google.com/search?q=https://huggingface.co/mateogrgic/GLM-5.2-colibri-int4-with-int8-mtp) +3. Unzip the ZIP file into the desired folder + +--- + +## Technical notes + +### Why is the disk important? + +Colibrรฌ uses the disk as "additional virtual RAM" (paging). A **fast** disk is crucial for decent performance. + +* **NVMe SSD** (recommended): 1-15 GB/sec +* **SATA SSD**: 0.5-1 GB/sec +* **Rotational hard disk**: 0.05-0.1 GB/sec โŒ (too slow) + +If your disk is slow, the answers will be very slow even with a lot of RAM. + +--- + +### Recommended default configuration for WLS on Windows + +If you have **exactly 32 GB of RAM** and are using Windows, it is very likely that WLS by default is set to consume no more than 16 GB of RAM. We need to increase this limit [Troubleshooting](https://www.google.com/search?q=#troubleshooting) . In my case I adopted this configuration: + +```ini +[wsl2] +memory=24GB +processors=12 +swap=16GB + +``` + +That is, in my case, I left 8 GB of RAM and 4 CPUs to Windows and gave 24 GB and 12 processors to WSL + Linux. + +--- + +## Frequently Asked Questions + +**Q: What if I have less than 32 GB of RAM?** + +A: It is likely that it will not work well. You can try if you have 24 GB, but it is not guaranteed. + +**Q: Can I increase the response speed?** + +A: Yes, partly: + +* Use a fast NVMe SSD +* Increase RAM +* Reduce the complexity of questions +* Use `:reset` to clear memory and lighten the load + +**Q: Can I use Colibrรฌ without Docker?** + +A: Colibrรฌ was born that way, but this guide assumes Docker. To build from source, see the GitHub repository. + +**Q: How much internet connection do I need after downloading the model?** + +A: Zero. Colibrรฌ works completely offline. + +--- + +## Support and contributions + +If you find errors or have suggestions for improving this guide, open an issue or a pull request on the Colibrรฌ GitHub repository. + +Have fun! ๐Ÿฆ + +--- + +## Tests on my PC + +In the first case, I asked a question in Italian; in the second, in Japanese; and in the third, I repeated the question in Japanese but requested an answer in Italian. + +``` +PS C:\quack\llm\colibri\docker> docker run --rm -it --name colibri-c -v "C:\quack\llm\models\glm-5.2:/app/glm-5.2" -e COLI_MODEL=/app/glm-5.2 colibri-i ./coli chat + + โ–„โ–€โ–€โ–€โ–„ โ–„ colibrรฌ v1.0 + โ–„โ–„โ–„โ–„โ–€โ–€โ–€โ–€โ–„โ–€โ–€ tiny engine, immense model + โ–€โ–€โ–€โ–€โ–€โ–€โ–€ GLM-5.2 ยท 744B MoE ยท int4 ยท streaming CPU + โ–€โ–€โ–€โ–€ chat ยท glm-5.2 ยท ram -GB ยท topp off + โ–€ + โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + type and press Enter ยท Ctrl-C stops the answer ยท :more continues ยท :reset clears memory ยท :q exits + + โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ + โ”‚ โ€บ Quanti abitanti ha la Cina? โ”‚ + โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ + + โ—† colibrรฌ + La Cina รจ attualmente il paese piรน popoloso al mondo (sebbene, secondo alcune stime recenti, sia stata ormai superata dall'India). + + La popolazione totale della Repubblica Popolare Cinese รจ di circa 1,41 miliardi di abitanti (dati del 2020-2022 circa). + โ””โ”€ 76 tok ยท 0.04 tok/s ยท hit 3% ยท RSS 15.9 GB ยท 2012s + + โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ + โ”‚ โ€บ ๆผซ็”ปใ€Œใƒฏใƒณใƒ”ใƒผใ‚นใ€ใฎไธปไบบๅ…ฌใฎๅๅ‰ใ‚’ๆ•™ใˆใฆใใ ใ•ใ„ใ€‚ๅๅ‰ใ ใ‘ใงใ€ใใ‚ŒไปฅไธŠใฎใ‚ณใƒกใƒณใƒˆใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ โ”‚ + โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ + + โ—† colibrรฌ + ใƒซใƒ•ใ‚ฃ + โ””โ”€ 2 tok ยท 0.01 tok/s ยท hit 1% ยท RSS 16.7 GB ยท 260s + + โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ + โ”‚ โ€บ ๆผซ็”ปใ€Œใƒฏใƒณใƒ”ใƒผใ‚นใ€ใฎไธปไบบๅ…ฌใฎๅๅ‰ใ‚’ๆ•™ใˆใฆใใ ใ•ใ„ใ€‚ๅๅ‰ใ ใ‘ใงใ€ใใ‚ŒไปฅไธŠใฎใ‚ณใƒกใƒณใƒˆใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใ‚คใ‚ฟใƒชใ‚ข่ชžใง่ฟ”ไฟก โ”‚ + โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ + + โ—† colibrรฌ + Il nome del protagonista di One Piece รจ Monkey D. Luffy. + โ””โ”€ 14 tok ยท 0.02 tok/s ยท hit 2% ยท RSS 17.3 GB ยท 593s + + โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ + โ”‚ โ€บ + +``` + +[source: 1] \ No newline at end of file