Aller au contenu principal

Variables d'environnement

Ce que le runtime lit dans son environnement, et ce qu'il en fait. Les tableaux ci-dessous couvrent les noms APOLLIA_* définis par Apollia. Apollia lit aussi des variables standard qui ne lui appartiennent pas, là où leur sens habituel s'applique : EDITOR quand apollia-os config edit ouvre apollia.toml, XDG_CONFIG_HOME quand apollia-os doctor cherche un fichier de configuration resté à un ancien emplacement et quand apollia-os service install écrit une unité utilisateur systemd, NO_COLOR pour la sortie terminal, PATH quand elle cherche un binaire, TZ, et USERNAME sous Windows pour dériver le nom du tuyau nommé. Un backend compatible OpenAI lit la variable que nomme son api_key_env.

L'essentiel de la configuration a sa place dans apollia.toml, voir Configuration. Les variables d'environnement couvrent trois cas que ce fichier ne peut pas traiter : un secret que vous ne voulez pas stocker sur disque, une surcharge ponctuelle au lancement, et un chemin qui dépend de la machine.

Moteur d'inférence local​

Lues à chaque démarrage du moteur. Voir Accélérer l'inférence locale pour savoir quoi régler et pourquoi.

VariableValeur par défautEffet
APOLLIA_LLAMA_SERVER_BINle moteur livré avec l'artefactChemin absolu vers un binaire llama-server, prioritaire sur celui embarqué. C'est la façon d'utiliser une compilation à vous, une compilation CUDA sous Linux par exemple.
APOLLIA_LLAMA_MAX_LOADED(non définie)Un plafond explicite du nombre de modèles résidents en mémoire simultanément. Sans elle, le garde-fou de chargement décide : un modèle est jugé avec l'empreinte des modèles déjà résidents ajoutée à la sienne (voir [llm.guardrails] dans la référence de configuration). Une valeur nulle ou illisible est ignorée.
APOLLIA_LLAMA_N_CTX(non définie)Fenêtre de contexte en tokens, au-dessus de toute autre source. Non définie, la fenêtre est celle du preset, celle du backend, puis le défaut de [llm.defaults] dans apollia.toml, et 32768 en dernier.
APOLLIA_LLAMA_N_GPU_LAYERScalculé, sinon 999Nombre de couches déchargées sur le GPU ; 0 force l'exécution sur CPU. Non définie, le daemon calcule ce nombre à partir du fichier du modèle sur un GPU dédié, et transmet 999 sur Apple Silicon ou sans GPU.
APOLLIA_LLAMA_N_BATCHvaleur par défaut du moteurTaille de batch logique.
APOLLIA_LLAMA_N_UBATCHvaleur par défaut du moteurTaille de micro-batch physique.
APOLLIA_LLAMA_N_PARALLELplanifiéNombre d'emplacements de décodage servis en parallèle. Non définie, le nombre est planifié d'après le modèle et la mémoire, jusqu'à 8 ; définie, elle est prise telle quelle.
APOLLIA_LLAMA_CONT_BATCHINGtrueBatching continu.
APOLLIA_LLAMA_CACHE_TYPE_Kvaleur par défaut du moteurQuantification du cache KV, clés.
APOLLIA_LLAMA_CACHE_TYPE_Vvaleur par défaut du moteurQuantification du cache KV, valeurs.
APOLLIA_LLAMA_FLASH_ATTNonMode flash attention.
APOLLIA_LLAMA_CACHE_REUSEvaleur par défaut du moteurSeuil de réutilisation de préfixe.
APOLLIA_LLAMA_METRICSfalseExpose le point de terminaison de métriques du moteur.
APOLLIA_LLAMA_LOG_VERBOSITY4Niveau de journal du moteur (-lv) ; à 4, le chargement nomme son périphérique et le nombre de couches déchargées. L'emporte sur [engines] log_level d'apollia.toml (Réglages > Développeur).
APOLLIA_LLAMA_EXTRA_ARGSvideOptions supplémentaires transmises telles quelles.

