Aller au contenu

Guides de migrationDepuis Helicone

Quitter Helicone, sans prétendre que c'est simple

Helicone a été racheté par Mintlify et ses services sont en mode maintenance. Si vous choisissez où aller, cette page est la correspondance concept par concept : ce que votre code doit devenir, ce qu'INFRO fait et que Helicone ne faisait pas, les quatre choses qu'INFRO n'a tout simplement pas — et la section que la plupart de ces pages omettent : quand quelqu'un d'autre est la meilleure réponse.

Les comptes INFRO sont en libre-service. Le catalogue, la documentation et le contrat d'API sont publics, la passerelle est déployée, et tout ce qui va au-delà de la v1 est marqué Plus tard. Offres et essai

Où en sont les choses

Ce qui a été annoncé

En mars 2026, Mintlify a annoncé le rachat de Helicone et indiqué que Helicone continuerait en mode maintenance, ajoutant qu'il « travaillerait en étroite collaboration avec chaque client pour faciliter une migration fluide vers une autre plateforme ». En octobre 2026, la page d'accueil de Helicone a été modifiée pour indiquer « Helicone ne fait plus partie de Mintlify. Précisions à venir prochainement. » Sa page d'inscription au cloud indique toujours « Sign ups are disabled ».

Ce qui n'a pas été annoncé

Pas de date d'arrêt, pas d'engagement de conservation des données, et jusqu'ici aucune explication du changement d'octobre : qui exploite Helicone aujourd'hui, et ce que cela implique pour sa feuille de route. À lire tel quel : rien ici ne demande d'agir cette semaine. C'est une raison de décider délibérément plutôt que de se précipiter, et de relire les pages de Helicone elles-mêmes avant de le faire.

Pourquoi cette page existe

Parce que la réponse honnête dépend de ce pour quoi vous utilisiez Helicone, et que la plupart des pages que vous trouverez sur cette recherche ne vous le diront pas. Si vous y étiez pour le traçage, les évaluations et la gestion des prompts, la section suivante nomme une meilleure destination que nous.

Cette section est placée avant les différences à dessein. Une grande partie des lecteurs utilisaient Helicone comme plateforme d'observabilité et d'évaluation, et pour ce travail il existe un produit conçu précisément pour cela.

Langfuse se décrit comme une plateforme d'ingénierie d'IA open source pour l'évaluation et l'observabilité des agents : traçage hiérarchique sur les appels LLM, les invocations d'outils et les étapes de récupération, évaluateurs LLM-as-a-judge et heuristiques, gestion des prompts avec déploiement et retour arrière, jeux de données et expériences, annotation humaine et playground. Elle est sous licence MIT, auto-hébergeable sur Docker Compose, Kubernetes et Terraform, et a été rachetée par ClickHouse en janvier 2026 — ce qui, d'après ClickHouse lui-même, la laisse open source et auto-hébergeable, avec le service cloud fonctionnant comme avant.

La raison de regarder INFRO est un problème différent qui lui ressemble. Si ce que vous avez réellement, ce sont plusieurs comptes fournisseurs répartis sur plusieurs équipes, des dépenses que personne ne peut attribuer avant l'arrivée de la facture, des nouvelles tentatives et des replis écrits différemment dans chaque base de code, et aucune étape d'approbation pour savoir quel modèle un service peut appeler — c'est un problème de plan de contrôle et non d'observabilité, et c'est le problème autour duquel ce produit est construit. De nombreuses équipes ont besoin des deux, et exploiter INFRO comme passerelle avec un traçage exporté vers un collecteur de votre choix est une configuration raisonnable.

Choisissez Langfuse quand

  • Vous étiez chez Helicone surtout pour l'observabilité. Langfuse est ce produit, construit délibérément et en profondeur, et c'est ce qui se rapproche le plus d'une destination équivalente.
  • Il vous faut de la gestion des prompts ou des évaluateurs. INFRO n'a ni l'un ni l'autre, ni de date pour l'un ou l'autre. Langfuse a les deux, et l'évaluation est l'une des deux choses qu'il met en avant.
  • Vous tracez des agents, pas seulement des appels de modèles. Langfuse modélise un arbre de traces couvrant les appels d'outils et les étapes de récupération. INFRO enregistre une requête à la fois ; un arbre de spans est quelque chose que vous assemblez dans votre propre collecteur.
  • Vous voulez auto-héberger sans conversation commerciale, ou garder cette option ouverte. Langfuse est sous licence MIT et n'importe qui peut l'exploiter. Les offres d'INFRO sont hébergées ; il ne tourne dans votre propre infrastructure que sous un accord Enterprise.

Langfuse n'est ni un partenaire, ni un revendeur, ni un affilié de INFRO. Nous le citons parce que c'est la réponse honnête à une question à laquelle cette page répondrait sinon de façon malhonnête.

Les objets de Helicone face aux nôtres, lus dans leur documentation publique (revérifiée le 24 octobre 2026) et confrontés à ce que la passerelle implémente réellement. Lignes où nous n'avons rien : quatre. Ce sont celles à lire en premier.

