Nouvelles
Modèles
API
keyboard_arrow_down
Lecteur
Lisez les URL et effectuez des recherches sur le Web pour de meilleurs LLM de base.
Intégrations
Intégrations multimodales et multilingues de classe mondiale.
Reclasseur
Récupérateur neuronal de classe mondiale pour maximiser la pertinence de la recherche.
MCP terminalCLIarticlellms.txtsmart_toyAgentsdata_objectSchémamenu_bookDocuments



Se connecter
login
Implémentation
Étude empirique sur la rédaction des requêtes
Résumé
Blog technique
mars 17, 2024

Comment créer des recommandations d'articles avec l'API Jina Reranker uniquement

Vous pouvez créer un système de recommandation d'articles avec uniquement l'API Jina Reranker — pas de pipeline, pas d'embeddings, pas de recherche vectorielle, seulement du reclassement. Découvrez comment en 20 lignes de code.
Black background with a grid, multiple smiley faces, and a cursor pointing to one of them.
Engineering Group
Engineering Group • 5 minutes lues

Nous avons lancé l'API Reranker il y a deux semaines, la positionnant comme une solution de reranking leader sur le marché. Jina Reranker surpasse les références populaires dans divers benchmarks, démontrant une augmentation significative jusqu'à +33% du taux de succès par rapport aux résultats BM25. Bien que les performances soient impressionnantes, ce qui m'enthousiasme vraiment, c'est le potentiel de l'API Reranker. Son interface simple permet d'entrer une liste de requêtes-documents et renvoie directement les k meilleurs résultats reclassés. Cela signifie qu'en théorie, on pourrait construire un système de recherche ou de recommandation en utilisant uniquement le Reranker—éliminant ainsi le besoin de BM25, d'embeddings, de bases de données vectorielles ou de pipelines, obtenant ainsi une fonctionnalité de bout en bout.

Ce concept m'a tellement intrigué que j'ai ressenti le besoin de l'expérimenter. Donc voilà : maintenant en naviguant sur n'importe quelle page d'actualités de notre site web, comme celle que vous lisez actuellement, appuyez sur la touche @ et cliquez sur le bouton "get top 5 related articles", vous recevrez les cinq articles les plus pertinents par rapport à l'article actuel en environ 5 secondes, en utilisant le modèle jina-reranker-v1 (un peu plus long pour le modèle jina-colbert-v1). Tous les calculs sont effectués en ligne et entièrement gérés par l'API Reranker. Voici une vidéo démontrant son fonctionnement :

0:00
/0:33

Pour exécuter cette démonstration, vous aurez besoin d'une clé API avec suffisamment de tokens. Si vous épuisez votre quota et ne pouvez pas exécuter la démo, vous pouvez générer une nouvelle clé sur https://jina.ai/reranker. Chaque nouvelle clé est livrée avec 1 million de tokens gratuits.

tagImplémentation

L'implémentation est très simple : pour trouver les articles les plus liés à un article donné sur jina.ai/news/, nous utilisons l'article actuellement lu comme requête et tous les autres 230+ articles (en utilisant leur texte intégral !) sur notre site d'actualités comme documents, excluant bien sûr l'article actuel. Ensuite, nous envoyons ce (q,d1,d2,⋯ ,d230)(q, d_1, d_2, \cdots, d_{230})(q,d1​,d2​,⋯,d230​) comme payload à l'API Reranker. Une fois la réponse reçue, nous utilisons l'index de document trié pour afficher les résultats. Ainsi, le code sous-jacent est le suivant :

const getRecommendedArticles = async () => {
  
  const query = `${currentNews.title} ${currentNews.excerpt}`;
  const docs = newsStore.allBlogs.filter((item) => item.slug !== currentNews.slug);
  
  const data = {
    model: modelName,
    query: query,
    documents: docs,
    top_n: 5,
  }

  const rerankUrl = 'https://api.jina.ai/v1/rerank';
  const headers = {
    'Content-Type': 'application/json',
    Authorization: `Bearer ${apiKey}`,
  };
  const modelName = 'jina-reranker-v1-base-en';
  
  const res = await fetch(rerankUrl, {
    method: 'POST',
    headers: headers,
    body: JSON.stringify(data),
  });

  const resp = await res.json();

  const topKList = resp.results.map((item) => {
    return docs[item.index];
  });

  console.log(topKList);
}
Reranker API
Maximize the search relevancy and RAG accuracy at ease

Pour obtenir une clé API, visitez simplement notre page Reranker API et naviguez jusqu'à la section API. Si vous possédez déjà une clé API de notre Embedding API, vous pouvez la réutiliser ici.

Et voilà, vous verrez les résultats, qui sont assez prometteurs pour une première itération, particulièrement compte tenu du fait que le processus d'implémentation prend environ 10 minutes.

Bien que les lecteurs puissent avoir des préoccupations concernant cette implémentation, certaines critiques peuvent être surestimées, tandis que d'autres peuvent être valides :

  • Les inquiétudes concernant les textes trop longs et la nécessité du découpage peuvent être surestimées : le modèle jina-reranker-v1 peut traiter des requêtes jusqu'à 512 en longueur et des documents de longueur arbitraire, tandis que le modèle jina-colbert-v1 peut gérer jusqu'à 8192 pour les requêtes et les documents. Par conséquent, l'entrée du texte intégral dans l'API Reranker est probablement inutile. Les deux modèles gèrent efficacement les longs contextes, il n'y a donc pas lieu de s'inquiéter. Le découpage, bien qu'il soit peut-être l'aspect le plus fastidieux et heuristique du pipeline embedding-vector-search-rerank, est moins problématique ici. Cependant, des contextes plus longs supposent plus de tokens, ce que nos utilisateurs payants de l'API devront peut-être prendre en compte. Dans cet exemple, parce que nous utilisons le texte intégral de tous les 233 articles, une requête de reranking coûte plus de 300K tokens.
  • L'impact des données brutes versus nettoyées sur la qualité. L'ajout du nettoyage des données pourrait effectivement conduire à des améliorations. Par exemple, nous avons observé que la simple suppression des balises HTML (c'est-à-dire docs.map(item => item.html.replace(/<[^>]*>?/gm, '')) améliore significativement la qualité des recommandations pour le modèle jina-reranker-v1, bien que l'effet soit moins prononcé pour le modèle jina-colbert-v1. Cela suggère que notre modèle ColBERT a été entraîné pour être plus tolérant aux textes bruités que le modèle jina-reranker-v1.
  • L'influence de différentes constructions de requêtes sur la qualité. Dans l'implémentation ci-dessus, nous avons directement utilisé le titre et l'extrait de l'article actuel comme requête. Est-ce l'approche optimale pour construire la requête ? L'ajout d'un préfixe tel que "What is the most related article to..." ou"Je vous donnerai 20 $ de pourboire si vous recommandez le meilleur article," similaire aux prompts utilisés avec les grands modèles de langage, serait-il bénéfique ? Cela soulève une question intéressante, probablement liée à la distribution des données d'entraînement du modèle, que nous prévoyons d'explorer davantage.
  • En nous appuyant sur le point précédent concernant la construction des requêtes, il serait intéressant d'étudier plus en profondeur les capacités compositionnelles de la requête, comme l'utilisation de l'historique de navigation récent d'un utilisateur pour des recommandations personnalisées. Il est particulièrement intéressant de considérer si le système pourrait comprendre non seulement les exemples positifs dans la requête mais aussi les négatifs, par exemple les opérateurs NOT_LIKE, "Ne me recommandez pas d'article comme celui-ci" ou "Je veux en voir moins comme celui-ci". Nous approfondirons ce sujet dans la section suivante.

tagÉtude empirique sur la rédaction des requêtes

Dans notre exploration des différentes méthodes de rédaction de requêtes avec la Jina Reranker API, en nous concentrant sur les 10 premiers résultats, nous avons mené une évaluation qualitative par étiquetage humain (c'est-à-dire évaluée par nous-mêmes), ce qui est logique puisque nous avons une connaissance complète de tout le contenu publié sur notre site web. Les stratégies de rédaction de requêtes que nous avons examinées comprenaient :

  • L'utilisation du Titre, de l'Extrait, et d'une combinaison Titre + Extrait de l'article.
  • L'adoption d'instructions de type "Prompt" comme "plus comme ceci," "pas comme ceci," et "quel est l'article le plus étroitement lié ?"

Pour tester l'efficacité du reranker, nous avons sélectionné deux articles non triviaux comme sujets de requête, visant à identifier les articles les plus pertinents parmi notre vaste catalogue de plus de 200 articles—un défi inspiré de "l'aiguille dans une botte de foin" dans les LLM. Ci-dessous, nous avons mis en évidence ces "aiguilles" en vert pour plus de clarté.

Screenshot of a table ranking articles on search technology relevance, featuring titles, excerpts, and 'More Like' or 'Not Li
Les résultats complets de notre étude sont détaillés dans cette feuille de calcul.

tagRésumé

Sur la base des résultats des tests, nous avons fait quelques observations et résumés :

  1. La combinaison du Titre et de l'Extrait donne les meilleurs résultats de reclassement, l'Extrait jouant un rôle significatif dans l'amélioration de la qualité du reclassement.
  2. L'incorporation d'instructions de type "prompt" n'entraîne aucune amélioration.
  3. Le modèle de reranker ne traite pas efficacement les qualificatifs positifs ou négatifs actuellement. Les termes tels que "plus comme", "moins comme", ou "pas comme" ne sont pas compréhensibles par le reranker.

Les observations des points 2 et 3 offrent des directions intéressantes pour les améliorations futures du reranker. Nous pensons que permettre le prompting à la volée pour modifier la logique de tri pourrait considérablement étendre les capacités du reranker, débloquant de nouvelles applications potentielles comme la curation/recommandation de contenu personnalisée.

Catégories:
Blog technique
rss_feed

En savoir plus
mars 11, 2026 • 7 minutes lues
Bootstrapping d'embeddings audio à partir de LLM multimodaux
Han Xiao
Abstract illustration of a sound wave or heartbeat, formed by blue, orange, and gray dots on a white background.
mars 06, 2026 • 6 minutes lues
Identifier les modèles d'embeddings à partir de valeurs numériques brutes
Han Xiao
Fingerprint illustration made from numbers, showcasing digital and high-tech design on a light background.
septembre 09, 2025 • 11 minutes lues
Les Embeddings multimodaux dans Llama.cpp et GGUF
Andrei Ungureanu
Alex C-G
Cartoon llama in the center of a white background, emitting laser-like beams from its eyes. The illustration creates a playfu
Des bureaux
location_on
Sunnyvale, Californie
710 Lakeway Dr, Ste 200, Sunnyvale, CA 94085, États-Unis
location_on
Berlin, Allemagne
Prinzessinnenstraße 19-20, 10969 Berlin, Allemagne
Fondation Recherche
Lecteur
Intégrations
Reclasseur
Obtenir la clé API Jina
Limite de taux
Statut de l'API
Entreprise
À propos de nous
Contacter le service commercial
Rédaction
Programme de stage
Télécharger le logo Jina
open_in_new
Télécharger le logo Elastic
open_in_new
Termes
Sécurité
termes et conditions
Confidentialité
Gérer les cookies
email
Jina AI par Elastic © 2020-2026.