Le GGUF chargé par le moteur n'a délibérément aucune surcharge par l'environnement. C'est un état que possède le changement de modèle dans l'interface, et une variable ambiante qui le figerait annulerait chaque changement fait depuis celle-ci.

Stockage des secrets​

VariableValeur par défautEffet
APOLLIA_TOKEN_STORAGEkeyringkeyring utilise le trousseau du système d'exploitation. file stocke les secrets sous forme de fichiers chiffrés avec age dans ~/.apollia/secrets/, pour un hôte Linux sans interface où aucun démon de trousseau n'est accessible. Les jetons OAuth des connecteurs suivent ce commutateur comme tous les autres secrets : avec file, les jetons Google et Microsoft y sont écrits aussi. Toute autre valeur est refusée.
APOLLIA_TOKEN_PASSPHRASEaucunePhrase secrète pour le backend file. Obligatoire quand APOLLIA_TOKEN_STORAGE=file : le démarrage échoue immédiatement en son absence, plutôt que de se replier sur une solution moins sûre.

Clients OAuth des connecteurs​

Les deux connecteurs diffèrent, et les variables ci-dessous se comportent en conséquence.

Microsoft est prêt à l'emploi dès la livraison : Apollia enregistre une application cliente publique et embarque son identifiant, si bien qu'aucune configuration n'est nécessaire. Un client public ne détient aucun secret, ce qui rend l'embarquement de l'identifiant sans risque ; voir Se connecter à Microsoft 365.

Google est livré sans client, et aucune version publiée n'en embarque un. Vous enregistrez votre propre application et fournissez ses identifiants à Apollia, car Google exige un écran de consentement vérifié et un secret client qu'un binaire distribué ne peut pas détenir. Voir Se connecter à Google Workspace et Configurer un client OAuth Google.

Dans les deux cas, la voie prise en charge est la fiche de la connexion, dans Connexions. L'identifiant client saisi là est écrit dans ~/.apollia/oauth-clients.toml ; le secret client et la clé API Google vont dans le coffre de secrets choisi ci-dessus, jamais dans ce fichier.

Les variables ci-dessous constituent l'autre voie d'accès, prioritaire sur ce que la fiche a enregistré, pour une session shell, un job CI, ou un hôte sans interface. Elles sont lues au démarrage du processus, donc elles n'atteignent qu'une instance d'Apollia lancée depuis le shell qui les a exportées. Ordre de résolution pour chaque identifiant : variable d'environnement, puis la valeur enregistrée depuis la fiche (oauth-clients.toml pour un identifiant client, le coffre de secrets pour un secret ou une clé API), puis la constante définie à la compilation.

VariableEffet
APOLLIA_GOOGLE_CLIENT_IDIdentifiant client Google. Requis pour connecter Google.
APOLLIA_GOOGLE_CLIENT_SECRETSecret associé. Également requis : le type de client Desktop de Google l'exige au point de terminaison de jeton, malgré PKCE.
APOLLIA_GOOGLE_API_KEYClé API pour les appels Google qui utilisent une clé plutôt qu'OAuth (Drive Picker).
APOLLIA_MICROSOFT_CLIENT_IDIdentifiant d'application (client) Microsoft. Optionnel, et il remplace l'identifiant livré par Apollia. Ne le définissez que pour pointer le connecteur vers votre propre enregistrement Entra ; l'exporter vide laisse en place l'identifiant propre à Apollia.
APOLLIA_MICROSOFT_CLIENT_SECRETSecret associé. Laissez-le non défini : un client public Microsoft n'en porte aucun, et en envoyer un fait échouer l'échange.
APOLLIA_MICROSOFT_API_KEYClé API, même rôle que ci-dessus. Inutilisée à ce jour.
APOLLIA_FIGMA_CLIENT_IDIdentifiant client pour le connecteur Figma.

Connexions​

