OSAI — Local AI for Linux Terminal
Βλέποντας την όμορφη προσπάθεια που γίνεται εδώ στo Osarena επιτρέψτε μου να συμβάλλω με ένα μικρο πρότζεκτ δημιουργημένο ειδικά για το OSarena.
Υπήρξε συνεργασία με την @Hellen πριν την τελική δημιουργία και χάρη στις ιδέες της δημιουργήθηκε ένα πολύ καλό αποτέλεσμα και αρκετά διαφορετικό από άλλα αντίστοιχα που κυκλοφορούν.
Πρόκειται για ένα μικρό πείραμα του OSArena για όσους θέλουν να δοκιμάσουν τοπικά μοντέλα τεχνητής νοημοσύνης απευθείας από το Linux terminal, χωρίς Ollama, χωρίς λογαριασμό σε κάποια υπηρεσία AI και χωρίς να χρειάζεται να στείλουν τα prompts τους σε κάποιο cloud API.

Το OSAI (OSarena Artificial Intelligence) είναι ένα απλό bash πρόγραμμα που λειτουργεί ως frontend για το llama CLI και επιτρέπει στον χρήστη να επιλέξει το μοντέλο που θέλει να χρησιμοποιήσει, ανάλογα με το hardware του.
Τι είναι, τι κάνει & που διαφέρει από αντίστοιχα πρότζεκτ:
Το OSAI χρησιμοποιεί μικρά Small Language Models (SLMs) της οικογένειας Qwen3 σε GGUF μορφή.
Μπορείτε να επιλέξετε ανάμεσα σε τρία μεγέθη:
- OSAI Lite — Qwen3 1.7B
- OSAI Balanced — Qwen3 4B
- OSAI Full — Qwen3 8B
Δεν γίνεται αυτόματη επιλογή μοντέλου με βάση τη RAM. Το OSAI εμφανίζει τις απαιτήσεις και τα βασικά πλεονεκτήματα και μειονεκτήματα κάθε επιλογής και αφήνει την απόφαση στον χρήστη.
Υπάρχει επίσης επιλογή μεταξύ:
- Thinking : το μοντέλο χρησιμοποιεί reasoning πριν δώσει την απάντηση.
- No Thinking : το μοντέλο απαντά χωρίς reasoning, με στόχο ταχύτερες και πιο άμεσες απαντήσεις.
Η επιλογή υπάρχει επειδή η ταχύτητα και η ποιότητα δεν είναι πάντα το ίδιο πράγμα. Για μια απλή ερώτηση μπορεί να μη χρειάζεται reasoning, ενώ σε πιο σύνθετες εργασίες μπορεί να είναι χρήσιμο.
Δηλαδή, αντί να πετάμε καμιά δεκαριά μοντέλα, όπως κάνουν συνήθως σε τέτοια πρότζεκτ, χωρίς επεξηγήσεις, χωρίς να ξέρει αυτός που θέλει να τα χρησιμοποιήσει τι είναι και το μπορεί το καθένα, επιλέξαμε τρία καλά μοντέλα που μπορεί να χρησιμοποιήσει κάποιος ανάλογα την ram του υπολογιστή του.
ℹ️ Απλά πήραμε το lama, επιλέξαμε τα τρία μοντέλα και κατόπιν το τυλίξαμε σε ένα script.
Δεν υπάρχει καμία μαγεία, δεν δημιουργήθηκε κάτι από το μηδέν.
Τεχνικά χαρακτηριστικά:
Το OSAI είναι γραμμένο σε bash και σχεδιάστηκε με στόχο να παραμείνει όσο γίνεται απλό.
Χρησιμοποιεί:
llama CLI
- Qwen3 GGUF μοντέλα
- Q4_K_M quantization
- τοπικό inference
- ανίχνευση διαθέσιμης RAM
- ανίχνευση CPU threads
- επιλογή μοντέλου από τον χρήστη
- επιλογή Thinking / No Thinking
Οι ενδεικτικές απαιτήσεις που εμφανίζονται στο πρόγραμμα είναι:
| Έκδοση | Μοντέλο | Ενδεικτική RAM |
| OSAI Lite | Qwen3 1.7B | 4 GB+ |
| OSAI Balanced | Qwen3 4B | 8 GB+ |
| OSAI Full | Qwen3 8B | 16 GB+ |
⚠️ Οι αριθμοί αυτοί είναι ενδεικτικοί και όχι αυστηρές ελάχιστες απαιτήσεις. Η πραγματική χρήση RAM και η ταχύτητα εξαρτώνται από το μοντέλο, το context, τον επεξεργαστή και το υπόλοιπο σύστημα.
Χρήση ελληνικών:
Ένα από τα πράγματα που μας ενδιέφερε κατά την ανάπτυξη ήταν η συμπεριφορά των μοντέλων στα ελληνικά.
Τα μικρότερα μοντέλα μπορούν να λειτουργήσουν κανονικά, αλλά είναι πιθανότερο να παρουσιάσουν γλωσσικά ή σημασιολογικά λάθη. Στις δικές μας δοκιμές, το Qwen3 8B έδωσε αισθητά πιο συνεκτικές ελληνικές απαντήσεις από τα μικρότερα μοντέλα.
Αυτό δεν σημαίνει ότι το 8B είναι αλάνθαστο. Δεν είναι.
Όπως συμβαίνει με οποιοδήποτε language model, μπορεί να παράγει λανθασμένες ή επινοημένες πληροφορίες. Το OSAI δεν παρουσιάζει τις απαντήσεις του μοντέλου ως εγγυημένα σωστές.
Απόρρητο και διαφάνεια:
Αυτό είναι ίσως το σημαντικότερο χαρακτηριστικό του OSAI.
Μετά τη λήψη του μοντέλου, η επεξεργασία των prompts γίνεται τοπικά στον υπολογιστή σας.
Η πρώτη εκτέλεση, ωστόσο, χρειάζεται σύνδεση στο Internet ώστε να κατέβει το επιλεγμένο μοντέλο. Και αυτό θα πάρει λίγο χρόνο την πρώτη φορά.
Δεν υπάρχει ενσωματωμένο cloud API, λογαριασμός χρήστη ή αποστολή των prompts σε κάποιον server του OSArena.
Αυτό το ξεχωρίζουμε επίτηδες:
Λήψη μοντέλου μέσω Internet → το μοντέλο αποθηκεύεται τοπικά → inference τοπικά.
Το OSArena δεν χρειάζεται να γνωρίζει τι ρωτάει ο χρήστης το OSAI.
Παράλληλα, το OSAI δεν προσπαθεί να κρύψει από τον χρήστη τι συμβαίνει. Ο κώδικας είναι διαθέσιμος και μπορεί να ελεγχθεί.
Ήδη, τα παιδιά τον έχουν ανεβάσει στο αποθετήριο του OSarena, στο Cadeberg.
Δεν υπάρχει κάποιο μαγικό AI backend του OSArena από πίσω.
Είναι ένα bash script που καλεί το llama CLI και φορτώνει ένα συγκεκριμένο GGUF μοντέλο.
Τόσο απλό, τίποτε περισσότερο.
Γιατί ή επιλογή αυτή;
Αν και υπάρχουν αρκετές λύσεις για local AI, πολλές φορές η διαδικασία εγκατάστασης και επιλογής μοντέλων γίνεται περισσότερο περίπλοκη από όσο χρειάζεται.
Το OSAI ακολούθησε μια διαφορετική προσέγγιση:
κατέβασε → τρέξε → διάλεξε μοντέλο → μίλα με το AI.
Χωρίς να χρειάζεται ο χρήστης να γνωρίζει από πριν τι είναι inference engine, quantization, context size ή GGUF.
Ταυτόχρονα, όποιος θέλει να ψάξει βαθύτερα μπορεί να ανοίξει τον κώδικα και να δει ακριβώς τι κάνει.
Το OSAI δεν προσπαθεί να αντικαταστήσει τα μεγάλα cloud μοντέλα.
Είναι ένας απλός τρόπος για να δοκιμάσει κάποιος local AI στο Linux, χρησιμοποιώντας τους πόρους του δικού του υπολογιστή.
Ο υπολογιστής σου, το μοντέλο σου, τα prompts σου.
Εγκατάσταση:
Πολύ απλή.
Απλά αντιγράψτε τον παρακάτω κώδικα και επικολλήστε τον σε ένα απλό αρχείο κειμένου.
Αποθηκεύστε το, ονομάστε το: osal.sh και κάντε το εκτελέσιμο (δεξί κλικ επάνω του → Ιδιότητες → Δικαιώματα και επιλέξτε να εκτελείται σαν πρόγραμμα):
#!/usr/bin/env bash
# ============================================================
# OSAI
# OSArena Local SLM
# Local AI for Linux Terminal
# ============================================================
set -u
# ------------------------------------------------------------
# COLORS
# ------------------------------------------------------------
CYAN='\033[1;36m'
GREEN='\033[1;32m'
YELLOW='\033[1;33m'
RED='\033[1;31m'
WHITE='\033[1;37m'
GRAY='\033[0;37m'
RESET='\033[0m'
# ------------------------------------------------------------
# MODELS
# ------------------------------------------------------------
MODEL_LITE="ggml-org/Qwen3-1.7B-GGUF:Q4_K_M"
MODEL_BALANCED="Qwen/Qwen3-4B-GGUF:Q4_K_M"
MODEL_FULL="Qwen/Qwen3-8B-GGUF:Q4_K_M"
# ------------------------------------------------------------
# CHECK LLAMA
# ------------------------------------------------------------
if ! command -v llama >/dev/null 2>&1; then
echo
echo -e "${RED}Το OSAI δεν βρήκε το llama.${RESET}"
echo
echo "Για εγκατάσταση:"
echo
echo "curl -LsSf https://llama.app/install.sh | sh"
echo
exit 1
fi
# ------------------------------------------------------------
# SYSTEM INFORMATION
# ------------------------------------------------------------
RAM_MB=$(/usr/bin/awk '/MemTotal/ {print int($2/1024)}' /proc/meminfo)
RAM_GB=$((RAM_MB / 1024))
CPU_THREADS=$(/bin/nproc 2>/dev/null || echo 2)
# ------------------------------------------------------------
# HEADER
# ------------------------------------------------------------
clear
echo
echo -e "${CYAN}============================================================${RESET}"
echo -e "${CYAN} OSAI${RESET}"
echo -e "${CYAN} Local AI for Linux Terminal${RESET}"
echo -e "${CYAN}============================================================${RESET}"
echo
echo -e "${WHITE}Το σύστημά σου:${RESET}"
echo " RAM: ${RAM_GB} GB"
echo " CPU threads: ${CPU_THREADS}"
echo
# ------------------------------------------------------------
# MODEL MENU
# ------------------------------------------------------------
echo -e "${WHITE}Επίλεξε μοντέλο:${RESET}"
echo
echo -e "${GREEN}[1] OSAI Lite${RESET}"
echo " Qwen3 1.7B"
echo " Για λίγη RAM / παλαιότερους υπολογιστές"
echo
echo -e "${YELLOW}[2] OSAI Balanced${RESET}"
echo " Qwen3 4B"
echo " Για συστήματα μεσαίας κατηγορίας"
echo
echo -e "${CYAN}[3] OSAI Full${RESET}"
echo " Qwen3 8B"
echo " Για υπολογιστές με αρκετή RAM"
echo
echo -e "${GRAY}[0] Έξοδος${RESET}"
echo
read -r -p "Επιλογή: " CHOICE
# ------------------------------------------------------------
# MODEL VARIABLES
# ------------------------------------------------------------
MODEL=""
NAME=""
RAM_REQUIREMENT=""
CONTEXT=""
THREADS=""
case "$CHOICE" in
# --------------------------------------------------------
# OSAI LITE
# --------------------------------------------------------
1)
MODEL="$MODEL_LITE"
NAME="OSAI Lite — Qwen3 1.7B"
RAM_REQUIREMENT="4 GB+ RAM"
CONTEXT="2048"
THREADS="2"
clear
echo
echo -e "${GREEN}============================================================${RESET}"
echo -e "${GREEN} OSAI Lite — Qwen3 1.7B${RESET}"
echo -e "${GREEN}============================================================${RESET}"
echo
echo -e "${WHITE}Για:${RESET}"
echo " Υπολογιστές με λίγη RAM και παλαιότερο hardware."
echo
echo -e "${GREEN}ΥΠΕΡ${RESET}"
echo " + Μικρότερο μοντέλο"
echo " + Χαμηλότερη χρήση RAM"
echo " + Μικρότερη επιβάρυνση CPU"
echo " + Κατάλληλο για παλιότερους υπολογιστές"
echo
echo -e "${RED}ΚΑΤΑ${RESET}"
echo " - Χαμηλότερη ποιότητα απαντήσεων"
echo " - Περιορισμένο σε σύνθετες ερωτήσεις"
echo " - Πιθανότερα λάθη στα ελληνικά"
echo
echo -e "${YELLOW}Ενδεικτική RAM: ${RAM_REQUIREMENT}${RESET}"
;;
# --------------------------------------------------------
# OSAI BALANCED
# --------------------------------------------------------
2)
MODEL="$MODEL_BALANCED"
NAME="OSAI Balanced — Qwen3 4B"
RAM_REQUIREMENT="8 GB+ RAM"
CONTEXT="4096"
THREADS="4"
clear
echo
echo -e "${YELLOW}============================================================${RESET}"
echo -e "${YELLOW} OSAI Balanced — Qwen3 4B${RESET}"
echo -e "${YELLOW}============================================================${RESET}"
echo
echo -e "${WHITE}Για:${RESET}"
echo " Υπολογιστές μεσαίας κατηγορίας."
echo
echo -e "${GREEN}ΥΠΕΡ${RESET}"
echo " + Ισχυρότερο από το 1.7B"
echo " + Καλύτερη κατανόηση σύνθετων prompts"
echo " + Περισσότερες δυνατότητες για γενική χρήση"
echo
echo -e "${RED}ΚΑΤΑ${RESET}"
echo " - Περισσότερη χρήση RAM"
echo " - Μεγαλύτερη χρήση CPU"
echo " - Πιο αργό σε παλαιότερους επεξεργαστές"
echo " - Τα ελληνικά μπορεί να παρουσιάζουν γλωσσικά λάθη"
echo
echo -e "${YELLOW}Ενδεικτική RAM: ${RAM_REQUIREMENT}${RESET}"
;;
# --------------------------------------------------------
# OSAI FULL
# --------------------------------------------------------
3)
MODEL="$MODEL_FULL"
NAME="OSAI Full — Qwen3 8B"
RAM_REQUIREMENT="16 GB+ RAM"
CONTEXT="4096"
THREADS="$CPU_THREADS"
clear
echo
echo -e "${CYAN}============================================================${RESET}"
echo -e "${CYAN} OSAI Full — Qwen3 8B${RESET}"
echo -e "${CYAN}============================================================${RESET}"
echo
echo -e "${WHITE}Για:${RESET}"
echo " Υπολογιστές με αρκετή RAM και ισχυρότερο hardware."
echo
echo -e "${GREEN}ΥΠΕΡ${RESET}"
echo " + Καλύτερη ποιότητα απαντήσεων"
echo " + Καλύτερη κατανόηση σύνθετων ερωτήσεων"
echo " + Καλύτερη συμπεριφορά στα ελληνικά"
echo " + Καταλληλότερο για απαιτητικές εργασίες"
echo
echo -e "${RED}ΚΑΤΑ${RESET}"
echo " - Πολύ μεγαλύτερη χρήση RAM"
echo " - Μεγαλύτερη χρήση CPU"
echo " - Πιο αργό σε παλαιότερα PC"
echo " - Μεγαλύτερη επιβάρυνση του συστήματος"
echo " - Μεγαλύτερη κατανάλωση ενέργειας"
echo
echo -e "${YELLOW}Ενδεικτική RAM: ${RAM_REQUIREMENT}${RESET}"
;;
# --------------------------------------------------------
# EXIT
# --------------------------------------------------------
0)
echo
echo "Έξοδος."
exit 0
;;
*)
echo
echo -e "${RED}Μη έγκυρη επιλογή.${RESET}"
echo
exit 1
;;
esac
# ------------------------------------------------------------
# THINKING MENU
# ------------------------------------------------------------
echo
echo -e "${WHITE}------------------------------------------------------------${RESET}"
echo
echo -e "${WHITE}Επίλεξε λειτουργία απάντησης:${RESET}"
echo
echo -e "${GREEN}[1] Thinking${RESET}"
echo " Το μοντέλο χρησιμοποιεί reasoning πριν απαντήσει."
echo " Καλύτερο για σύνθετες ερωτήσεις και προβλήματα."
echo
echo -e "${YELLOW}[2] No Thinking${RESET}"
echo " Χωρίς reasoning."
echo " Ταχύτερες και πιο άμεσες απαντήσεις."
echo
read -r -p "Επιλογή [1-2]: " THINKING_CHOICE
case "$THINKING_CHOICE" in
1)
REASONING="on"
THINKING_NAME="Thinking"
;;
2)
REASONING="off"
THINKING_NAME="No Thinking"
;;
*)
echo
echo -e "${RED}Μη έγκυρη επιλογή.${RESET}"
echo
exit 1
;;
esac
# ------------------------------------------------------------
# CONFIRMATION
# ------------------------------------------------------------
echo
echo -e "${WHITE}------------------------------------------------------------${RESET}"
echo
echo -e "Επιλεγμένο μοντέλο: ${GREEN}${NAME}${RESET}"
echo -e "Λειτουργία: ${YELLOW}${THINKING_NAME}${RESET}"
echo -e "RAM συστήματος: ${RAM_GB} GB"
echo
echo "Το μοντέλο θα ληφθεί αυτόματα την πρώτη φορά"
echo "και στη συνέχεια θα χρησιμοποιείται τοπικά."
echo
echo "Η πρώτη λήψη απαιτεί σύνδεση στο Internet."
echo "Η επεξεργασία των ερωτήσεων γίνεται τοπικά."
echo
echo -e "${YELLOW}Συνέχεια; [Y/n]${RESET}"
read -r -p "> " CONFIRM
if [[ "$CONFIRM" =~ ^[Nn]$ ]]; then
echo
echo "Ακύρωση."
exit 0
fi
# ------------------------------------------------------------
# START
# ------------------------------------------------------------
clear
echo
echo -e "${CYAN}============================================================${RESET}"
echo -e "${CYAN} OSAI${RESET}"
echo -e "${CYAN}============================================================${RESET}"
echo
echo -e "${WHITE}Model:${RESET} $NAME"
echo -e "${WHITE}RAM:${RESET} ${RAM_GB} GB"
echo -e "${WHITE}CPU threads:${RESET} $THREADS"
echo -e "${WHITE}Context:${RESET} $CONTEXT"
echo -e "${WHITE}Reasoning:${RESET} $THINKING_NAME"
echo
echo -e "${GREEN}Τοπικό AI ξεκινά...${RESET}"
echo
echo "Η πρώτη εκκίνηση μπορεί να χρειαστεί χρόνο"
echo "για τη λήψη του μοντέλου."
echo
echo "Έξοδος: /exit ή Ctrl+C"
echo
echo -e "${CYAN}============================================================${RESET}"
echo
# ------------------------------------------------------------
# RUN
# ------------------------------------------------------------
exec llama cli \
-hf "$MODEL" \
-c "$CONTEXT" \
-t "$THREADS" \
--reasoning "$REASONING"
☞ Εναλλακτικά, μπορείτε να το κατεβάσετε και από το OSarena repository στο Cadeberg: 🌐 OSArena Local SLM — Local AI for Linux Terminal.