promptfoo (promptfoo)
Exécute des suites de tests d'invites et de modèles (assertions, régressions, red teaming) et sert la visionneuse des résultats.
Généré depuis catalog/services/promptfoo.yaml : ne pas modifier à la main.
Résumé
| Version | 0.117.4 |
| Usage | exécuter à la demande |
| Couche | fonctionnelle (catalogue IA) |
| Catégorie | Évaluation et exploitation des LLM |
| Méthodes d'installation | podman, binary |
| Connexion externe | non |
| Réservé au bac à sable | non |
Licence
| Identifiant SPDX | MIT |
| Politique de licence | licence socle (MIT ou Apache-2.0) |
| Exception de licence | - |
| Composant de la plateforme | promptfoo |
Paquets et artefacts
Un paquet que publie le projet du service (son image, son archive binaire, son paquet Python ou système) porte la licence du service ; un paquet tiers porte la licence écrite sur sa ligne, lue dans les métadonnées officielles du projet amont.
| Type | Paquet | Version | Licence | Détails |
|---|---|---|---|---|
| image de conteneur | ghcr.io/promptfoo/promptfoo | 0.117.4 | MIT | clé d'image promptfoo, utilisée par viewer, condensé sha256:e260878c048eb220e824f867d48ffff5ace1ccff4ca8507b9e778c17c0b46cdb |
| archive binaire | promptfoo-0.117.4.tgz | 0.117.4 | MIT | https://registry.npmjs.org/promptfoo/-/promptfoo-0.117.4.tgz |
Les images sont épinglées par étiquette dans le descripteur, et par condensé (digest) quand le descripteur en déclare un (le bundle hors ligne refuse alors une image téléchargée qui ne le porte pas) ; le condensé est enregistré dans le miroir du Manager à l'import du bundle hors ligne, et chaque téléchargement ou chargement est vérifié par rapport à lui.
Systèmes et architectures pris en charge
| Méthode | Systèmes d'exploitation | Architectures |
|---|---|---|
podman | famille RHEL (dnf), famille Debian (apt), Arch Linux (pacman) | x86_64, aarch64 (non restreintes par le descripteur) |
binary | famille RHEL (dnf), famille Debian (apt), Arch Linux (pacman) | x86_64, aarch64 (non restreintes par le descripteur) |
Systèmes hôtes certifiés : RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). Le contrôle préalable des hôtes accepte ces systèmes (une autre version d'une famille connue donne un avertissement, une version en fin de vie est refusée) et les architectures x86_64 et aarch64.
Prérequis
Hôte
Le descripteur ne déclare aucun contrôle préalable de l'hôte.
Réseau et ports
| Composant | Nom du port | Port | Ouvert dans le pare-feu de l'hôte |
|---|---|---|---|
viewer | http | 15500/tcp | oui |
Services et connexions nécessaires
litellm:litellm(facultative).
Détail et résolution : voir Dépendances.
Méthodes et modes d'installation
| Méthode | Défaut | Ce que la méthode utilise |
|---|---|---|
podman | oui | les images de conteneur du descripteur, exécutées par Podman sous systemd |
binary | - | les archives binaires du descripteur, décompressées dans le répertoire du service |
Composants
| Composant | Type | Méthodes d'installation | Ports |
|---|---|---|---|
Visionneuse (viewer) | maître | podman, binary | 15500/tcp |
Unique (single) (par défaut)
Une seule visionneuse.
Ce que le mode déploie :
| Composant | Placement |
|---|---|
viewer | min 1, max 1 |
Installer ce service
L'assistant d'installation du Navin Manager planifie, valide et exécute l'installation ; il faut la permission services:install sur le cluster.
-
Ouvrez l'assistant. Dans Clusters, choisissez l'action de ligne Installer des services du cluster cible. L'assistant s'ouvre sur sa première étape, Service.
-
Choisissez le service. À l'étape Service, sélectionnez promptfoo. La carte affiche la licence
MITet les dépendances dont l'installation a besoin. Choisissez la Méthode parmipodman,binary(par défautpodman). -
Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode :
single(par défaut). Chaque mode déploie les composants listés dans Méthodes et modes d'installation. -
Liez les dépendances. À l'étape Liaisons, choisissez pour chaque dépendance (
litellm) Installer avec la plateforme ou Utiliser une connexion existante ; une dépendance facultative peut rester sur Aucune liaison. -
Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration) ; les paramètres obligatoires sont
llm_api_key. Les mots de passe laissés vides avec une valeur générée par défaut sont générés et scellés par le Manager. -
Relisez et installez. À l'étape Installation, le Manager valide le plan et affiche l'ordre d'installation ; quand il indique « Le plan est valide. Prêt pour l'installation. », choisissez Installer. Un mode hautement disponible n'est installé que si ses contrôles HA réussissent.
-
Vérifiez. L'opération se termine quand les contrôles de santé de chaque instance réussissent (voir Contrôles de santé) ; le service apparaît alors en marche dans Services.
Exécutions à la demande
Exécute une suite de tests d'invites et de modèles (assertions, régressions) quand un test est demandé et garde les résultats pour la visionneuse.
Écran du portail : /quality/suites
Haute disponibilité
| Cluster | aucun (none) |
| Haute disponibilité | aucun (none) |
| Bascule | aucun (none) |
| Réplication | aucun (none) |
| Quorum | aucun (none) |
| Découverte | aucun (none) |
| Point d'entrée | aucun (none) |
| Documentation officielle | https://www.promptfoo.dev/docs/usage/web-ui/ |
Topologie par mode
| Modes | Niveau le plus haut du catalogue | Répartition | Composant du quorum | Domaines de panne | Description |
|---|---|---|---|---|---|
single | autonome (standalone) | jobs parallèles (parallel-jobs) | - | - | Un visualiseur ; les évaluations tournent comme des jobs indépendants. |
Remarques
- Outil en ligne de commande lancé à la demande : jamais un cluster hautement disponible ; plusieurs analyses tournent comme des jobs parallèles indépendants.
Paramètres de configuration
Général
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Port de la visionneuse (port) | port | 15500 | - | non | non | non | Port de promptfoo view. |
Environnement Node.js (node) | path | /usr/bin/node | - | non | non | non | Node.js 20 ou plus récent pour la méthode binaire (prérequis hors ligne). |
Point d'accès compatible OpenAI (llm_base_url) | url | http://127.0.0.1:4000/v1 | - | non | non | non | URL de base des modèles testés quand aucune liaison LiteLLM n'est définie (une adresse de l'hôte ; 127.0.0.1 est injoignable depuis le conteneur de la méthode podman). |
Clé d'API (llm_api_key) | password | - | - | oui | oui | non | Clé du point d'accès. |
Dépendances
Pour chaque dépendance active, le Manager prend la première solution parmi : la liaison choisie dans l'assistant ; un service de la même installation qui la fournit ; un service déjà installé dans le cluster ; la seule connexion du type attendu. Sinon, une dépendance facultative reste non liée, et une dépendance obligatoire est ajoutée à l'installation dans son mode par défaut (la colonne ci-dessous nomme le service du catalogue ajouté).
| Liaison | Fournie par | Type de connexion | Point d'accès | Facultative | Quand rien n'est lié | Description |
|---|---|---|---|---|---|---|
litellm | litellm | - | api | oui | reste non liée (facultative) | Passerelle LiteLLM de la plateforme servant les modèles testés (OPENAI_BASE_URL) ; sans elle le paramètre point d'accès est utilisé. |
Commandes
| Commande | Composant | Cible | Description |
|---|---|---|---|
Lancer une suite de tests (eval) | viewer | premier hôte | Exécute le promptfooconfig.yaml d'un répertoire et enregistre le résultat pour la visionneuse. |
Paramètres des commandes
| Commande | Paramètre | Type | Défaut | Obligatoire | Description |
|---|---|---|---|---|---|
eval | Répertoire de la suite (suite_dir) | path | - | oui | Répertoire contenant promptfooconfig.yaml. |
Contrôles de santé
Vivacité (par instance)
| Composant | Contrôle | Détails |
|---|---|---|
viewer | HTTP http://127.0.0.1:{{ config.port }}/health | Attendu 200 ; 30 tentatives ; intervalle 2 s ; délai 5 s |
Contrôles préalables
| Contrôle | Type | Signification | Sévérité | Composants |
|---|---|---|---|---|
port_free | port_free {"param": "port"} | port 15500 libre sur l'hôte | bloquant | tous les composants |
Désinstallation
Chemins supprimés quand les données sont purgées : {{ paths.data }}.
Liens rapides
- Visionneuse promptfoo :
http://{{ host.fqdn }}:{{ config.port }}/
Documentation amont
- Site : https://www.promptfoo.dev
- Sources : https://github.com/promptfoo/promptfoo
- Haute disponibilité : https://www.promptfoo.dev/docs/usage/web-ui/