Deux clés, deux rôles
Votre Kastel appelle un modèle pour deux choses, et deux seulement. Construire : lire vos documents, mener l’entretien d’organisation, synthétiser votre contexte. Retrouver : indexer vos pages pour que la recherche trouve la bonne information. Ce sont deux fournisseurs séparés dans la configuration - ils peuvent être le même, mais rien ne l’impose, et certains fournisseurs de chat n’ont pas de modèle de recherche.
Les clés vivent dans le fichier .env de votre déploiement, jamais dans un fichier versionné, jamais chez nous. Vous décidez ce que chaque IA a le droit de voir ; ce que votre clé envoie au fournisseur relève du contrat que vous avez avec lui.
La clé de construction
Dans le .env de votre déploiement :
Pour l’adresse OpenAI par défaut, c’est tout (le modèle par défaut est gpt-4o-mini). Pour toute autre adresse compatible OpenAI - Mistral, DeepSeek, un vLLM auto-hébergé - ajoutez cette adresse et le modèle :
Le nom de la variable ne change pas selon le fournisseur : c’est la clé de l’adresse compatible OpenAI que vous visez, quelle qu’elle soit.
La clé de recherche
L’index de recherche a son propre modèle, séparé du chat. Par défaut, c’est Mistral (mistral-embed, fournisseur européen) :
Changer de modèle de recherche est une opération de configuration, pas de code : le bloc retrieval.embeddings de kastel.config.yaml (fournisseur, modèle, dimension - les alternatives documentées sont listées en commentaire dans le fichier), la clé correspondante dans .env, puis :
Tout le corpus est ré-indexé sur le nouveau modèle : deux espaces de recherche ne sont jamais mélangés. Tant que le reindex n’a pas tourné, la recherche refuse avec un message explicite plutôt que de mêler l’ancien et le nouveau.
Sans clé, que se passe-t-il ?
Ce qui manque se dit, plutôt que de se deviner : sans clé, chaque fonction concernée refuse avec son motif. Le détail :
Fonctionne. La lecture directe ne dépend d’aucun modèle.
Exige la clé de recherche (ou un modèle de recherche local) : chaque requête est projetée dans l’index par le modèle.
Exige la clé de construction.
log_trace)Refusé, systématiquement. Voir ci-dessous.
Une trace est du texte libre écrit par un agent sur une vraie session de travail : avant toute écriture, votre Kastel la classifie pour empêcher qu’une donnée personnelle atterrisse dans la mémoire d’entreprise. Sans clé, pas de classifieur - et le choix est de refuser l’écriture plutôt que d’écrire de l’inclassifié. Il n’existe volontairement aucun réglage pour désactiver cette porte : un interrupteur qui l’éteindrait serait un interrupteur qui écrit des données personnelles non classées sur le disque. Même prudence quand la clé existe mais ne répond plus (révoquée, quota atteint) : la classification échoue du côté sûr et le contenu concerné est écarté, sans erreur bruyante. Une clé de construction en panne se surveille.