Schematron V2 Small extrait du JSON typé à partir de HTML, mais n’ouvre pas de site et ne commande pas de navigateur. Utilisez d’abord un navigateur local autorisé, comme Tabbit Browser, pour capturer uniquement le contenu utile, puis envoyez ce HTML avec un JSON Schema à Inference.net. L’API ne reçoit ni consigne libre ni outil de navigation : le schéma doit décrire l’extraction. La documentation officielle présente ce fonctionnement.
Pour une page connectée, demandez à un agent local capable d’utiliser Tabbit CLI de travailler dans un onglet de tâche distinct et de lire uniquement l’enregistrement demandé. Validez ensuite le résultat et enregistrez-le comme brouillon nommé pour relecture. N’envoyez pas de données de compte ou de page à une API externe sans autorisation et accord de traitement.
À retenir
Small extrait des données du HTML ; il ne navigue pas, ne clique pas et ne se connecte pas.
L’identifiant API documenté est
inference-net/schematron-v2-small.Capturez et limitez le contenu dans le navigateur. Tabbit CLI sert de relais depuis un client local.
Placez les règles dans le schéma, pas dans un prompt système.
Séparez pages publiques et pages connectées, puis vérifiez les valeurs avec la source.
Schematron V2 Small en bref
| Besoin | Ce que fait Small | Ce qu’un autre composant doit faire |
|---|---|---|
| Lire une page | Extrait les champs du HTML fourni | Tabbit Browser ou un collecteur autorisé récupère le HTML |
| Appliquer des règles | Renvoie les valeurs selon le JSON Schema | Le schéma définit champs, types, descriptions et obligations |
| Ouvrir une URL | Impossible ; l’API reçoit du HTML | L’agent local ouvre une page autorisée |
| Utiliser une session | Le modèle n’accède pas à la session | Tabbit ouvre un onglet dans l’environnement autorisé |
| Vérifier l’exactitude | Respecte la structure demandée | Le code ou une personne compare les valeurs à la source |
Inference.net présente Small comme l’option axée sur la qualité pour les schémas complexes et les pages longues. Sa documentation annonce un contexte de 128K tokens et recommande de nettoyer le HTML avec lxml. Les pages très longues doivent être réduites ou découpées. Ce sont les indications du fournisseur, pas un test effectué ici. Consultez la documentation.
Séparez la capture et l’extraction
Capture. Une tâche de navigateur locale ouvre une page publique ou autorisée, attend son rendu et renvoie un fragment HTML limité. N’incluez ni cookies, ni profil, ni champs masqués, ni contenu sans rapport.
Extraction. L’application envoie le HTML comme message utilisateur et le JSON Schema comme
response_format. Le client valide ensuite les valeurs structurées renvoyées.
Schematron ne reçoit ni URL, ni session de navigateur, ni consigne de navigation. Une page rendue côté client peut renvoyer une coquille vide par HTTP ; affichez-la d’abord dans le navigateur. L’exemple ci-dessous suit la documentation d’Inference.net et décrit les champs d’une note de version.
import os
from pathlib import Path
from typing import Optional
from openai import OpenAI
from pydantic import BaseModel, Field
class ReleaseNote(BaseModel):
record_id: str = Field(description="Identifiant stable exact affiché sur la page.")
title: str = Field(description="Titre visible exact de l’enregistrement.")
status: Optional[str] = Field(description="Statut visible ; null s’il est absent.")
date: Optional[str] = Field(description="Date affichée dans la source ; ne pas l’inférer.")
client = OpenAI(
base_url="https://api.inference.net/v1",
api_key=os.environ["INFERENCE_API_KEY"],
)
bounded_html = Path("approved-record.html").read_text(encoding="utf-8")
response = client.chat.completions.parse(
model="inference-net/schematron-v2-small",
messages=[{"role": "user", "content": bounded_html}],
response_format=ReleaseNote,
temperature=0,
)
record = response.choices[0].message.parsed
if record is None:
raise ValueError("No parsed record returned")
print(record.model_dump_json())bounded_html est le fragment renvoyé par le navigateur. Le message contient le HTML, sans instruction ; les descriptions du schéma précisent les champs. Consultez le guide de démarrage et la documentation du modèle pour la configuration et les accès actuels. Ne placez pas de vraie clé API dans un prompt, une page ou un fichier Git.
Contrôlez différemment les pages publiques et connectées
| Source | Règle de capture | Avant l’envoi à l’API | Vérification |
|---|---|---|---|
| Page publique de produit ou documentation | Gardez la zone utile et ses libellés | Retirez scripts, styles, navigation et autres enregistrements | Comparez chaque valeur à la source visible |
| Page de travail connectée | Lisez seulement le compte et l’enregistrement autorisés | Excluez données personnelles, identifiants, champs cachés et contenu sans rapport | Vérifiez l’ID et les champs clés dans l’onglet source |
Commencez par une petite page publique et un schéma explicite. Pour les données privées, la limite de partage compte plus que le confort. Vous devez avoir le droit de lire la page et celui d’en transmettre le contenu au fournisseur. En cas de doute, gardez le traitement local ou demandez à l’administrateur.
Capturer localement avec Tabbit CLI
Installez Tabbit Browser et son CLI local, puis choisissez un client d’agent qui peut lancer des outils locaux. L’appel du Skill dépend du client : /tabbit s’il prend en charge les Skills nommés, /skill:tabbit dans Pi, ou la syntaxe indiquée par le client. La découverte du Skill, l’accès au lanceur CLI et la connexion au site sont trois vérifications distinctes. Consultez la connexion d’un agent à un navigateur existant et la configuration Tabbit CLI pour Codex.
Donnez un nom à la tâche et utilisez son propre onglet. Par exemple, demandez à l’agent local d’ouvrir une page publique de notes de version, de ne lire que le conteneur principal et de renvoyer le HTML avec l’URL. L’appel nodejs du CLI utilise un identifiant de requête unique :
"$HOME/.local/bin/tabbit-cli" nodejs \
--task "Relecture de l’extraction des notes de version" \
--request-id release-notes-capture-20261110 <<'JS'
await page.goto('https://example.com/release-notes', {waitUntil: 'domcontentloaded'});
const result = await page.evaluate(() => {
const record = document.querySelector('[data-record-id="GEO-104"]');
if (!record) return null;
const fields = [
['Record ID', '[data-field="record-id"]'],
['Title', 'h1'],
['Status', '[data-field="status"]'],
['Date', 'time'],
];
const fragment = document.createElement('section');
for (const [label, selector] of fields) {
const element = record.querySelector(selector);
if (!element || !element.checkVisibility({ visibilityProperty: true })) continue;
const row = document.createElement('p');
row.textContent = label + ': ' + element.innerText.trim().slice(0, 500);
fragment.append(row);
}
return fragment.childElementCount ? fragment.outerHTML : null;
});
return {url: page.url(), html: result};
JSRelisez le fragment et enregistrez le HTML autorisé dans approved-record.html avant d’exécuter l’exemple Python. La capture reconstruit le HTML à partir des champs visibles autorisés.
Le sélecteur est illustratif. Inspectez la page, choisissez un conteneur stable et limitez le HTML renvoyé. Dans cet environnement, n’ajoutez pas --group : le Skill CLI installé indique que le runtime ne l’accepte pas sans valeur. Si le site exige une connexion, utilisez uniquement l’environnement Tabbit autorisé et confirmez le compte. Un test local antérieur a confirmé qu’une seconde tâche pouvait lire une page de test après la création d’une session temporaire. Cela vérifie la réutilisation dans ce test, pas l’accès à un site tiers ni l’intégration d’un agent externe.
Comparez l’ID et les champs importants du résultat à l’onglet source. Enregistrez-le sous le nom Relecture des notes de version — GEO-104. Gardez la source accessible au relecteur pendant que l’agent continue dans son onglet. La liste de contrôle de première tâche aide à limiter cette transmission.
Quand Small convient et où il s’arrête
Small est à considérer lorsque le HTML est déjà disponible et que la sortie doit avoir une structure stable. Il ne remplace pas un agent de navigateur. Le navigateur local gère la navigation autorisée, Schematron extrait du HTML limité, le code valide types et sources, et une personne examine les exceptions.
Inference.net positionne Turbo pour le débit et le coût, et Small pour les schémas complexes et les pages longues. Comparez-les sur vos propres données annotées. Pour une mise en page stable, des sélecteurs ou une API peuvent être plus simples et moins coûteux. Sur du HTML désordonné, l’extraction par schéma peut réduire les parseurs propres au site, mais elle exige une surveillance.
Dans une discussion Reddit, une personne travaillant sur plus de 2 000 fichiers HTML irréguliers explique que les tables imbriquées et les formulations variables rendent XPath fragile. Un autre professionnel du scraping décrit l’usage du LLM en production comme couche de raisonnement légère sur des éléments DOM déjà extraits. Ce sont des expériences individuelles, pas des tests de Schematron V2 Small : discussion sur le HTML irrégulier et discussion sur l’usage en production.
Pour les tâches répétées, consultez le guide Tabbit CLI, la comparaison CLI et Browser MCP, et les profils, espaces de travail et groupes d’onglets. Si le résultat guide une décision, conservez sa valeur, l’URL, l’ID, l’horodatage et l’état de revue. Un JSON conforme au schéma facilite le transfert, mais ne prouve pas que la page a été comprise correctement.
Commencez par un pilote autorisé portant sur un seul enregistrement public. Définissez les champs nécessaires, appelez l’API avec votre compte, puis comparez chaque valeur à la source avant d’élargir le processus.
Pour choisir les tâches confiées à un agent, lisez ce qu’est un navigateur agentique et le guide de l’automatisation du navigateur. Ils présentent la couche d’interaction qui précède l’extraction.
Questions fréquentes
Schematron V2 Small peut-il ouvrir un site Web seul ?
Non. Inference.net présente Schematron comme un modèle d’extraction depuis du HTML. Un navigateur ou un outil autorisé doit d’abord récupérer la page, puis envoyer le HTML et le schéma à l’API.
Schematron V2 Small accepte-t-il des consignes en langage libre ?
La documentation indique que le modèle n’utilise pas de consignes système ou utilisateur. Décrivez les règles dans le JSON Schema, avec les types, champs requis et descriptions.
Puis-je l’utiliser sur une page où je suis connecté ?
Oui, si la tâche de navigateur locale est autorisée à lire la page et si son contenu peut être transmis à Inference.net. Limitez la capture et retirez les données personnelles ou sensibles.
Quel est l’identifiant de Schematron V2 Small ?
La documentation d’Inference.net indique inference-net/schematron-v2-small. Vérifiez la liste de modèles et l’accès de votre compte avant le déploiement.
Quand choisir Small plutôt que Turbo ?
Inference.net positionne Small pour les schémas complexes et les pages longues, et Turbo pour le débit et le coût à grande échelle. Comparez les deux sur un échantillon annoté de vos propres pages.
Peut-on utiliser le JSON sans vérification ?
Non. Validez la réponse selon le schéma et comparez les valeurs importantes à la source. Faites examiner les valeurs absentes ou ambiguës par une personne. Un format valide ne prouve pas l’exactitude.