Intégration de LangChain avec DeepSeek

Ce chapitre explique comment intégrer et utiliser le modèle de chat DeepSeek dans LangChain.

Grâce au package d'extensionlangchain-deepseek, les développeurs peuvent accéder rapidement aux services de grands modèles de langage fournis par DeepSeek.

Les modèles DeepSeek prennent en charge à la fois l'API hébergée officielle et le déploiement d'inférence local ou tiers via des plateformes telles que Ollama, Fireworks et Together.

En plus de l'interface API officielle, nous pouvons également utiliser le forfaitCoding Plan/Token Planpour accéder directement à des grands modèles courants tels que DeepSeek, Kimi, GLM, Doubao, MiniMax, etc., sans acheter séparément les API de chaque fournisseur.

Introduction à DeepSeek

DeepSeek est une série de grands modèles de langage open source qui prend en charge des capacités telles que le chat, le raisonnement et la génération de code.

Dans LangChain, DeepSeek est principalement appelé via la classeChatDeepSeek.

Informations d'intégration :

Item Description
Nom de classe ChatDeepSeek
Paquet langchain-deepseek
Status Bêta (version de test)
Prise en charge de JavaScript Oui
Prise en charge de Python Oui

Prise en charge des capacités du modèle :

Fonctionnalité Pris en charge ?
Appel d'outils ✅ Pris en charge
Sortie structurée ✅ Pris en charge
Entrée d'image ❌ Non pris en charge
Entrée audio ❌ Non pris en charge
Entrée vidéo ❌ Non pris en charge
Sortie en streaming de tokens ✅ Pris en charge
Appel asynchrone natif ✅ Pris en charge
Statistiques d'utilisation des tokens ✅ Pris en charge
Logprobs ❌ Non pris en charge

L'API DeepSeek utilise un format d'API compatible avec OpenAI/Anthropic. En modifiant la configuration, vous pouvez utiliser le SDK OpenAI/Anthropic pour accéder à l'API DeepSeek, ou utiliser un logiciel compatible avec l'API OpenAI/Anthropic.

ParamètreValeur
base_url (OpenAI)https://api.deepseek.com
base_url (Anthropic)https://api.deepseek.com/anthropic
api_keyCliquez sur le lien pour demanderune clé API
model*deepseek-v4-flash
deepseek-v4-pro
deepseek-chat(Sera déprécié le 2026/07/24)
deepseek-reasoner(Sera déprécié le 2026/07/24)

Installer langchain-deepseek

Avant de l'utiliser, vous devez installer le paquet d'intégration LangChain de DeepSeek :

pip install -qU langchain-deepseek

Configurer la clé API DeepSeek

Vous devez d'abord créer un compte DeepSeek et générer une clé API. Si vous n'en avez pas encore, vous devez vous rendre surhttps://platform.deepseek.com/api_keyspour créer une clé API.

Il est généralement recommandé d'utiliserpython-dotenvpour lire le fichier de configuration.envdans le répertoire courant.

pip install python-dotenv

Créez le fichier.envdans le répertoire du projet courant :

Configuration du fichier .env :

DEEPSEEK_API_KEY="sk-xxxxxxxxxxxxxxxx"
OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxx"

Python lit le fichier .env :

Exemple complet

import os

from dotenv import load_dotenv

# Charger le fichier .env dans le répertoire courant
load_dotenv()

# Obtenir la clé API
api_key = os.getenv("DEEPSEEK_API_KEY")

print(api_key)

Spécifier le chemin du fichier .env :Si le fichier .env ne se trouve pas dans le répertoire courant, vous pouvez spécifier manuellement le chemin :

Exemple

from dotenv import load_dotenv

load_dotenv(dotenv_path="./config/.env")

Configurer LangSmith (facultatif)

Si vous devez activer le traçage et le débogage de la chaîne d'appels LangChain, vous pouvez configurer la clé API LangSmith :

Exemple

os.environ["LANGSMITH_TRACING"] = "true"

os.environ["LANGSMITH_API_KEY"] = getpass.getpass(
    "Saisissez votre clé API LangSmith : "
)

Créer le modèle ChatDeepSeek

Après l'installation, vous pouvez utiliserChatDeepSeekpour initialiser le modèle :

Exemple

import os

from dotenv import load_dotenv
from langchain_deepseek import ChatDeepSeek

# Charger .env
load_dotenv()

# Obtenir la clé API
api_key = os.getenv("DEEPSEEK_API_KEY")

# Créer le modèle
llm = ChatDeepSeek(
    api_key=api_key,
    model="deepseek-v4-flash",
    temperature=0,
    max_tokens=None,
    timeout=None,
    max_retries=2
)

# Appeler le modèle
response = llm.invoke("Bonjour, veuillez présenter LangChain")

print(response.content)

Description des paramètres :

Paramètre Description
api_key Définissez la clé API que vous avez demandée, par ex. "sk-xxx"
model Spécifiez le nom du modèle, par ex. deepseek-v4-flash
temperature Contrôle le caractère aléatoire ; plus la valeur est faible, plus le résultat est stable
max_tokens Limite le nombre maximal de tokens générés
timeout Délai d’attente de la requête
max_retries Nombre maximal de tentatives après échec

Vous pouvez également utiliser la fonctioninit_chat_model()pour appeler :

Exemple

import os

from dotenv import load_dotenv

# Charger le fichier .env dans le répertoire courant
load_dotenv()
from langchain.chat_models import init_chat_model

# Modèle spécifié, renvoie un modèle fixe
model = init_chat_model("deepseek:deepseek-v4-flash", temperature=0.7)
response = model.invoke("Présentez le tutoriel Python")
print(response.content)

Appeler le modèle DeepSeek

L'exemple suivant montre comment envoyer des messages de chat au modèle DeepSeek :

Remarque : Dans mon test ici, j'ai écrit la clé API dans le fichier de test :

llm = ChatDeepSeek(
    api_key="sk-xxx",  # 设置你的 DeepSeek API Key
    model="deepseek-v4-flash"
) 

Dans les environnements de production réels, veuillez le définir dans le fichier.env.

Exemple

from langchain_deepseek import ChatDeepSeek

llm = ChatDeepSeek(
    api_key="sk-xxx",    # Définissez votre clé API DeepSeek
    model="deepseek-v4-flash",
    temperature=0,
    max_tokens=None,
    timeout=None,
    max_retries=2
)

messages = [
    (
        "system",
        "Vous êtes un assistant serviable qui traduit l'anglais vers le chinois."
    ),
    (
        "human",
        "J'aime la programmation."
    ),
]

ai_msg = llm.invoke(messages)

print(ai_msg.content)

Le code ci-dessus traduit l'anglais en chinois. Après exécution, le modèle renverra le résultat traduit :

I like programming.

Modèles DeepSeek pris en charge :

Modèle Objectif Fonctionnalités
deepseek-v4-flash Modèle de chat polyvalent Prend en charge l'appel d'outils et la sortie structurée
deepseek-v4-pro Modèle de raisonnement (deepseek-v4-pro) Capacités de raisonnement plus puissantes, mais ne prend pas en charge l'appel d'outils

Exemple de test complet LangChain + DeepSeek

Ce qui suit démontre un exemple complet et exécutable de LangChain + DeepSeek.

Créer un fichier de test

Créez le fichier test.py :

Exemple complet

from langchain_deepseek import ChatDeepSeek
from langchain_core.messages import HumanMessage, SystemMessage

# =========================
# Configurer la clé API DeepSeek
# =========================

apiKey = "sk-xxx" # Définissez votre clé API DeepSeek

# =========================
# Créer le modèle DeepSeek
# =========================

llm = ChatDeepSeek(
    api_key=apiKey,
    model="deepseek-v4-flash",
    temperature=0.7,
    max_tokens=1024,
    timeout=60,
    max_retries=3
)

# =========================
# Construire les messages de chat
# =========================

messages = [
    SystemMessage(
        content="Vous êtes un professeur de Python professionnel."
    ),

    HumanMessage(
        content="Veuillez expliquer ce qu'est LangChain et fournir un exemple simple."
    )
]

# =========================
# Appeler le modèle
# =========================

response = llm.invoke(messages)

# =========================
# Afficher le résultat
# =========================

print("Réponse de l'IA :")
print(response.content)

Exécuter dans le terminal :

python test.py

La sortie est la suivante :

Explication du code :

Code Objectif
ChatDeepSeek Classe du modèle de chat DeepSeek de LangChain
SystemMessage Prompt système, utilisé pour définir l'identité de l'IA
HumanMessage Message d'entrée de l'utilisateur
llm.invoke() Appeler le modèle DeepSeek
response.content Obtenir le contenu renvoyé par l'IA

Utiliser le modèle de raisonnement deepseek-v4-pro

LangChain prend en charge la sortie en streaming de DeepSeek, ce qui nécessite le modèle d'inférence deepseek-v4-pro :

Exemple

from langchain_deepseek import ChatDeepSeek
from langchain_core.messages import HumanMessage, SystemMessage

# =========================
# Configurer la clé API DeepSeek
# =========================

apiKey = "sk-xxx" # Définissez votre clé API DeepSeek

# =========================
# Créer le modèle DeepSeek
# =========================

llm = ChatDeepSeek(
    api_key=apiKey,
    model="deepseek-v4-pro",
    temperature=0.7,
    max_tokens=1024,
    timeout=60,
    max_retries=3
)

for chunk in llm.stream("Veuillez présenter Python"):
    print(chunk.content, end="", flush=True)

Utiliser PromptTemplate

Générer dynamiquement un prompt avec PromptTemplate

Exemple

from langchain_deepseek import ChatDeepSeek
from langchain_core.prompts import ChatPromptTemplate

# =========================
# Configurer la clé API DeepSeek
# =========================

apiKey = "sk-xxx" # Définissez votre clé API DeepSeek

# =========================
# Créer le modèle DeepSeek
# =========================

llm = ChatDeepSeek(
    api_key=apiKey,
    model="deepseek-v4-pro",
    temperature=0.7,
    max_tokens=1024,
    timeout=60,
    max_retries=3
)

prompt = ChatPromptTemplate.from_template(
    "Veuillez expliquer en détail : {topic}"
)

chain = prompt | llm

response = chain.invoke({
    "topic": "Transformer"
})

print(response.content)

Erreurs courantes

Erreur Cause Solution
401 Non autorisé Erreur de clé API Vérifier DEEPSEEK_API_KEY
ModuleNotFoundError Dépendances non installées Relancer pip install
Limite de débit Fréquence des requêtes trop élevée Réduire la fréquence des requêtes
Erreur de délai d'attente Délai d’attente de la requête Augmenter le paramètre timeout

Structure de projet recommandée

Structure du projet

project/
│
├── app.py
├── requirements.txt
├── .env
├── prompts/
├── data/
└── vector_db/

Exemple de requirements.txt

Exemple

langchain
langchain-deepseek
python-dotenv

Documentation de référence

Autres extensions