Aller au contenu principal

Opik (opik)

Observabilité et évaluation open source des LLM : traces, jeux de données, expériences et règles de notation en ligne.

Généré depuis catalog/services/opik.yaml : ne pas modifier à la main.

Résumé​

Version1.8.16
Usageinstaller et configurer, configurer et connecter
Couchefonctionnelle (catalogue IA)
CatégorieÉvaluation et exploitation des LLM
Méthodes d'installationpodman
Connexion externenon
Réservé au bac à sablenon

Licence​

Identifiant SPDXApache-2.0
Politique de licencelicence socle (MIT ou Apache-2.0)
Exception de licence-
Composant de la plateformeopik

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.

TypePaquetVersionLicenceDétails
image de conteneurghcr.io/comet-ml/opik/opik-backend1.8.16Apache-2.0clé d'image backend, utilisée par backend, condensé sha256:3235c026ff3d3c79c14a4019d7cb5939d5c656ce339c1e3d8ad871acefc87d1d
image de conteneurghcr.io/comet-ml/opik/opik-python-backend1.8.16Apache-2.0clé d'image python-backend, utilisée par python-backend, condensé sha256:dece136e60eb8c6005182753e0f5ae927b865188d006599ccbdb09be2d7e5c87
image de conteneurghcr.io/comet-ml/opik/opik-frontend1.8.16Apache-2.0clé d'image frontend, utilisée par frontend, condensé sha256:eefeef6e4fca4ede768b01aa5e104ca762bd89ea249b2d37708d08072503acba

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éthodeSystèmes d'exploitationArchitectures
podmanfamille 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​

  • au moins 4096 Mo de mémoire (avertissement, memory).

Réseau et ports​

ComposantNom du portPortOuvert dans le pare-feu de l'hôte
python-backendhttp8000/tcpnon
backendapi8080/tcpoui
backendadmin3003/tcpnon
frontendui5180/tcpoui

Services et connexions nécessaires​

  • mysql : mysql.
  • clickhouse : clickhouse.
  • redis : redis.
  • s3 : seaweedfs.

Détail et résolution : voir Dépendances.

Méthodes et modes d'installation​

MéthodeDéfautCe que la méthode utilise
podmanouiles images de conteneur du descripteur, exécutées par Podman sous systemd

Composants​

ComposantTypeMéthodes d'installationPorts
Backend Python (python-backend)maîtrepodman8000/tcp
Backend (backend)maîtrepodman8080/tcp, 3003/tcp
Interface (frontend)maîtrepodman5180/tcp
  • backend ne tourne que sur un hôte qui porte aussi python-backend.
  • frontend ne tourne que sur un hôte qui porte aussi backend (mode single).

Unique (single) (par défaut)​

Une instance de chaque composant.

Ce que le mode déploie :

ComposantPlacement
python-backendmin 1, max 1
backendmin 1, max 1
frontendmin 1, max 1

Répliqué (replicated)​

Plusieurs instances sans état derrière le répartiteur de charge, avec la base d'état MySQL, ClickHouse, Redis et le compartiment des pièces jointes des liaisons partagés ; placer un backend Python sur chaque hôte de backend, chaque interface répartit sur tous les backends.

Ce que le mode déploie :

ComposantPlacement
python-backendmin 2, recommandé 2
backendmin 2, recommandé 2
frontendmin 1, recommandé 2

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.

  1. 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.

  2. Choisissez le service. À l'étape Service, sélectionnez Opik. La carte affiche la licence Apache-2.0 et les dépendances dont l'installation a besoin.

  3. Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode : single (par défaut), replicated. Chaque mode déploie les composants listés dans Méthodes et modes d'installation. Avec plusieurs composants, placez chacun sur ses hôtes dans Répartition des composants (Proposer un placement propose un placement qui respecte les cardinalités).

  4. Liez les dépendances. À l'étape Liaisons, choisissez pour chaque dépendance (mysql, clickhouse, redis, s3) Installer avec la plateforme ou Utiliser une connexion existante ; une dépendance facultative peut rester sur Aucune liaison.

  5. Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration). 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.

  6. 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.

  7. 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.

Connecter un service existant​

Schémashttps, http
Port par défaut8080
Authentificationfacultative
Contrôle de santéhealth_url + /health-check
Méthode d'authentificationChampsDescription
none-Opik open source auto-hébergé : pas d'authentification.
api_keyapi_keyOpik Cloud ou Enterprise : clé d'API, envoyée sans Bearer, avec l'espace de travail du champ Espace de travail.