VariableValeur par défautEffet
APOLLIA_MCP_REGISTRY_URLhttps://registry.modelcontextprotocol.ioAdresse du registre MCP dans lequel le catalogue public est lu. Définissez-la pour pointer Apollia vers un registre privé. Une valeur vide laisse la valeur par défaut en place.
APOLLIA_IMAP_PASSWORDaucuneMot de passe d'application lu par apollia-os connector imap quand --password-stdin n'est pas donné. Le mot de passe n'est jamais pris sur la ligne de commande.

Python et le moteur MLX​

Des chemins qui dépendent de la machine. Une installation empaquetée les définit ou les trouve seule ; ils comptent quand Apollia tourne depuis un arbre de sources ou à côté d'un bundle qui n'est pas là où il l'attend.

VariableValeur par défautEffet
APOLLIA_BUNDLED_PYTHONtrouvé à côté de l'exécutableChemin absolu de l'interpréteur Python embarqué. L'application desktop l'exporte au démarrage.
APOLLIA_PYTHON_BUNDLE_DIRtrouvé à côté de l'exécutableDossier où se trouve l'interpréteur Python embarqué. Les lanceurs en ligne de commande l'exportent à la place de la variable ci-dessus ; les deux sont lues.
APOLLIA_MLX_ENGINE_DIRl'environnement MLX installé le plus récent, sinon celui embarquéDossier contenant les paquets du moteur MLX.
APOLLIA_MLX_PYTHONl'interpréteur embarquéInterpréteur Python sur lequel tourne le moteur MLX.

Diagnostics​

VariableValeur par défautEffet
APOLLIA_PERF_TRACEnon définieChemin d'un fichier recevant un enregistrement de performance par tour. Non définie signifie qu'aucun fichier n'est écrit et qu'aucune provenance n'est collectée ; le résumé est de toute façon émis au niveau INFO.
APOLLIA_PERF_MODEL_SHA256non définieEmpreinte du fichier du modèle, écrite telle quelle dans l'enregistrement de performance au lieu d'être calculée. Pour une campagne de mesure qui recharge de nombreuses fois le même gros modèle.
RUST_LOGapollia=infoFiltre tracing standard. C'est apollia=trace qui rend visible [llm.observability] debug_log_prompt ; voir Configuration.

Automatisation desktop​

APOLLIA_AUTOMATION, APOLLIA_AUTOMATION_OUT et APOLLIA_AUTOMATION_ALLOW_DESTRUCTIVE pilotent le harnais de test gestuel réservé au développement. Elles n'ont aucun effet dans une version de production, où le harnais est exclu à la compilation. APOLLIA_POLICY_DIR, qui pointe le runtime vers un autre dossier de politique de l'organisation, suit la même règle : elle n'est lue que dans les versions de débogage.

Non lues par le runtime​

Les variables APOLLIA_BUILD_* sont lues au moment de la compilation, pas à l'exécution ; en définir une avant de lancer Apollia n'a aucun effet. APOLLIA_PYTHON est de la même nature : elle nomme l'interpréteur Python que la compilation de l'application desktop lance pour empaqueter la documentation que l'application embarque.

Elles offrent un point d'accroche pour recompiler Apollia depuis les sources avec votre propre application enregistrée, un déploiement en flotte étant le cas d'usage évident : définissez-les dans l'environnement de compilation, et le binaire obtenu embarque ces identifiants, si bien que les machines sur lesquelles il atterrit n'ont besoin d'aucune configuration propre à l'hôte.

Aucune version publiée d'Apollia ne les définit. Pour Google, cela signifie que la valeur compilée est vide dans chaque version publiée, et que les deux sources d'exécution ci-dessus sont les seules à se résoudre. Pour Microsoft, la valeur compilée n'est pas vide pour autant : elle provient d'une constante du code source, pas de ces variables, ce qui explique pourquoi définir APOLLIA_BUILD_MICROSOFT_CLIENT_ID n'est jamais nécessaire, sauf pour remplacer l'enregistrement d'Apollia au moment de la compilation.