AIREITER

Guide de configuration de la recherche web et de l’import de fichiers avec l’API DeepSeek

Dernière mise à jour: 2026-11-14 07:38:19

Depuis le 13 novembre 2026, l’API DeepSeek permet de piloter les fonctions de l’application via des paramètres. La recherche intégrée est contrôlée par le modèle et facturée à la requête avec résultats, tandis que les API Search et Fetch autonomes sont contrôlées par votre code et facturées à chaque requête réussie. L’import de fichiers passe, lui, par une Files API distincte et un file_id.

Avec le mode réflexion, un appel peut déclencher une vingtaine d’appels d’outils, facturés comme des recherches et des récupérations de pages. Ce guide passe en revue l’activation, les limites, les calculs de coût par tâche et le choix de l’approche adaptée.

Page d’annonce de l’API DeepSeek App

Ce que l’annonce du 13 novembre ajoute à l’API DeepSeek App

Dans son annonce, The full DeepSeek App experience, now via API, DeepSeek rend la recherche web, l’ajout de fichiers et la lecture d’URL accessibles depuis l’API avec le modèle deepseek-flash (DeepSeek-V4.1-Flash).

Ces fonctions sont disponibles via trois interfaces : l’API Messages, l’API Responses et l’API Chat Completions, comme l’explique le guide Build a Chatbot. Les appels d’outils et la constitution du contexte s’effectuent côté serveur ; le client se contente donc d’afficher les blocs structurés et de les renvoyer tels quels. Un démonstrateur open source dans le navigateur montre le branchement, mais DeepSeek le présente uniquement comme une démonstration.

Activer la recherche web et la lecture d’URL

Déclarez ces deux outils dans le tableau tools de la requête, avec deepseek-flash, comme indiqué dans le guide Web Tools :

"tools": [{"type": "deepseek_web_search"}, {"type": "deepseek_read_url"}]

Lorsque la réflexion est désactivée, deepseek_web_search fonctionne comme la recherche du chat : le modèle choisit s’il doit lancer une recherche, un même appel peut contenir plusieurs requêtes et la réponse inclut des citations. Avec la réflexion activée, l’outil devient une recherche approfondie : les actions de recherche, open_page et find_in_page s’enchaînent au fil du raisonnement, jusqu’à une vingtaine d’appels d’outils avant la réponse.

Le même guide Web Tools précise quatre limites importantes :

  • Seules les URL présentes dans le dernier message utilisateur sont prises en compte, dans la limite des 10 premières URL distinctes. Le modèle choisit ensuite lesquelles lire.
  • Vous ne pouvez pas imposer l’utilisation d’un outil avec tool_choice : en nommer un provoque une erreur HTTP 400, et "none" désactive également la lecture d’URL.
  • Lorsque les outils web, le niveau de sécurité élevé ou la génération de titres sont activés, temperature, top_p et plusieurs paramètres de contrôle des outils sont ignorés silencieusement.
  • Une réponse ayant utilisé les outils web ne peut pas être poursuivie : il faut renvoyer la requête.

« À 0,75 $ pour 1 000 requêtes, j’aimerais savoir combien d’appels un agent effectue en arrière-plan. Quelqu’un a-t-il calculé le coût d’une tâche de recherche classique ? » — u/Glum-Guitar-5083 sur r/DeepSeek

La facturation dépend du chemin utilisé. La recherche web intégrée facture chaque requête qui renvoie des résultats : trois requêtes dans un même appel comptent donc pour trois. La récupération intégrée facture chaque page récupérée, y compris celles qui sont ensuite remplacées par url_not_allowed ou unavailable après vérification de sécurité ; les liens impossibles à récupérer ne sont pas facturés. Les API Search et Fetch autonomes ne facturent qu’une réponse HTTP 200 contenant des résultats ou du contenu. Dans les deux cas, les recherches échouées ou vides ne sont pas facturées.

Importer des fichiers sans développer son propre parseur

La Files API permet d’importer un fichier une seule fois, puis de le réutiliser grâce à son file_id. Le flux minimal ressemble à ceci :

curl https://api.deepseek.com/files \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -F purpose="rich_layout_recognition" \
  -F file="@report.pdf"
# -> {"id": "file-api-xxxxxxxxxxxxxxxx", ...}

# then reference it in chat (Chat Completions shape):
# {"model": "deepseek-flash", "messages": [{"role": "user",
#   "content": [{"type": "text", "text": "Compare this with today's numbers"},
#   {"type": "file", "file_id": "file-api-xxxxxxxxxxxxxxxx"}]}]}

Le champ purpose détermine le traitement ; pour les documents, il doit être envoyé avant le champ file. user_data accepte les images (JPEG, PNG, GIF, WebP), les fichiers texte, les feuilles de calcul et les ebooks. text_recognition extrait uniquement le texte des PDF, documents Word, présentations PowerPoint et images. Enfin, rich_layout_recognition renvoie le texte ainsi que les éléments graphiques des tableaux et des colonnes. Importer un PDF avec user_data renvoie une erreur HTTP 400. Les documents analysés ne peuvent ensuite être ni réutilisés comme images ni téléchargés.

CatégorieLimite
Image via file_id64 MiB (contre 32 MiB en Base64 inline)
PDF / Word / PowerPoint100 MiB, analyse lors de l’import en 120 s
Texte / feuille de calcul / ebook32 MiB, fenêtre d’import de 10 min
Quota du compte25 Gio, 10 000 fichiers ; expiration de 1 h à 30 jours ou permanente

Les fichiers sont rattachés au compte, pas à la clé API. Le même identifiant fonctionne avec les familles compatibles OpenAI et Anthropic ; cette dernière nécessite l’en-tête anthropic-beta: files-api-2025-04-14. L’analyse a lieu pendant l’import : le file_id n’est renvoyé qu’une fois l’opération terminée avec succès.

Outils intégrés ou API Search et Fetch autonomes ?

Privilégiez les outils intégrés lorsque vous voulez laisser le modèle décider s’il doit rechercher une information ou lire une page au sein d’une conversation. Les API autonomes décrites dans le guide Search & Fetch sont plus adaptées lorsque la décision revient à votre code : POST https://api.deepseek.com/v1/tools/search pour obtenir jusqu’à 50 résultats classés (rerank_score de 0 à 3, avec une qualité élevée à partir de 1,5, et authority de 0 à 4), puis POST https://api.deepseek.com/v1/tools/fetch pour convertir une URL en Markdown. La recherche autonome ne prend pas encore en charge la recherche d’images, contrairement aux outils web.

ApprocheContrôleUnité de facturationIdéal pour
deepseek_web_search / deepseek_read_url intégrésDécision du modèle, côté serveurPar requête avec résultats / par page récupéréeChat avec citations, recherche approfondie
Search + Fetch autonomesDécision de votre code0,75 $ pour 1 000 requêtes réussies de chaque typeAgents, pipelines RAG

Les limites de débit sont indépendantes et s’appliquent au niveau du compte : 100 QPS pour Search, 25 QPS pour Fetch, avec en plus une limite Fetch par domaine. Une erreur HTTP 429 est renvoyée au-delà du quota. Réessayez pour les erreurs 408, 429 et 5xx ; pour les autres erreurs 4xx, corrigez la requête. Les opérateurs site:, -site:, "exact phrase", lang:, after:/before: fonctionnent avec Search autonome.

Combien cela coûte réellement

Les frais des outils s’ajoutent au coût des tokens : Search et Fetch sont facturés 0,75 $ pour 1 000 requêtes réussies chacun. L’OCR, l’ASR et la TTS ont leurs propres tarifs, avec des promotions à durée limitée détaillées dans l’annonce. Le paramètre count modifie le nombre de résultats, mais pas le prix.

Comparatif du prix de la recherche pour 1 000 requêtes

Les comparaisons de prix partagées par la communauté placent la recherche DeepSeek autour de 0,75 $ pour 1 000 requêtes, contre environ 10 $ pour 1 000 requêtes avec la recherche d’OpenAI et de Claude, selon des développeurs (@berryxia). Cela représente un écart d’environ 13 fois sur les seuls frais d’outils.

Une réponse reposant sur une seule requête coûte moins d’un dixième de centime en frais d’outils. Une session de réflexion approfondie avec 8 recherches et 6 ouvertures de pages facture environ 8 recherches et 6 récupérations, soit toujours moins de deux centimes avant les tokens. Le vrai risque vient du volume : un agent qui enchaîne des dizaines de recherches fait rapidement grimper la facture par tranches de 0,75 $. Budgétez en fonction des appels réussis, limitez la profondeur des recherches et journalisez tool_search et tool_fetch dans l’objet d’utilisation final (web_search_requests y est uniquement informatif et ne correspond pas au nombre facturé).

Checklist de mise en production : citations, sécurité et démonstrateur

Les citations arrivent sous forme de blocs web_search_result_location contenant l’URL, le titre et le texte cité, comme l’explique le guide Web Tools. En streaming, elles apparaissent dans des événements citations_delta, avec au plus une URL par bloc de texte, et sont ignorées si vous les renvoyez dans les requêtes suivantes. Conservez les champs signature et les blocs d’outils à l’identique entre les tours : les pages lues sont restaurées à partir de la signature. Une signature invalide ou absente n’empêche pas la réussite de la requête, mais la page est alors abandonnée. Dans l’exemple de trace du guide chatbot, le contexte passe de 40 tokens en entrée à 9 078 après les outils, dont 4 096 servis depuis le cache : prévoyez donc une marge suffisante pour les historiques gonflés par la recherche.

Pour les applications publiques, DeepSeek impose le contrôle de sécurité, mais laisse au développeur la modération, l’enregistrement du modèle et l’étiquetage des contenus générés par IA. Considérez la vérification intégrée comme un premier filtre, traitez explicitement les raisons d’arrêt refusal et attendez-vous à recevoir url_not_allowed lorsqu’une page échoue à la vérification. Ces récupérations bloquées restent facturées. Le démonstrateur de chat illustre le fonctionnement, mais garde toute la logique dans le navigateur : avant la production, développez votre propre backend.

FAQ

Puis-je forcer le modèle à effectuer une recherche à chaque requête ?

Non. C’est le modèle qui décide quand déclencher les outils, et nommer un outil web dans tool_choice renvoie une erreur 400.

Quels modèles et endpoints prennent en charge la recherche web et l’import de fichiers ?

deepseek-flash, via les API Messages, Responses et Chat Completions. Les références de fichiers par file_id fonctionnent avec les familles compatibles OpenAI et Anthropic.

Peut-on combiner fichiers importés et recherche web ?

Oui. C’est le scénario documenté pour un chatbot : contexte issu d’un fichier et recherche côté serveur avec citations.

Combien de recherches déclenche généralement une tâche d’agent ?

Un appel contenant quelques requêtes suffit pour une réponse simple ; une tâche avec réflexion peut déclencher jusqu’à une vingtaine d’appels d’outils. Mesurez tool_search et tool_fetch pour chaque tâche : les outils intégrés facturent à la requête ou à la page, tandis que les API autonomes facturent chaque requête réussie, dans les deux cas à hauteur de 0,75 $ pour 1 000.

Commencez par une requête de recherche intégrée et un import de fichier dans le démonstrateur. Consultez ensuite les compteurs tool_search et tool_fetch de l’objet d’utilisation final, puis décidez seulement après si le coût des outils par tâche est plus intéressant que la gestion de votre propre couche Tavily ou SearXNG.