Documentation officielle : https://www.comet.com/docs/opik/reference/rest_api/opik-rest-api/

ChampTypeDéfautDescriptionRemarques
URL du point de santé (health_url)url-URL du point de santé du service existant.-
Espace de travail (workspace)stringdefaultEspace de travail utilisé par la plateforme.-

Haute disponibilité​

Clusterréplicas (replication)
Haute disponibilitéexterne (external)
Basculerépartiteur (load-balancer)
Réplicationstockage partagé (shared-store)
Quorumaucun (none)
Découverteaucun (none)
Point d'entréerépartiteur (load-balancer)
Documentation officiellehttps://www.comet.com/docs/opik/self-host/scaling

Prérequis​

PrérequisDoit être hautement disponibleModesDescription
mysqlouimodes de niveau ha ou clusterMySQL hautement disponible (base d'état).
clickhouseouimodes de niveau ha ou clusterClickHouse hautement disponible (traces et spans).
redisouimodes de niveau ha ou clusterRedis hautement disponible.
s3ouimodes de niveau ha ou clusterStockage objet hautement disponible pour les pièces jointes.

Topologie par mode​

ModesNiveau le plus haut du catalogueRépartitionComposant du quorumDomaines de panneDescription
singleautonome (standalone)unique (single)-1Une instance de chaque composant.
replicatedha (ha)actif-actif (active-active)-2Plusieurs backends, backends Python et frontends sans état partageant MySQL, ClickHouse, Redis et le bucket.

Paramètres de configuration​

Général​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Port du backend (backend_port)port8080-nonnonnonPort de l'API REST et OTLP.
Port d'administration du backend (backend_admin_port)port3003-nonnonnonPort des points de santé et de métriques du backend.
Port du backend Python (python_backend_port)port8000-nonnonnonPort de l'évaluateur Python.
Port de l'interface (frontend_port)port5180-nonnonnonPort de l'interface web (nginx).
TLS (tls_enabled)boolfalse-nonnonouiServir l'interface web et son entrée /api/ (API REST et OTLP du SDK à travers l'interface) en HTTPS avec un certificat de l'autorité du Manager (nginx de l'image, TLS 1.2 et 1.3). Le port du backend reste lui en HTTP : diriger le SDK et les exportateurs OTLP vers https://<interface>/api.

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é).

LiaisonFournie parType de connexionPoint d'accèsFacultativeQuand rien n'est liéDescription
mysql-mysql-nonmysql est ajouté à l'installationBase d'état : MySQL 8.4 (GPL-2.0) fournie par le client ou installée séparément, jamais livrée avec Opik.
clickhouse-clickhouse-nonclickhouse est ajouté à l'installationStockage analytique des traces et intervalles.
redis-redis-nonredis est ajouté à l'installationCache et verrous.
s3seaweedfss3s3nonseaweedfs est ajouté à l'installationCompartiment des pièces jointes (SeaweedFS de la plateforme par défaut, ou une connexion S3 existante).

Points d'accès​

Point d'accèsSchémaComposantPortCheminParamètre TLSParamètres de liaisonSecrets de liaisonCommande de provisionnement
apihttpbackend8080 (backend_port)-----
uihttpfrontend5180 (frontend_port)-tls_enabled---

Contrôles de santé​

Vivacité (par instance)​

ComposantContrôleDétails
python-backendHTTP http://127.0.0.1:{{ config.python_backend_port }}/healthcheckAttendu 200 ; 60 tentatives ; intervalle 3 s ; délai 5 s
backendHTTP http://127.0.0.1:{{ config.backend_admin_port }}/health-checkAttendu 200 ; 90 tentatives ; intervalle 3 s ; délai 5 s
frontendHTTP {{ 'https' if config.tls_enabled else 'http' }}://{{ host.ip or '127.0.0.1' }}:{{ config.frontend_port }}/Attendu 200 ; 30 tentatives ; intervalle 2 s ; délai 5 s

Contrôles préalables​

ContrôleTypeSignificationSévéritéComposants
memorymemory_mb {"min": 4096}au moins 4096 Mo de mémoireavertissementtous les composants

Désinstallation​

Chemins supprimés quand les données sont purgées : {{ paths.data }}, {{ paths.log }}.

Liens rapides​

  • Opik : {{ 'https' if config.tls_enabled else 'http' }}://{{ host.fqdn }}:{{ config.frontend_port }}/

Documentation amont​