ESPACE PUBLICITAIRE DISPONIBLE · PARLONS-EN

Comment configurer et intégrer l'API DeepSeek dans ses outils de développement avec des bibliothèques compatibles OpenAI

365Finds Editorial
11 430 articles Wiki répertoriés

Utilisez 365 Wiki avec votre IA

Copiez le prompt ci-dessous, collez-le dans l’IA que vous utilisez déjà, puis posez directement votre question.

Télécharger le Skill complet

Commencez par essayer le prompt. Si vous utilisez souvent 365 Wiki, installez le Skill 365Wiki complet pour ne plus avoir à le coller. Sans IA habituelle, les versions web de Gemini ou Microsoft Copilot conviennent aussi.

Les développeurs de logiciels n'ont pas besoin d'adopter un nouveau kit de développement (SDK) propriétaire pour intégrer les modèles DeepSeek à leurs environnements existants. L'API officielle de DeepSeek respecte strictement les spécifications REST d'OpenAI (telles que /chat/completions et /models). En modifiant simplement deux paramètres essentiels — l'URL de base (Base URL) et la clé API (API Key) —, il est possible de rediriger les bibliothèques clientes, les extensions d'IDE et les assistants de terminal existants directement vers l'infrastructure de DeepSeek.

Ce guide détaille la configuration des bibliothèques en Python et TypeScript, l'intégration de DeepSeek dans des outils tels que Cline, Cursor, Continue et Aider, ainsi que l'exploitation de fonctionnalités avancées comme la mise en cache automatique du contexte (KV Cache) et le traitement des jetons de raisonnement (reasoning_content).


Configuration essentielle : URL de base et authentification

Par défaut, les bibliothèques officielles d'OpenAI acheminent leurs requêtes vers https://api.openai.com/v1. Pour basculer vers DeepSeek, il suffit d'ajuster l'adresse du point de terminaison et les identifiants lors de l'initialisation du client :

ParamètreValeurDescription
URL de base standardhttps://api.deepseek.comPoint de terminaison par défaut pour la complétion de chat et la liste des modèles
URL de base alternativehttps://api.deepseek.com/v1Nécessaire pour les outils qui concatènent en interne le préfixe /v1
URL de base bêtahttps://api.deepseek.com/betaRéservée aux fonctionnalités expérimentales telles que le FIM (complétion intermédiaire de code)
URL de base Anthropichttps://api.deepseek.com/anthropicPoint de terminaison conçu pour les outils basés sur le SDK d'Anthropic
Clé API (API Key)sk-...Générée depuis la console de gestion DeepSeek Platform
Modèles principauxdeepseek-chat, deepseek-reasonerdeepseek-chat pour le code rapide et le chat ; deepseek-reasoner pour l'analyse approfondie

Éviter les pièges de concaténation d'URL

L'erreur d'intégration la plus fréquente provient d'une mauvaise concaténation des chemins. La passerelle de DeepSeek prend en charge aussi bien https://api.deepseek.com/chat/completions que https://api.deepseek.com/v1/chat/completions. Veillez toutefois à respecter ces règles :


Exemples d'intégration avec les SDK officiels

Grâce à la conformité du protocole, les bibliothèques officielles d'OpenAI s'utilisent sans aucune modification de code.

1. Environnement Python (SDK openai v1.0+)

import os
from openai import OpenAI

# Initialisation du client avec les identifiants DeepSeek
client = OpenAI(
    api_key=os.environ.get("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com"
)

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "Vous êtes un ingénieur logiciel chevronné."},
        {"role": "user", "content": "Écrivez une fonction génératrice en Python pour lire de volumineux fichiers JSONL en continu."}
    ],
    temperature=0.7,
    stream=False
)

print(response.choices[0].message.content)

Pour afficher les jetons en continu au fur et à mesure de leur génération, activez stream=True :

stream = client.chat.completions.create(
    model="deepseek-chat",
    messages=[{"role": "user", "content": "Expliquez le fonctionnement de l'algorithme de consensus Raft en deux paragraphes."}],
    stream=True
)

for chunk in stream:
    token = chunk.choices[0].delta.content or ""
    print(token, end="", flush=True)

2. Environnement Node.js & TypeScript (paquet npm openai)

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.DEEPSEEK_API_KEY,
  baseURL: "https://api.deepseek.com",
});

async function runSecurityAudit() {
  const completion = await client.chat.completions.create({
    model: "deepseek-chat",
    messages: [
      { role: "system", content: "Auditez le code suivant et signalez les failles de sécurité potentielles." },
      { role: "user", content: "const query = `SELECT * FROM users WHERE id = ${req.params.id}`;" },
    ],
  });

  console.log(completion.choices[0].message.content);
}

runSecurityAudit();

3. Test de connectivité rapide via cURL

Avant de configurer des extensions d'IDE, effectuez une requête directe dans le terminal pour valider la clé et la connectivité :

curl https://api.deepseek.com/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -d '{
    "model": "deepseek-chat",
    "messages": [
      {"role": "user", "content": "Test de connexion API DeepSeek"}
    ]
  }'

Intégration dans les outils de développement et IDEs

La plupart des assistants de programmation actuels prennent en charge les fournisseurs d'API personnalisés compatibles OpenAI.

Cline & Roo Code (Extension VS Code)

Cline est un agent de codage autonome capable d'exécuter des commandes de terminal et de modifier des fichiers de projet.

  1. Ouvrez le panneau Cline dans VS Code et cliquez sur l'icône des paramètres (engrenage).
  2. Dans le menu API Provider, choisissez OpenAI Compatible (ne sélectionnez pas « OpenAI », ce qui verrouillerait l'adresse sur le serveur officiel d'OpenAI).
  3. Dans Base URL, saisissez : https://api.deepseek.com.
  4. Dans API Key, collez votre clé DeepSeek.
  5. Dans Model ID, indiquez deepseek-chat pour les tâches courantes ou deepseek-reasoner pour les réflexions algorithmiques complexes.
  6. Enregistrez les réglages.

Cursor (Éditeur de code centré sur l'IA)

Cursor permet de substituer son routage par défaut pour rediriger les requêtes vers un autre fournisseur.

  1. Ouvrez les réglages de Cursor (Cmd+, sur macOS ou Ctrl+, sur Windows/Linux) et accédez à l'onglet Models.
  2. Dans la section OpenAI API Key, activez l'option Override OpenAI Base URL.
  3. Définissez la Base URL sur https://api.deepseek.com/v1 (Cursor requiert le préfixe /v1 pour structurer ses appels).
  4. Renseignez votre clé d'API DeepSeek dans le champ prévu à cet effet.
  5. Dans la liste des modèles, cliquez sur Add Model, ajoutez deepseek-chat et désactivez les modèles inutilisés.

Continue.dev (Assistant de code open source)

La configuration de Continue est enregistrée dans le fichier ~/.continue/config.json. Vous pouvez déclarer DeepSeek à la fois pour le chat et pour l'autocomplétion :

{
  "models": [
    {
      "title": "DeepSeek Chat",
      "provider": "openai",
      "model": "deepseek-chat",
      "apiKey": "VOTRE_CLE_DEEPSEEK",
      "apiBase": "https://api.deepseek.com/v1"
    }
  ],
  "tabAutocompleteModel": {
    "title": "DeepSeek Autocomplete",
    "provider": "openai",
    "model": "deepseek-chat",
    "apiKey": "VOTRE_CLE_DEEPSEEK",
    "apiBase": "https://api.deepseek.com/v1"
  }
}

Aider (Pair-programming en ligne de commande)

Aider gère DeepSeek nativement via LiteLLM ou par redirection de variables d'environnement :

# Option 1 : Spécification directe du modèle
export DEEPSEEK_API_KEY="sk-..."
aider --model deepseek/deepseek-chat

# Option 2 : Redirection des variables OpenAI classiques
export OPENAI_API_BASE="https://api.deepseek.com/v1"
export OPENAI_API_KEY="sk-..."
aider --model openai/deepseek-chat

Considérations architecturales pour les flux de travail

L'intégration de DeepSeek dans des chaînes d'intégration continue (CI/CD), des robots de revue de code et des flux multi-agents offre des gains financiers et techniques notables.

1. Mise en cache automatique du contexte (KV Cache)

L'infrastructure de DeepSeek active par défaut un système de mise en cache sur disque des requêtes fréquentes. Lorsque plusieurs appels consécutifs partagent un préfixe identique commençant à l'indice zéro :

"usage": {
  "prompt_tokens": 4096,
  "completion_tokens": 512,
  "total_tokens": 4608,
  "prompt_cache_hit_tokens": 3584,
  "prompt_cache_miss_tokens": 512
}

Conseil d'architecture : Structurez vos prompts en plaçant les éléments statiques au début (consignes système, règles architecturales, spécifications d'API) et les éléments dynamiques à la fin (fichiers en cours d'édition, requêtes de l'utilisateur). Cette disposition optimise au maximum le taux de succès du cache.

2. Traitement des jetons de raisonnement (reasoning_content)

Lorsqu'un modèle spécialisé dans le raisonnement (tel que deepseek-reasoner) est sollicité, il produit une chaîne de pensée détaillée avant d'émettre sa réponse finale.

Dans la structure de données retournée :

# Extraction de la chaîne de raisonnement en Python
response = client.chat.completions.create(
    model="deepseek-reasoner",
    messages=[{"role": "user", "content": "Concevez un système distribué de limitation de débit (rate limiting)."}]
)

message = response.choices[0].message
if hasattr(message, "reasoning_content") and message.reasoning_content:
    print("=== Processus de raisonnement ===")
    print(message.reasoning_content)

print("=== Réponse définitive ===")
print(message.content)

Si vous utilisez des outils d'interface graphique tiers avec des schémas de validation stricts, vérifiez qu'ils ne rejettent pas ce champ enrichi propre aux modèles de réflexion.

3. Appels d'outils (Function Calling) et sorties structurées

DeepSeek prend entièrement en charge le format de déclaration de fonctions au format JSON Schema standardisé par OpenAI :

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_git_diff",
            "description": "Récupère le différentiel de code entre deux branches ou commits",
            "parameters": {
                "type": "object",
                "properties": {
                    "base": {"type": "string", "description": "Branche ou commit de référence"},
                    "target": {"type": "string", "description": "Branche ou commit cible"}
                },
                "required": ["base", "target"]
            }
        }
    }
]

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[{"role": "user", "content": "Comparez les branches main et feature-auth"}],
    tools=tools,
    tool_choice="auto"
)

tool_calls = response.choices[0].message.tool_calls
if tool_calls:
    for call in tool_calls:
        print(f"Appel d'outil déclenché : {call.function.name}({call.function.arguments})")

Bonnes pratiques de sécurité et d'exploitation en production

  1. Isolation des clés secrètes : Ne committez jamais de clés API dans les dépôts Git. En production, injectez systématiquement vos secrets via des variables d'environnement (DEEPSEEK_API_KEY) ou un coffre-fort d'identifiants (Secret Manager).
  2. Mécanisme de répétition avec recul exponentiel : Dans les scripts de CI/CD ou les tâches par lots, intégrez une logique de réessai automatique avec recul exponentiel pour faire face aux limites de débit (HTTP 429) et aux micro-coupures réseau.
  3. Répartition ciblée des modèles : Dans les architectures multi-agents, confiez les tâches courantes et rapides (formatage, écriture de tests unitaires, validation de syntaxe) au modèle économique deepseek-chat, et réservez deepseek-reasoner aux décisions architecturales et aux résolutions d'algorithmes complexes.

Références