一、準備作業
API Keyの取得
-
まずDeepSeekコンソールにログインし、アカウントがない場合は登録してください。
-
「API Keys」ページで「Create new API key」をクリックして、API Keyを取得します。生成されたキー(例:sk-123456789abc)をコピーして保存してください。忘れたり紛失した場合は、新しいAPI Keyを再作成する必要があります。
二、Python呼び出しステップ
1. 環境準備:Pythonのインストール(既にインストール済みの場合はスキップ)
- コンピュータにPython環境がない場合は、まずPython環境をインストールする必要があります(macOSにはPython3環境が標準でインストールされています)。python.orgからダウンロードしてインストールできます。
- 最新版(3.8以上推奨)をダウンロード
- インストール時に必ず
Add Python to PATH
を選択
2. requestsライブラリのインストール(既にインストール済みの場合はスキップ)
VSCodeまたは他のIDEAツールで新しいプロジェクトフォルダを作成し、ターミナル(トップメニュー:ターミナル → 新しいターミナル)を開いて以下のコマンドを実行します:
pip install requests
# または
pip3 install requests
# または
python3 -m pip install pyopenssl
コマンドが成功すると、以下のようなメッセージが表示されます:
Successfully installed requests-x.x.x...
インストールが失敗し、コンピュータにPython環境がある場合、システムに複数のPythonバージョンが存在し、異なる環境で異なるPythonバージョンを使用している可能性があります。そのため、requests
ライブラリが特定のバージョンの環境にのみインストールされている可能性があります。
これらのエラーを処理できない場合は、記事の最後のセクションにジャンプしてください。そこでは、より簡単にDeepSeek-R1 APIを呼び出す方法を提供しています。
3. 基本的な呼び出しコード
上記のコマンドが成功した後、プロジェクト内に .py
で終わるファイルを新規作成し、例えば deepseek.py
ファイルを作成し、以下のコードをコピーして貼り付けます(sk-あなたの密钥
を置き換えることを忘れないでください)。
# deepseek.py
import requests
# あなたのAPI Keyを記入
API_KEY = "sk-あなたの密钥"
url = "https://api.deepseek.com/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
}
data = {
"model": "deepseek-reasoner", # R1モデル(deepseek-reasoner)またはV3モデル(deepseek-chat)を指定
"messages": [
{"role": "system", "content": "あなたはプロのアシスタントです"},
{"role": "user", "content": "あなたは誰ですか?"}
],
"stream": False # ストリーミングをオフにする
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
result = response.json()
print(result['choices'][0]['message']['content'])
else:
print("リクエストが失敗しました。エラーコード:", response.status_code)
model='deepseek-chat'
を指定することでDeepSeek-V3を呼び出すことができます。
model='deepseek-reasoner'
を指定することでDeepSeek-R1を呼び出すことができます。
4. コードの実行方法
- 右上の「▶」ボタンをクリックしてコードを実行
- コンソールで
python3 deepseek.py
またはpython deepseek.py
を使用してコードを実行 - 「右クリックエディタ → Run Python File in Terminal」でコードを実行
5. 成功した場合の出力
以下のような出力が表示されれば、呼び出しが成功したことを示します。
こんにちは!私はDeepSeek-R1で、深層思考(DeepSeek)社によって開発されたAIアシスタントです。質問や問題解決のお手伝いをすることが得意で、幅広いトピックについて情報提供やサポートを行います。検索、データ分析、アイデア出し、学習支援など、さまざまなタスクに対応できます。どうぞお気軽にご相談ください!
三、コード解析
1. 重要なパラメータの説明
パラメータ | 説明 |
---|---|
model |
deepseek-reasoner はR1モデルを示します |
messages | 会話履歴(複数回の会話をサポート) |
stream |
True でストリーミング出力を有効に(長文に適しています) |
2. 複数回の会話の例
messages = [
{"role": "system", "content": "あなたは詩人です"},
{"role": "user", "content": "春についての詩を書いてください"},
{"role": "assistant", "content": "春風が頬を撫で、柳の枝が長く..."},
{"role": "user", "content": "第二段を続けてください"}
]
四、ストリーミングモード
以下のパラメータを変更することで有効にできます:
data["stream"] = True
response = requests.post(url, headers=headers, json=data, stream=True)
for line in response.iter_lines():
if line:
decoded_line = line.decode('utf-8')
print(decoded_line)
完全なコード:
# deepseek.py
import requests
# あなたのAPI Keyを記入
API_KEY = "sk-あなたのAPI Key"
url = "https://api.deepseek.com/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
}
data = {
"model": "deepseek-chat", # R1モデル(deepseek-reasoner)またはV3モデル(deepseek-chat)を指定
"messages": [
{"role": "system", "content": "あなたはプロのアシスタントです"},
{"role": "user", "content": "あなたは誰ですか?"}
],
"stream": False # ストリーミングをオフにする
}
data["stream"] = True
response = requests.post(url, headers=headers, json=data, stream=True)
for line in response.iter_lines():
if line:
decoded_line = line.decode('utf-8')
print(decoded_line)
以下はV3モデル(deepseek-chat)を使用した出力結果です。なぜR1を使わないのか?非常に人気があり、応答がないことが多いからです。
五、よくある質問
Q1:V3とR1モデルの違いは?
- V3:
model: "deepseek-chat"
- R1:
model: "deepseek-reasoner"
Q2:401エラーが発生した場合?
- API Keyが正しく入力されているか確認
- キーが期限切れでないことを確認
Q3:「No module named 'requests'」が表示された場合?以下を確認:
- 正しいターミナルでpip install requestsを実行したか(上記参照)
- VSCodeが正しいPythonインタプリタを使用しているか(上記参照)
Q4:requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1が表示された場合?
うーん、「サーバーが忙しい」と同じ理由で、利用者が多すぎて応答が失敗した可能性があります。
エラーメッセージExpecting value: line 1 column 1 (char 0)
は、json()
メソッドが有効なJSONデータを受け取ることを期待しているが、実際には空の内容を受け取ったことを示しています。これは、APIがデータを返さなかったか、空の応答ボディを返した可能性があります。
Q5:ストリーミング出力を有効にした後、keep-aliveが表示され続けるのはなぜですか?
うーん、「サーバーが忙しい」と同じ理由で、利用者が多すぎて、長時間接続状態が続いている可能性があります。
六、より簡単なDeepSeek-R1 APIの呼び出し方法(推奨)
ApidogでDeepSeek-R1 APIまたはDeepSeek-V3 APIを呼び出すことができます。Apidogを使用してストリーミング出力結果を取得することもできます: