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ètre | Valeur |
|---|---|
| base_url (OpenAI) | https://api.deepseek.com |
| base_url (Anthropic) | https://api.deepseek.com/anthropic |
| api_key | Cliquez sur le lien pour demanderune clé API |
| model* | deepseek-v4-flashdeepseek-v4-prodeepseek-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 :
OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxx"

Python lit le fichier .env :
Exemple complet
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
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_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
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
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
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_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_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_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
│
├── app.py
├── requirements.txt
├── .env
├── prompts/
├── data/
└── vector_db/
Exemple de requirements.txt
Exemple
langchain-deepseek
python-dotenv
Documentation de référence
- Documentation LangChain DeepSeek : https://python.langchain.com/docs/integrations/chat/deepseek/
- Site officiel de DeepSeek : https://www.deepseek.com/
- Site officiel de LangChain : https://www.langchain.com/
- LangSmith: https://smith.langchain.com/