LangChain と DeepSeek の統合

この章では、LangChain で DeepSeek チャットモデルを統合して使用する方法を説明します。

を通じてlangchain-deepseek拡張パッケージにより、開発者は DeepSeek が提供する大規模言語モデルサービスにすばやく接続できます。

DeepSeek モデルは、公式ホスト型 API に加えて、Ollama、Fireworks、Together などのプラットフォームを介したローカルまたはサードパーティによる推論デプロイにも対応しています。

公式 API に加えて、Coding Plan/Token Planプランを通じて DeepSeek、Kimi、GLM、Doubao、MiniMax などの主要な大規模モデルに直接接続でき、各社の API を個別に購入する必要はありません。

DeepSeek の紹介

DeepSeek はオープンソースの大規模言語モデルシリーズで、チャット、推論、コード生成などの機能をサポートしています。

LangChain では、DeepSeek は主にChatDeepSeekクラスを使用して呼び出されます。

統合情報:

項目 説明
クラス名 ChatDeepSeek
インストールパッケージ langchain-deepseek
ステータス Beta(ベータ版)
JavaScript 対応 である
Python 対応 である

モデル機能のサポート:

機能 サポート状況
ツール呼び出し(Tool Calling) ✅ サポート
構造化出力(Structured Output) ✅ サポート
画像入力 ❌ 非サポート
音声入力 ❌ 非サポート
動画入力 ❌ 非サポート
トークンのストリーミング出力 ✅ サポート
ネイティブ非同期呼び出し ✅ サポート
トークン使用統計 ✅ サポート
Logprobs ❌ 非サポート

DeepSeek API は OpenAI/Anthropic 互換の API 形式を使用しています。設定を変更することで、OpenAI/Anthropic SDK を使用して DeepSeek API にアクセスしたり、OpenAI/Anthropic API 互換のソフトウェアを使用したりできます。

パラメータ值
base_url (OpenAI)https://api.deepseek.com
base_url (Anthropic)https://api.deepseek.com/anthropic
api_keyリンクをクリックして申請API key
model*deepseek-v4-flash
deepseek-v4-pro
deepseek-chat(2026/07/24 に非推奨予定)
deepseek-reasoner(2026/07/24 に非推奨予定)

langchain-deepseek のインストール

使用を開始する前に、DeepSeek の LangChain 統合パッケージをインストールする必要があります:

pip install -qU langchain-deepseek

DeepSeek API キーの設定

まず DeepSeek アカウントを登録し、API キーを作成する必要があります。まだお持ちでない場合は、先にhttps://platform.deepseek.com/api_keysAPI キーを作成してください。

通常は、python-dotenvを使用して、現在のディレクトリ内の.env設定ファイルを読み取ることをお勧めします。

pip install python-dotenv

現在のプロジェクトディレクトリに.envファイルを作成します:

.env ファイルの設定:

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

Python で .env ファイルを読み取る:

完全な例

import os

from dotenv import load_dotenv

# 加载当前目录 .env 文件
load_dotenv()

# 获取 API Key
api_key = os.getenv("DEEPSEEK_API_KEY")

print(api_key)

.env ファイルのパスを指定:.env ファイルが現在のディレクトリにない場合は、手動でパスを指定できます:

例

from dotenv import load_dotenv

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

LangSmith の設定(オプション)

LangChain の呼び出しチェーンのトレースとデバッグ機能を有効にする場合は、LangSmith API キーを設定できます:

例

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

os.environ["LANGSMITH_API_KEY"] = getpass.getpass(
    "Enter your LangSmith API key: "
)

ChatDeepSeek モデルの作成

インストールが完了したら、ChatDeepSeekを使用してモデルを初期化できます:

例

import os

from dotenv import load_dotenv
from langchain_deepseek import ChatDeepSeek

# 加载 .env
load_dotenv()

# 获取 API KEY
api_key = os.getenv("DEEPSEEK_API_KEY")

# 创建模型
llm = ChatDeepSeek(
    api_key=api_key,
    model="deepseek-v4-flash",
    temperature=0,
    max_tokens=None,
    timeout=None,
    max_retries=2
)

# 调用模型
response = llm.invoke("你好,请介绍 LangChain")

print(response.content)

パラメータの説明:

パラメータ 説明
api_key 申請した API キーを設定します。例: "sk-xxx"
model モデル名を指定します。例: deepseek-v4-flash
temperature ランダム性を制御します。低いほど結果が安定します
max_tokens 生成する最大トークン数を制限します
timeout リクエストのタイムアウト時間
max_retries 失敗後の最大再試行回数

また、init_chat_model()関数を使用して呼び出すこともできます:

例

import os

from dotenv import load_dotenv

# 加载当前目录 .env 文件
load_dotenv()
from langchain.chat_models import init_chat_model

# modelを指定した場合、固定モデルを返す
model = init_chat_model("deepseek:deepseek-v4-flash", temperature=0.7)
response = model.invoke("介绍Python")
print(response.content)

DeepSeek モデルの呼び出し

次のサンプルでは、DeepSeek モデルにチャットメッセージを送信する方法を示します:

注意:ここではテストのため、API キーをテストファイルに直接記述しています:

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

実際の本番環境では、.envファイルに設定してください。

例

from langchain_deepseek import ChatDeepSeek

llm = ChatDeepSeek(
    api_key="sk-xxx",    # あなたのDeepSeek APIキーを設定する
    model="deepseek-v4-flash",
    temperature=0,
    max_tokens=None,
    timeout=None,
    max_retries=2
)

messages = [
    (
        "system",
        "You are a helpful assistant that translates English to Chinese."
    ),
    (
        "human",
        "I love programming."
    ),
]

ai_msg = llm.invoke(messages)

print(ai_msg.content)

上記のコードは英語を中国語に翻訳します。実行すると、モデルは翻訳結果を返します:

私はプログラミングが好きです。

対応している DeepSeek モデル:

モデル 用途 特徴
deepseek-v4-flash 汎用チャットモデル Tool Calling と構造化出力に対応
deepseek-v4-pro 推論モデル(deepseek-v4-pro) より強力な推論能力を持つが、Tool Calling には非対応

LangChain + DeepSeek の完全なテスト例

以下では、完全に実行可能な LangChain + DeepSeek のサンプルを示します。

テストファイルの作成

test.py ファイルを作成します:

完全な例

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

# =========================
# 配置 DeepSeek API Key
# =========================

apiKey = "sk-xxx" # あなたのDeepSeek APIキーを設定する

# =========================
# 创建 DeepSeek 模型
# =========================

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

# =========================
# 构造聊天消息
# =========================

messages = [
    SystemMessage(
        content=あなたはプロのPython教師です。
    ),

    HumanMessage(
        content="LangChainとは何か説明し、簡単な例を示してください。"
    )
]

# =========================
# 调用模型
# =========================

response = llm.invoke(messages)

# =========================
# 输出结果
# =========================

print("AI 回复:")
print(response.content)

ターミナルで実行:

python test.py

出力は以下のとおりです:

コードの説明:

コード 役割
ChatDeepSeek LangChain の DeepSeek チャットモデルクラス
SystemMessage システムプロンプト。AI の役割を設定するために使用
HumanMessage ユーザー入力メッセージ
llm.invoke() DeepSeek モデルの呼び出し
response.content AI が返した内容を取得

deepseek-v4-pro 推論モデルの使用

LangChainはDeepSeekのストリーミング出力をサポートしており、deepseek-v4-pro推論モデルを使用する必要があります:

例

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

# =========================
# DeepSeek API Keyを設定
# =========================

apiKey = "sk-xxx" # あなたのDeepSeek API Keyを設定

# =========================
# 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("Pythonを紹介してください"):
    print(chunk.content, end="", flush=True)

PromptTemplate の使用

PromptTemplateを組み合わせてPromptを動的に生成します:

例

from langchain_deepseek import ChatDeepSeek
from langchain_core.prompts import ChatPromptTemplate

# =========================
# DeepSeek API Keyを設定
# =========================

apiKey = "sk-xxx" # あなたのDeepSeek API Keyを設定

# =========================
# 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(
    "{topic}について詳しく説明してください"
)

chain = prompt | llm

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

print(response.content)

よくあるエラー

エラー 原因 解決方法
401 Unauthorized API Keyエラー DEEPSEEK_API_KEYを確認
ModuleNotFoundError 依存関係が未インストール pip installを実行し直す
Rate Limit リクエスト頻度が高すぎる リクエスト頻度を下げる
Timeout Error リクエストタイムアウト timeoutパラメータを追加

推奨プロジェクト構成

プロジェクト構成

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

requirements.txt の例

例

langchain
langchain-deepseek
python-dotenv

参考ドキュメント

その他の拡張