Exigences du système
AiHummer est un produit natif pour l’hôte : il fonctionne sous forme de tarball de release sous systemd, donc les exigences sont délibérément faibles. La seule dépendance stricte est un hôte Linux avec PostgreSQL. Tout le reste — sidecars, un vrai modèle, un magasin de vecteurs — est optionnel et peut être ajouté plus tard depuis l’interface d’administration.
[!NOTE] AiHummer est natif de l’hôte, pas Docker. Il se déploie sous forme d’archive tar fonctionnant sous systemd de
~/.aihummer(le répertoire personnel de l’utilisateur qui a exécuté le installer). Vous n’avez pas besoin d’un environnement d’exécution de conteneur, de Kubernetes ou de quoi que ce soit orchestrateur.
Système d’exploitation
AiHummer fonctionne sur Linux seulement. Il n’existe pas de version serveur pour Windows ou macOS — la passerelle et ses sidecars sont empaquetés en tant qu’artefacts Linux par architecture et sont déployés avec systemd. (Le client est une application mobile et de bureau séparée ; c’est un canal, pas le serveur.)
- Une distribution Linux moderne 64 bits avec
systemd. x86_64(amd64) ouarm64— l’installateur télécharge le paquet correspondant à chaque architecture.sudoL’accès root est pas strictement requis: une installation normale se fait viasudo, mais exécuter l’installateur sans les droits root installe AiHummer en mode sans root mode soussystemd --user— voir Installation.
Base de données
PostgreSQL est le dépendance stricte et la source unique de vérité pour tout l’état. Le pgcrypto l’extension est requis — il prend en charge le coffre-fort de credentials chiffrés. Sans base de données, la passerelle démarre en mode santé seulement réduit et ne sert rien d’utile.
[!IMPORTANT] Activer
pgcryptodans la base de données cible avant la première exécution :CREATE EXTENSION IF NOT EXISTS pgcrypto;
La passerelle se connecte via un DSN dans AIHUMMER_DATABASE_URL. Pour l’isolation multi-locataire, vous pouvez en outre pointer AIHUMMER_DB_APP_URL à un endroit restreint aihummer_app rôle pour activer la sécurité au niveau des lignes de Postgres ; les installations locales configurent cela automatiquement. Les migrations de base de données sont sûres pour l’avenir et appliquées automatiquement sous un verrou consultatif sur le pool du propriétaire.
Matériel
Ces chiffres sont des indications pour un déploiement sur un seul hôte de la passerelle plus PostgreSQL. Les sidecars (STT/TTS, navigateur, magasin vectoriel) ajoutent leur propre empreinte et sont généralement placés sur le même hôte uniquement pour de petits déploiements.
| Profil | CPU | RAM | Disque | Notes |
|---|---|---|---|---|
| Minimum (éval) | 2 vCPU | 2 Go | 10 Go | Passerelle + Postgres, modèle factice, aucun sidecar |
| Recommandé | 4 vCPU | 8 Go | SSD de 40 Go | Passerelle + Postgres + quelques sidecars |
| Voix / modèles locaux | 8+ vCPU (GPU optionnel) | 16+ Go | SSD de 80+ Go | STT/TTS, embedder, point de terminaison LLM local |
L’utilisation du disque augmente avec l’historique des conversations, le répertoire des blobs multimédias (AIHUMMER_BLOB_DIR), ingestion des connaissances et conservation des audits. Planifiez les sauvegardes PostgreSQL (pg_dump + WAL/PITR) en conséquence.
Side-cars (optionnel)
Les side-cars sont services HTTP séparés, chacun sous sa propre unité systemd. La passerelle y accède via URL, donc un sidecar peut fonctionner sur le même hôte, sur un autre hôte, ou vous pouvez pointer vers une instance existante. Ils sont tous gratuits/locaux et jamais nécessaires pour un déploiement de base.
| Side-car | Port par défaut | Permet |
|---|---|---|
| STT (chuchotement-plus-rapide) | 8001 | Reconnaissance vocale pour les tours de parole |
| TTS (edge-tts) | 8002 | Synthèse vocale pour les tours de parole |
| Vidéo (ffmpeg) | 8005 | Compréhension de la vidéo |
| SearXNG | 8888 | Le web_search outil |
| Chrome/CDP | 9222 | Le browser / computer outils |
STT, TTS, la vidéo, la recherche web (SearXNG) et le navigateur (CloakBrowser) sont tous installés d’origine par l’installateur. Les charges de la recherche et du navigateur voyagent dans le paquet signé de l’installateur et s’installent hors ligne : désactivez-les avec --no-search / --no-browser, ou attachez une instance que vous exploitez déjà avec --external-search=URL / --external-browser=URL au lieu d’une installation locale. Ignorez les sidecars vocaux avec les variables AIHUMMER_SKIP_*. L’incorporateur sémantique est s’inscrire (--with-embedder): il télécharge PyTorch (des centaines de Mo), et sans cela, la mémoire revient à la recherche lexicale. Voir Installation.
[!NOTE] Node.js (version 20 ou plus récente) voyage aussi dans le paquet de l’installateur et s’installe hors ligne, si bien que les plugins Node.js — l’application AiHummer, pocket-agent et les connecteurs de canaux — fonctionnent d’origine même sur des distributions dont le Node.js est trop ancien.
Fournisseurs de LLM
AiHummer ne nécessite jamais de modèle payant. Il fonctionne immédiatement avec des modèles gratuits/locaux et un transport par abonnement Codex/ChatGPT ; les clés BYOK par locataire sont strictement optionnelles.
Fournisseurs pris en charge :
- Anthropique.
- OpenAI.
- Tout point de terminaison conforme à la norme OpenAI-API — serveurs de modèles locaux, OpenRouter, ou Le point de terminaison compatible OpenAI de Gemini, par exemple.
- Transport Codex / abonnement ChatGPT — conduire un modèle via un ChatGPT abonnement plutôt qu’une clé API facturée.
[!TIP] Si vous démarrez la passerelle sans modèle connecté (
AIHUMMER_LLM_PROVIDER/AIHUMMER_LLM_MODEL/AIHUMMER_LLM_GATEWAY_URL), les réponses proviennent d’un déterministe se moquer afin que vous puissiez valider les chaînes et acheminement avant de connecter un modèle réel.
[!NOTE] AiHummer n’expose que ce qui est compatible avec OpenAI
POST /v1/chat/completionspoint de terminaison. Il y a non/v1/modelsou/v1/embeddingsPoint de terminaison HTTP, et l’observabilité est OTLP-push (pas Prometheus/metrics).
Où aller ensuite
- Prêt à déployer ? Allez à Installation.
- Vous voulez parcourir la première course étape par étape ? Voyez le Démarrage rapide.
- Vous voulez d’abord le modèle mental ? Lisez le Introduction.