HeliconeCe que cela y faitDans INFRO
Intégration de la passerellemême formePointez un client compatible OpenAI vers l'URL de base de la passerelle d'IA de Helicone et transmettez votre clé Helicone.La même forme : URL de base https://api.infro.io/v1, clé dans Authorization: Bearer. Deux lignes, une par service.
Journalisation asynchrone, hors du chemin de la requêterienUn logger basé sur OpenLLMetry enveloppe le SDK de votre fournisseur pour que Helicone ne soit pas sur le chemin critique de votre application.Rien d'équivalent. INFRO est une passerelle : il est donc toujours sur le chemin — c'est ce qui lui permet de router, de basculer et de refuser une requête au regard d'un budget, et c'est un vrai compromis que vous faites.
À qui appartient le compte fournisseur qui sert la requêtedifférentLa passerelle peut fournir l'accès aux modèles, et Helicone permet aussi d'apporter vos propres clés de fournisseur.Uniquement les vôtres. Vous connectez des comptes fournisseurs que vous détenez déjà, vos fournisseurs vous facturent directement à vos propres tarifs, et INFRO prélève 0 % des dépenses de modèles.
Propriétés personnaliséesdifférentDes tags arbitraires envoyés dans des en-têtes de requête Helicone-Property-<Name>, utilisés pour le filtrage et l'analyse des coûts.Un objet metadata dans le corps de la requête, filtrable dans le journal des requêtes sous la forme tag.<key>. Même idée, autre endroit — un en-tête devient un champ du corps, ce qui est la plus grosse modification unique du portage.
Suivi des utilisateurs finauxdifférentHelicone-User-Id identifie un utilisateur final, avec des analyses d'engagement, de rétention et de satisfaction par utilisateur construites dessus.metadata.user_id est enregistré sur chaque requête et filtre le journal des requêtes et le regroupement d'usage : le coût par utilisateur final est donc consultable. Il n'y a pas d'écran d'analyse comportementale par utilisateur — ni durée de session, ni taux de retour, ni score de satisfaction.
Sessions et arbres de tracesdifférentHelicone-Session-Id, -Path et -Name regroupent des appels liés dans une même vue, y compris des étapes hors LLM comme les requêtes vectorielles et les appels d'outils, avec une structure parent/enfant tirée du chemin.metadata.session_id regroupe les requêtes dans le journal, et des spans peuvent être envoyés à votre propre collecteur OpenTelemetry depuis le chemin de la requête. Ce qu'INFRO n'a pas, c'est une vue de session avec un arbre de traces : il enregistre les appels de modèles, pas les étapes entre eux.
Cache de réponsesdifférentHelicone-Cache-Enabled met en cache les réponses complètes en périphérie, avec une taille de bucket et un seed de cache.Un cache de réponses à correspondance exacte pour les complétions de chat, désactivé par défaut et activé par organisation ou par projet. Une requête identique dans la durée de vie du cache reçoit sa réponse du cache et n'atteint jamais votre fournisseur : votre fournisseur ne la facture donc pas. Le contrôle se fait par un champ de corps cache ou des en-têtes X-INFRO-Cache ; un seed de cache devient X-INFRO-Cache-Namespace. Il n'y a pas de bucket de plusieurs réponses stockées ni de correspondance sémantique (prompts voisins). La page de documentation est /docs/features/caching.
Limites de débit personnaliséesdifférentHelicone-RateLimit-Policy définit un quota par fenêtre, en requêtes ou en coût, segmenté globalement, par utilisateur ou par propriété personnalisée.Niveaux de débit de requêtes par clé rapportés dans X-RateLimit-Limit, plus des budgets au niveau de l'organisation, du projet, du membre et de la clé qui refusent le trafic au plafond avec 402 budget_exceeded. Les plafonds de coût correspondent bien ; une limite segmentée par utilisateur final ou par propriété arbitraire non.
Gestion des promptsrienPrompts gérés hors de la base de code, avec des versions comparées au trafic de production.Rien, et rien de prévu que nous puissions nommer. Les prompts restent dans votre dépôt, ou dans un outil qui le fait correctement — Langfuse le fait.
Évaluateurs et expériencesrienLLM-as-a-judge et évaluateurs personnalisés qui notent la qualité des sorties, avec comparaison de prompts côte à côte. La documentation de Helicone porte un avis de dépréciation sur la fonctionnalité Experiments.Rien. INFRO ne note pas les sorties des modèles et n'a pas d'avis sur la qualité d'une réponse.
WebhooksdifférentDes webhooks signés se déclenchent à la fin d'une requête, avec les corps de la requête et de la réponse, le coût, les tokens et la latence.Webhooks signés, mais uniquement pour les jobs média asynchrones — job.succeeded, job.failed, job.canceled. Il n'y a pas de hook de fin par requête ; le journal des requêtes et GET /v1/requests sont le moyen de lire le trafic terminé.
Coût par requêtedifférentCoût calculé par requête et agrégé par propriété, utilisateur et modèle.Une estimation de ce que votre fournisseur facturera, dans la réponse sous usage.cost, avec usage.price_source indiquant si elle vient de votre tarif négocié, de votre tarif pour ce modèle ou du tarif public de l'éditeur — et absente plutôt que devinée quand aucun tarif n'est connu.
Replis et routage multifournisseurmême formeRepli entre fournisseurs via la passerelle.Routes nommées avec cibles par priorité ou pondérées sur vos propres connexions. Une cible qui dépasse le délai ou renvoie une 5xx avant le début de la réponse est réessayée ailleurs ; une fois les octets en cours de transfert, l'erreur remonte au lieu d'être re-routée.
Politique de modèlesdifférentPas un concept Helicone documenté dans les pages que nous avons lues ; le contrôle le plus proche est une limite de débit.Une liste d'autorisation au niveau de l'organisation, du projet ou de la clé. Le périmètre le plus étroit l'emporte et tout ce qui est hors liste est refusé avant de coûter quoi que ce soit.
Données historiquesrienRequêtes, propriétés, sessions et scores déjà dans Helicone.Pas d'outil d'import, et aucun n'est prévu. Rien de ce que vous y avez journalisé n'apparaît ici. Exportez-le de Helicone et conservez-le dans un endroit que vous contrôlez avant d'arrêter l'envoi.
Open source et auto-hébergementdifférentLa plateforme de Helicone est open source et peut être exploitée par vous-même.La passerelle n'est pas open source. Ses offres sont hébergées ; un déploiement auto-hébergé ou hybride ne vient qu'avec un accord Enterprise. Si vous devez l'exploiter vous-même sans cela, arrêtez-vous ici.Enterprise — Disponible dans le cadre d'un contrat Enterprise plutôt qu'en libre-service.

Notre lecture de la documentation publiée par Helicone, pas un essai ni un benchmark. Leur documentation a bougé pendant la transition et certaines pages de fonctionnalités ne sont plus à leur ancienne adresse ; quand nous n'avons pas pu confirmer un point, la ligne le dit au lieu de deviner. Chaque source et la date à laquelle nous l'avons ouverte figurent au bas de cette page.

Deux lignes pour la connexion. Le travail est dans les annotations : Helicone les transporte dans les en-têtes de requête, INFRO dans le corps de la requête, donc chaque endroit où vous définissez un en-tête demande une modification.

Avant · passerelle Helicone

import OpenAI from "openai";

// Before: the OpenAI SDK through Helicone's gateway, attribution in headers.
const sessionId = "sess_42";
const client = new OpenAI({
  baseURL: process.env.HELICONE_BASE_URL ?? "https://ai-gateway.helicone.ai",
  apiKey: process.env.HELICONE_API_KEY,
  defaultHeaders: {
    "Helicone-User-Id": "user_8f21",
    "Helicone-Session-Id": sessionId,
    "Helicone-Property-Feature": "summarizer",
  },
});

const completion = await client.chat.completions.create({
  model: "gpt-5.4-mini",
  messages: [{ role: "user", content: "Summarize this ticket in one line." }],
});
console.log(completion.choices[0]?.message.content);

Après · INFRO

import OpenAI from "openai";

// After: the same SDK through INFRO, on your own OpenAI account.
const sessionId = "sess_42";
const client = new OpenAI({
  baseURL: process.env.INFRO_BASE_URL ?? "https://api.infro.io/v1",
  apiKey: process.env.INFRO_API_KEY,
});

const completion = await client.chat.completions.create({
  model: "openai/gpt-5.4-mini",
  messages: [{ role: "user", content: "Summarize this ticket in one line." }],
  // Attribution moves from headers into the body. Recorded on the request,
  // never forwarded to the provider.
  metadata: {
    user_id: "user_8f21",
    session_id: sessionId,
    feature: "summarizer",
  },
});
console.log(completion.choices[0]?.message.content);

L'URL de base et la clé

https://api.infro.io/v1, avec la clé dans l'en-tête standard Authorization: Bearer — ce sont donc les arguments baseURL et apiKey que votre client a déjà. Si votre code pointe encore vers l'ancien hôte proxy par fournisseur de Helicone et envoie un en-tête Helicone-Auth distinct, cet en-tête disparaît entièrement ; INFRO n'en utilise pas.

L'identifiant de modèle

Les modèles sont désignés sous la forme vendor/model, par exemple anthropic/claude-opus-5. GET /v1/models liste ce que votre clé peut réellement appeler, c'est-à-dire ce que servent vos propres comptes fournisseurs connectés — un modèle qu'aucune connexion ne couvre renvoie 503 no_provider_connected en nommant le fournisseur à connecter.

Les annotations

Helicone-User-Id devient metadata.user_id, Helicone-Session-Id devient metadata.session_id, et chaque Helicone-Property-X devient une clé sous metadata.tags, filtrable dans le journal des requêtes sous la forme tag.x. En TypeScript, le type metadata d'OpenAI est un dictionnaire plat de chaînes : l'objet imbriqué tags nécessite donc un cast ; le extra_body de Python l'accepte tel quel.

Une chose à essayer avant de vous engager : l'intégration asynchrone de Helicone enveloppe votre client fournisseur au lieu de se placer sur le chemin réseau, donc en principe elle continue de journaliser pendant que l'URL de base pointe ici. Nous n'avons pas testé cette combinaison et ne pouvons pas la garantir — essayez-la d'abord sur un service, et lisez GET /v1/requests de ce côté pour vérifier que les deux concordent sur ce qui s'est passé.

