Documents similaires
Au lieu d’une question, vous partez d’un document entier. KIT compare son vecteur à ceux de votre index et remonte les textes les plus proches par le sens. On repère ainsi des doublons masqués, des dossiers apparentés ou des contenus qui traitent du même sujet, sans partager forcément le même vocabulaire.
Exécuter en ligne
Exécutez cette tâche sur nos serveurs, avec votre compte. Les outils gratuits tournent dans votre navigateur ; celui-ci est facturé sur votre solde KIT au prix affiché ci-dessus.
Chercher avec un texte, pas une question
Ici, l’entrée n’est pas une phrase de recherche mais un document de référence : un article, une fiche, un contrat. KIT le vectorise et cherche ses voisins dans votre index. La logique reste celle du sens : deux notes de réunion qui abordent la même décision se retrouvent proches, même rédigées par des personnes différentes avec des mots différents. C’est une recherche « trouvez-moi la même chose que ceci ».
Débusquer les doublons qui se cachent
Deux fiches produit quasi identiques mais formulées autrement échappent à une comparaison de texte brut. Par le sens, elles apparaissent comme des quasi-jumelles. C’est précieux pour nettoyer un catalogue, éviter de créer deux articles d’aide sur le même sujet, ou repérer qu’un nouveau dossier reprend un cas déjà traité. Le score de proximité vous aide à trancher entre « proche » et « vraiment le même ».
Combien ça coûte
Chaque recherche de documents similaires se facture $0.002 par appel et $0.0015 par requête, en dollars US. Il faut disposer d’un index construit au préalable ; l’indexation se paie séparément, une seule fois. Ensuite, comparez autant de documents que vous le souhaitez, sans abonnement, avec le montant affiché avant chaque exécution. Rechercher les voisins d’un texte ne coûte donc pas plus cher qu’une recherche par question.
Cas d’usage
Nettoyer un catalogue
Atelier Garnier SARL soumet une fiche produit et découvre qu’une variante presque identique existe déjà sous un autre nom. Les doublons remontent, le catalogue s’assainit sans lecture ligne à ligne.
Retrouver un dossier apparenté
Un cabinet part d’un nouveau dossier et retrouve, dans ses archives indexées, les affaires au sens proche déjà traitées. Le précédent utile ressort, même s’il emploie une terminologie ancienne.
Éviter les articles d’aide en double
Avant de rédiger une fiche, une TPE vérifie s’il existe déjà un contenu équivalent. La recherche de similaires évite de publier deux articles concurrents sur un même problème.
Questions fréquentes
En quoi est-ce différent de la recherche sémantique ?
La recherche sémantique part d’une question ; ici, vous partez d’un document complet et demandez « qu’est-ce qui ressemble à ceci ». L’entrée est un texte de référence, pas une requête, et le résultat est une liste de voisins.
Comment repérer un vrai doublon plutôt qu’un simple voisin ?
Chaque résultat porte un score de proximité. Plus il est élevé, plus le texte est proche du sens du document de départ. À vous de fixer le seuil au-delà duquel vous considérez deux contenus comme des doublons.
Faut-il indexer mes documents d’abord ?
Oui : la recherche compare le document soumis à un index existant. On indexe une fois la base, puis on lance autant de comparaisons que nécessaire.
Quel est le prix ?
$0.002 par appel et $0.0015 par requête, en dollars US, sans abonnement. L’indexation initiale est facturée à part. Tout est affiché avant de lancer.
Mes documents de référence sont-ils gardés ?
Le document soumis sert à calculer sa proximité avec votre index, le temps de la requête. Il n’est pas conservé au-delà ni utilisé pour entraîner un modèle.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/search/similar-docs \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/search/similar-docs", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/search/similar-docs",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/search/similar-docs", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/search/similar-docs", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"input": "…"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "search.similar_docs",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_chunks | 10000 |
max_tokens | 20000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |