Recherche profonde
API DeepSearch
api.openai.com
avec deepsearch.jina.ai
pour commencer.reasoning_effort
.reasoning_effort
.{
"role": "user",
"content": "hi"
}
curl https://deepsearch.jina.ai/v1/chat/completions \
-H "Content-Type: application/json"\
-H "Authorization: Bearer " \
-d @- <<EOFEOF
{
"model": "jina-deepsearch-v1",
"messages": [
{
"role": "user",
"content": "Hi!"
},
{
"role": "assistant",
"content": "Hi, how can I help you?"
},
{
"role": "user",
"content": "what's the latest blog post from jina ai?"
}
],
"stream": true,
"reasoning_effort": "medium"
}
EOFEOF
{
"id": "1742181758589",
"object": "chat.completion.chunk",
"created": 1742181758,
"model": "jina-deepsearch-v1",
"system_fingerprint": "fp_1742181758589",
"choices": [
{
"index": 0,
"delta": {
"content": "The latest blog post from Jina AI is titled \"Snippet Selection and URL Ranking in DeepSearch/DeepResearch,\" published on March 12, 2025 [^1]. This post discusses how to improve the quality of DeepSearch by using late-chunking embeddings for snippet selection and rerankers to prioritize URLs before crawling. You can read the full post here: https://jina.ai/news/snippet-selection-and-url-ranking-in-deepsearch-deepresearch\n\n[^1]: Since our DeepSearch release on February 2nd 2025 we ve discovered two implementation details that greatly improved quality In both cases multilingual embeddings and rerankers are used in an in context manner operating at a much smaller scale than the traditional pre computed indices these models typically require [jina.ai](https://jina.ai/news/snippet-selection-and-url-ranking-in-deepsearch-deepresearch)",
"type": "text",
"annotations": [
{
"type": "url_citation",
"url_citation": {
"title": "Snippet Selection and URL Ranking in DeepSearch/DeepResearch",
"exactQuote": "Since our DeepSearch release on February 2nd 2025, we've discovered two implementation details that greatly improved quality. In both cases, multilingual embeddings and rerankers are used in an _\"in-context\"_ manner - operating at a much smaller scale than the traditional pre-computed indices these models typically require.",
"url": "https://jina.ai/news/snippet-selection-and-url-ranking-in-deepsearch-deepresearch",
"dateTime": "2025-03-13 06:48:01"
}
}
]
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 169670,
"completion_tokens": 27285,
"total_tokens": 196526
},
"visitedURLs": [
"https://github.com/jina-ai/node-DeepResearch/blob/main/src/utils/url-tools.ts",
"https://huggingface.co/jinaai/jina-embeddings-v3",
"https://github.com/jina-ai/reader",
"https://zilliz.com/blog/training-text-embeddings-with-jina-ai",
"https://threads.net/@unwind_ai/post/DGmhWCVswbe/media",
"https://twitter.com/JinaAI_/status/1899840196507820173",
"https://jina.ai/news?tag=tech-blog",
"https://docs.llamaindex.ai/en/stable/examples/embeddings/jinaai_embeddings",
"https://x.com/jinaai_",
"https://x.com/JinaAI_/status/1899840202358784170",
"https://tracxn.com/d/companies/jina-ai/__IQ81fOnU0FsDpagFjG-LrG0DMWHELqI6znTumZBQF-A/funding-and-investors",
"https://jina.ai/models",
"https://linkedin.com/posts/imohitmayank_jinaai-has-unveiled-the-ultimate-developer-activity-7300401711242711040-VD64",
"https://medium.com/@tossy21/trying-out-jina-ais-node-deepresearch-c5b55d630ea6",
"https://huggingface.co/jinaai/jina-clip-v2",
"https://arxiv.org/abs/2409.10173",
"https://milvus.io/docs/embed-with-jina.md",
"https://seedtable.com/best-startups-in-china",
"https://threads.net/@sung.kim.mw/post/DGhG-J_vREu/jina-ais-a-practical-guide-to-implementing-deepsearchdeepresearchthey-cover-desi",
"https://elastic.co/search-labs/blog/jina-ai-embeddings-rerank-model-open-inference-api",
"http://status.jina.ai/",
"https://apidog.com/blog/recreate-openai-deep-research",
"https://youtube.com/watch?v=QxHE4af5BQE",
"https://sdxcentral.com/articles/news/cisco-engages-businesses-on-ai-strategies-at-greater-bay-area-2025/2025/02",
"https://aws.amazon.com/blogs/machine-learning/build-rag-applications-using-jina-embeddings-v2-on-amazon-sagemaker-jumpstart",
"https://reddit.com/r/perplexity_ai/comments/1ejbdqa/fastest_open_source_ai_search_engine",
"https://search.jina.ai/",
"https://sebastian-petrus.medium.com/build-openais-deep-research-open-source-alternative-4f21aed6d9f0",
"https://medium.com/@elmo92/jina-reader-transforming-web-content-to-feed-llms-d238e827cc27",
"https://openai.com/index/introducing-deep-research",
"https://python.langchain.com/docs/integrations/tools/jina_search",
"https://varindia.com/news/meta-is-in-talks-for-usd200-billion-ai-data-center-project",
"https://varindia.com/news/Mira-Murati%E2%80%99s-new-AI-venture-eyes-$9-billion-valuation",
"https://53ai.com/news/RAG/2025031401342.html",
"https://arxiv.org/abs/2409.04701",
"https://bigdatawire.com/this-just-in/together-ai-raises-305m-series-b-to-power-ai-model-training-and-inference",
"https://github.blog/",
"https://cdn-uploads.huggingface.co/production/uploads/660c3c5c8eec126bfc7aa326/MvwT9enRT7gOESHA_tpRj.jpeg",
"https://cdn-uploads.huggingface.co/production/uploads/660c3c5c8eec126bfc7aa326/JNs_DrpFbr6ok_pSRUK4j.jpeg",
"https://app.dealroom.co/lists/33530",
"https://api-docs.deepseek.com/news/news250120",
"https://sdxcentral.com/articles/news/ninjaone-raises-500-million-valued-at-5-billion/2025/02",
"https://linkedin.com/sharing/share-offsite?url=https%3A%2F%2Fjina.ai%2Fnews%2Fa-practical-guide-to-implementing-deepsearch-deepresearch%2F",
"https://twitter.com/intent/tweet?url=https%3A%2F%2Fjina.ai%2Fnews%2Fa-practical-guide-to-implementing-deepsearch-deepresearch%2F",
"https://platform.openai.com/docs/api-reference/chat/create",
"https://mp.weixin.qq.com/s/-pPhHDi2nz8hp5R3Lm_mww",
"https://huggingface.us17.list-manage.com/subscribe?id=9ed45a3ef6&u=7f57e683fa28b51bfc493d048",
"https://automatio.ai/",
"https://sdk.vercel.ai/docs/introduction",
"https://app.eu.vanta.com/jinaai/trust/vz7f4mohp0847aho84lmva",
"https://apply.workable.com/huggingface/j/AF1D4E3FEB",
"https://facebook.com/sharer/sharer.php?u=https%3A%2F%2Fjina.ai%2Fnews%2Fa-practical-guide-to-implementing-deepsearch-deepresearch%2F",
"https://facebook.com/sharer/sharer.php?u=http%3A%2F%2F127.0.0.1%3A3000%2Fen-US%2Fnews%2Fsnippet-selection-and-url-ranking-in-deepsearch-deepresearch%2F",
"https://reddit.com/submit?url=https%3A%2F%2Fjina.ai%2Fnews%2Fa-practical-guide-to-implementing-deepsearch-deepresearch%2F",
"https://apply.workable.com/huggingface",
"https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fjina.ai%2Fnews%2Fa-practical-guide-to-implementing-deepsearch-deepresearch%2F",
"https://news.ycombinator.com/submitlink?u=http%3A%2F%2F127.0.0.1%3A3000%2Fen-US%2Fnews%2Fsnippet-selection-and-url-ranking-in-deepsearch-deepresearch%2F",
"https://docs.github.com/site-policy/privacy-policies/github-privacy-statement",
"https://discord.jina.ai/",
"https://docs.github.com/site-policy/github-terms/github-terms-of-service",
"https://bigdatawire.com/this-just-in/qumulo-announces-30-million-funding",
"https://x.ai/blog/grok-3",
"https://m-ric-open-deep-research.hf.space/",
"https://youtu.be/sal78ACtGTc?feature=shared&t=52",
"https://mp.weixin.qq.com/s/apnorBj4TZs3-Mo23xUReQ",
"https://perplexity.ai/hub/blog/introducing-perplexity-deep-research",
"https://githubstatus.com/",
"https://github.blog/changelog/2021-09-30-footnotes-now-supported-in-markdown-fields",
"https://openai.com/index/introducing-operator",
"mailto:[email protected]",
"https://resources.github.com/learn/pathways",
"https://status.jina.ai/",
"https://reuters.com/technology/artificial-intelligence/tencents-messaging-app-weixin-launches-beta-testing-with-deepseek-2025-02-16",
"https://scmp.com/tech/big-tech/article/3298981/baidu-adopts-deepseek-ai-models-chasing-tencent-race-embrace-hot-start",
"https://microsoft.com/en-us/research/articles/magentic-one-a-generalist-multi-agent-system-for-solving-complex-tasks",
"javascript:UC_UI.showSecondLayer();",
"https://resources.github.com/",
"https://storm-project.stanford.edu/research/storm",
"https://blog.google/products/gemini/google-gemini-deep-research",
"https://youtu.be/vrpraFiPUyA",
"https://chat.baidu.com/search?extParamsJson=%7B%22enter_type%22%3A%22ai_explore_home%22%7D&isShowHello=1&pd=csaitab&setype=csaitab&usedModel=%7B%22modelName%22%3A%22DeepSeek-R1%22%7D",
"https://app.dover.com/jobs/jinaai",
"http://localhost:3000/",
"https://docs.cherry-ai.com/",
"https://en.wikipedia.org/wiki/Delayed_gratification",
"https://support.github.com/?tags=dotcom-footer",
"https://docs.jina.ai/",
"https://skills.github.com/",
"https://partner.github.com/",
"https://help.x.com/resources/accessibility",
"https://business.twitter.com/en/help/troubleshooting/how-twitter-ads-work.html",
"https://business.x.com/en/help/troubleshooting/how-twitter-ads-work.html",
"https://support.twitter.com/articles/20170514",
"https://support.x.com/articles/20170514",
"https://t.co/jnxcxPzndy",
"https://t.co/6EtEMa9P05",
"https://help.x.com/using-x/x-supported-browsers",
"https://legal.twitter.com/imprint.html"
],
"readURLs": [
"https://jina.ai/news/a-practical-guide-to-implementing-deepsearch-deepresearch",
"https://github.com/jina-ai/node-DeepResearch",
"https://huggingface.co/blog/open-deep-research",
"https://jina.ai/news/snippet-selection-and-url-ranking-in-deepsearch-deepresearch",
"https://x.com/jinaai_?lang=en",
"https://jina.ai/news",
"https://x.com/joedevon/status/1896984525210837081",
"https://github.com/jina-ai/node-DeepResearch/blob/main/src/tools/jina-latechunk.ts"
],
"numURLs": 98
}
Guide des paramètres de DeepSearch
Contrôle qualité
Dans DeepSearch, il existe généralement un compromis : plus le système effectue d’étapes, plus les résultats sont de qualité, mais plus vous consommez de jetons. Cette amélioration de la qualité est due à des recherches plus larges et exhaustives, ainsi qu’à une réflexion plus approfondie. Quatre paramètres principaux contrôlent la qualité de DeepSearch : « budget_tokens », « max_attempts », « team_size » et « reasoning_effort ». Le paramètre « reasoning_effort » est une combinaison prédéfinie de « budget_tokens » et « max_attempts », soigneusement ajustée. Pour la plupart des utilisateurs, ajuster « reasoning_effort » est l’approche la plus simple.
Jetons budgétaires
« budget_tokens » définit le nombre maximal de jetons autorisés pour l’ensemble du processus DeepSearch. Cela couvre toutes les opérations, y compris les recherches web, la lecture de pages web, la réflexion, la synthèse et le codage. Des budgets plus importants entraînent naturellement une meilleure qualité des réponses. Le processus DeepSearch s’arrête lorsque le budget est épuisé ou qu’une réponse satisfaisante est trouvée, selon la première éventualité. Si le budget est épuisé en premier, vous obtiendrez toujours une réponse, mais il se peut qu’elle ne soit pas définitive et entièrement affinée, car elle n’a pas passé tous les contrôles de qualité définis par « max_attempts ».
Nombre maximal de tentatives
« max_attempts » détermine le nombre de tentatives répétées par le système pour résoudre un problème pendant le processus DeepSearch. Chaque fois que DeepSearch produit une réponse, il doit passer certains tests de qualité définis par un évaluateur interne. Si la réponse échoue à ces tests, l’évaluateur fournit un retour d’information, que le système utilise pour poursuivre la recherche et affiner la réponse. Une valeur trop faible de « max_attempts » permet d’obtenir des résultats rapidement, mais la qualité peut en pâtir, car la réponse pourrait ne pas passer tous les contrôles de qualité. Une valeur trop élevée peut donner l’impression que le processus est bloqué dans une boucle sans fin de tentatives, où les échecs sont incessants.
Le système renvoie une réponse finale lorsque « budget_tokens » ou « max_attempts » est dépassé (selon la première éventualité), ou lorsque la réponse réussit tous les tests tout en conservant le budget et les tentatives restants.
Taille de l’équipe
« team_size » affecte la qualité d’une manière fondamentalement différente de « max_attempts » et « budget_tokens ». Lorsque « team_size » est défini sur plusieurs valeurs, le système décompose le problème initial en sous-problèmes et les étudie indépendamment. Imaginez un modèle de mappage-réduction, où une tâche importante est décomposée en tâches plus petites exécutées en parallèle. La réponse finale est alors une synthèse des résultats de chaque collaborateur. Nous l’appelons « team_size » car elle simule une équipe de recherche au sein de laquelle plusieurs agents étudient différents aspects du même problème et collaborent à un rapport final.
N’oubliez pas que la consommation de jetons de tous les agents est comptabilisée dans votre total de « budget_tokens », mais que chaque agent dispose de « max_attempts » indépendants. Cela signifie qu’avec une taille d’équipe plus importante mais des jetons de budget identiques, les agents pourraient répondre plus tôt que prévu en raison de contraintes budgétaires. Nous recommandons d’augmenter simultanément les valeurs de taille d’équipe et de jetons de budget afin de donner à chaque agent les ressources nécessaires pour effectuer un travail approfondi.
Enfin, la taille d’équipe peut contrôler l’étendue de la recherche : elle détermine le nombre d’aspects différents à étudier. Quant aux jetons de budget et aux nombres d’attaques maximum, ils contrôlent la profondeur de la recherche, c’est-à-dire le degré d’exploration de chaque aspect.
Contrôle des sources
DeepSearch s’appuie fortement sur ses sources d’information. La qualité ne se résume pas à la profondeur et à l’étendue algorithmiques ; la provenance des informations de DeepSearch est tout aussi importante, et souvent déterminante. Découvrons les paramètres clés qui contrôlent ce point.
Pas de réponse directe
no_direct_answer
est une simple option qui empêche le système de renvoyer une réponse à l’étape 1. Lorsqu’elle est activée, elle désactive la capacité du système à exploiter ses connaissances internes et l’oblige à toujours rechercher d’abord sur le Web. L’activation de cette option force le système à « sur-analyser » même des questions simples comme « Quel jour sommes-nous ? », « Comment allez-vous ? » ou des informations factuelles de base qui figurent indéniablement dans les données d’entraînement du modèle, comme « Qui était le 40e président des États-Unis ? »
Contrôles des noms d’hôtes
Trois paramètres : « boost_hostnames », « bad_hostnames » et « only_hostnames » indiquent à DeepSearch les pages web à privilégier, à éviter ou à utiliser exclusivement. Pour comprendre leur fonctionnement, imaginez le processus de recherche et de lecture dans DeepSearch :
- Phase de recherche : Le système effectue une recherche sur le web et récupère une liste d’URL de sites web avec leurs extraits.
- Phase de sélection : Le système décide des URL à visiter (il ne les visite pas toutes pour des raisons de temps et de coût).
boost_hostnames
: Les domaines listés ici sont prioritaires et ont plus de chances d’être visités.bad_hostnames
: Ces domaines ne seront jamais visités.only_hostnames
: Une fois définis, seules les URL correspondant à ces noms d’hôtes seront visitées.
Voici quelques remarques importantes concernant les paramètres des noms d’hôtes. Premièrement, le système utilise toujours les extraits renvoyés par les moteurs de recherche comme indices initiaux pour construire des chaînes de raisonnement. Ces paramètres de nom d’hôte affectent uniquement les pages web visitées par le système, et non la manière dont il formule les requêtes de recherche.
Deuxièmement, si les URL collectées ne contiennent pas les domaines spécifiés dans « only_hostnames », le système risque de ne plus lire les pages web. Nous vous recommandons d’utiliser ces paramètres uniquement lorsque vous maîtrisez votre question de recherche et que vous savez où trouver des réponses potentielles (ou où elles ne devraient absolument pas se trouver).
Cas particulier : Recherche universitaire
Pour la recherche universitaire, vous souhaiterez peut-être limiter les recherches et les lectures à arxiv.org. Dans ce cas, définissez simplement « search_provider » : « arxiv » et tout reposera sur arxiv comme seule source. Cependant, les questions génériques ou triviales risquent de ne pas obtenir de réponses efficaces avec cette restriction ; utilisez donc « search_provider » : « arxiv » uniquement pour la recherche universitaire sérieuse.
Code de langue de recherche
search_language_code
est un autre paramètre qui affecte les sources web en forçant le système à générer les requêtes dans une langue spécifique, indépendamment de la saisie initiale ou des étapes de raisonnement intermédiaires. Généralement, le système détermine automatiquement la langue de requête pour obtenir la meilleure couverture de recherche, mais un contrôle manuel est parfois utile.
Cas d’utilisation du contrôle de la langue
Étude de marché internationale : Lorsque vous étudiez l’impact d’une marque ou d’une entreprise locale sur les marchés internationaux, vous pouvez forcer les requêtes à toujours utiliser l’anglais avec "search_language_code": "en"
pour une couverture mondiale, ou utiliser la langue locale pour des informations régionales plus ciblées.
Étude mondiale avec des invites non anglaises : Si votre saisie est toujours en chinois ou en japonais (car vos utilisateurs finaux parlent principalement ces langues), mais que votre recherche porte sur le monde entier plutôt que sur des sites web chinois ou japonais locaux, le système peut automatiquement privilégier la langue de votre invite. Utilisez ce paramètre pour forcer les requêtes en anglais pour une couverture internationale plus large.
Discuter avec DeepSearch
Qu'est-ce que DeepSearch ?
LLM standard
RAG et LLMs ancrés
Recherche profonde
Tarification des API
Produit | Point de terminaison de l'API | Descriptionarrow_upward | sans clé APIkey_off | avec clé APIkey | avec clé API Premiumkey | Latence moyenne | Comptage de l'utilisation des jetons | Demande autorisée | |
---|---|---|---|---|---|---|---|---|---|
API de lecteur | https://r.jina.ai | Convertir l'URL en texte compatible LLM | 20 RPM | 500 RPM | trending_up5000 RPM | 7.9s | Comptez le nombre de jetons dans la réponse de sortie. | GET/POST | |
API de lecteur | https://s.jina.ai | Recherchez sur le Web et convertissez les résultats en texte adapté au LLM | block | 100 RPM | trending_up1000 RPM | 2.5s | Chaque demande coûte un nombre fixe de jetons, à partir de 10000 jetons | GET/POST | |
Recherche profonde | https://deepsearch.jina.ai/v1/chat/completions | Raisonner, rechercher et itérer pour trouver la meilleure réponse | block | 50 RPM | 500 RPM | 56.7s | Comptez le nombre total de jetons dans l’ensemble du processus. | POST | |
API d'intégration | https://api.jina.ai/v1/embeddings | Convertir du texte/des images en vecteurs de longueur fixe | block | 500 RPM & 1,000,000 TPM | trending_up2,000 RPM & 5,000,000 TPM | ssid_chart dépend de la taille de l'entrée help | Comptez le nombre de jetons dans la demande d'entrée. | POST | |
API de reclassement | https://api.jina.ai/v1/rerank | Classer les documents par requête | block | 500 RPM & 1,000,000 TPM | trending_up2,000 RPM & 5,000,000 TPM | ssid_chart dépend de la taille de l'entrée help | Comptez le nombre de jetons dans la demande d'entrée. | POST | |
API de classificateur | https://api.jina.ai/v1/train | Entraîner un classificateur à l'aide d'exemples étiquetés | block | 20 RPM & 200,000 TPM | 60 RPM & 1,000,000 TPM | ssid_chart dépend de la taille de l'entrée | Les jetons sont comptés comme suit : input_tokens × num_iters | POST | |
API de classificateur (Coup zéro) | https://api.jina.ai/v1/classify | Classer les entrées à l'aide de la classification à coup zéro | block | 200 RPM & 500,000 TPM | 1,000 RPM & 3,000,000 TPM | ssid_chart dépend de la taille de l'entrée | Jetons comptés comme : input_tokens + label_tokens | POST | |
API de classificateur (Quelques coups) | https://api.jina.ai/v1/classify | Classer les entrées à l'aide d'un classificateur à quelques coups entraîné | block | 20 RPM & 200,000 TPM | 60 RPM & 1,000,000 TPM | ssid_chart dépend de la taille de l'entrée | Jetons comptés comme : input_tokens | POST | |
API de segmentation | https://api.jina.ai/v1/segment | Tokeniser et segmenter un texte long | 20 RPM | 200 RPM | 1,000 RPM | 0.3s | Le jeton n'est pas comptabilisé comme une utilisation. | GET/POST |