Quatre choses, qui découlent toutes du fait d'être une passerelle qui fonctionne sur vos propres comptes fournisseurs plutôt qu'un outil de journalisation qui les observe.

Le compte qui a servi la requête est le vôtre, et il est nommé
Chaque réponse porte provider — le type de fournisseur dont le compte l'a exécutée — et connection, l'identifiant de la connexion utilisée, ainsi que route et route_name quand une route l'a résolue. Il n'y a pas de pool derrière la passerelle et aucune marge sur le trafic : votre fournisseur vous facture à vos propres tarifs, et INFRO facture un abonnement pour la couche.
Le coût est une estimation qui dit d'où elle vient
usage.cost est une estimation de la facture de votre fournisseur pour cette requête, et usage.price_source indique comment elle a été obtenue — custom_provider pour votre tarif négocié sur le fournisseur qui l'a servie, custom pour votre tarif pour ce modèle, list pour le tarif publié de l'éditeur. Quand aucun tarif n'est connu, la requête est enregistrée sans tarif plutôt qu'à zéro, car un zéro dans une colonne de coût est une affirmation et une absence est un fait.
Un budget peut refuser une requête
Plafonds au niveau de l'organisation, du projet, du membre et de la clé, avec des seuils d'alerte que vous définissez. Au plafond, la passerelle renvoie 402 budget_exceeded plutôt que de vous écrire après coup au sujet du dépassement — c'est la différence entre un budget et un rapport.
Les estimations sont confrontées à la facturation propre du fournisseur
Un passage quotidien lit les API de coûts d'OpenAI et d'Anthropic avec un identifiant d'administration distinct et stocke le chiffre déclaré à côté de ce qu'INFRO a estimé : ce que vous voyez est donc un écart, et non un chiffre à croire sur parole. Seuls ces deux fournisseurs ont un adaptateur ; un fournisseur sans adaptateur n'affiche aucun écart plutôt qu'un écart de zéro, et Bedrock, Vertex et Azure gardent leur coût dans le système de facturation du cloud qui les entoure.

Ce qui n'est pas repris

Il n'y a pas d'outil d'import. Rien de ce que vous avez journalisé dans Helicone n'apparaît dans INFRO, et rien ici n'ira le chercher. Exportez ce dont vous avez besoin tant que leur service fonctionne encore.

  • Votre historique de requêtes. Il n'y a pas d'outil d'import, et aucun n'est prévu. Exportez d'abord de Helicone ce dont vous avez besoin ; rien dans INFRO n'ira le rechercher.
  • Propriétés personnalisées, sessions et identifiants d'utilisateur déjà enregistrés. Les annotations commencent à la première requête que vous envoyez ici.
  • Des réponses en cache. Les entrées du cache d'un autre produit ne sont pas transférées ; le cache d'INFRO démarre vide et se remplit à partir de votre propre trafic, et il ne correspond qu'à des requêtes exactes, jamais à des requêtes voisines.
  • Prompts et scores d'évaluateurs. Ils n'ont nulle part où atterrir.
  • Un déploiement Helicone que vous exploitiez vous-même. Les offres d'INFRO sont hébergées ; exploiter INFRO dans votre propre infrastructure relève d'un accord Enterprise, pas d'une étape de migration.

Si c'est le plan de contrôle qui vous intéresse

Lisez d'abord le contrat d'API — il est publié en intégralité, y compris les parties qui n'existent pas encore, pour que vous puissiez décider avant d'écrire quoi que ce soit. Dites-nous ensuite ce que vous faites tourner et nous vous dirons honnêtement si cette migration vaut la peine.

Sources

Chaque affirmation de cette page sur Helicone ou Langfuse provient de l'une de ces sources, avec la date de lecture. Rien n'est déduit d'un essai, d'un benchmark ou d'une conversation.