🔑 第 0 步:获取 DeepSeek API 密钥(必须最先做)

目的:获取调用 DeepSeek API 的身份凭证(相当于“密码”)。

操作

  1. 打开浏览器访问 👉 DeepSeek 开放平台

  2. 注册/登录账号(国内手机号即可)

  3. 进入 API Keys​ → 点击 创建 API Key

  4. 复制生成的 sk-xxxxxx只显示一次,务必保存


⚙️ 第 1 步:配置全局环境变量(永久生效)

目的:让系统在任何终端、任何目录都能读取到 API 密钥,避免每次手动export。

操作

# 打开全局环境变量配置文件
nano ~/.bashrc

# 在文件末尾粘贴以下内容(替换为你的真实 Key)
export DEEPSEEK_API_KEY="sk-你复制的DeepSeek密钥"
export OPENAI_BASE_URL="https://api.deepseek.com"
export MODEL_NAME="deepseek-v4-flash"

# 保存退出:Ctrl+O → 回车 → Ctrl+X

生效配置

source ~/.bashrc

验证(确保三个变量都有值):

echo $DEEPSEEK_API_KEY
echo $OPENAI_BASE_URL
echo $MODEL_NAME

📁 第 2 步:创建项目目录

目的:统一管理代码文件,避免散落在根目录。

操作

mkdir -p ~/projects/llm-basics
cd ~/projects/llm-basics

🐍 第 3 步:Python SDK 调用

目的:用 Python SDK 调用 DeepSeek API,验证基础功能。

操作

# 1. 安装 Python 依赖(openai 库)
python -m pip install openai

# 2. 创建 Python SDK 文件
nano call_sdk.py

粘贴代码(直接复制):

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url=os.environ["OPENAI_BASE_URL"],
)

response = client.chat.completions.create(
    model=os.environ["MODEL_NAME"],
    max_tokens=256,
    messages=[{"role": "user", "content": "What is a neural network in one sentence?"}],
)

print("=== Python SDK 输出 ===")
print(response.choices[0].message.content)
print("\n=== 完整响应 ===")
print(response)

运行

python call_sdk.py

预期结果:输出神经网络定义 + SDK 响应对象。


🌐 第 4 步:Python Raw HTTP 调用

目的:绕过 SDK,直接用 HTTP 请求调用 API,理解底层原理。

操作

# 创建 Raw HTTP 文件
nano call_raw.py

粘贴代码(直接复制):

import os
import urllib.request
import json

url = os.environ["OPENAI_BASE_URL"].rstrip("/") + "/chat/completions"

headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {os.environ['DEEPSEEK_API_KEY']}",
}

body = json.dumps({
    "model": os.environ["MODEL_NAME"],
    "max_tokens": 256,
    "messages": [{"role": "user", "content": "What is a neural network in one sentence?"}],
}).encode()

req = urllib.request.Request(url, data=body, headers=headers, method="POST")

try:
    with urllib.request.urlopen(req) as resp:
        result = json.loads(resp.read())
        print("=== Python Raw HTTP 输出 ===")
        print(result["choices"][0]["message"]["content"])
        print("\n=== 完整 JSON 响应 ===")
        print(json.dumps(result, indent=2, ensure_ascii=False))
except Exception as e:
    print("❌ 请求失败:", e)

运行

python call_raw.py

预期结果:输出神经网络定义 + 原始 JSON 响应。


🟦 第 5 步:TypeScript SDK 调用

目的:用 TypeScript SDK 调用 DeepSeek API,覆盖前端/全栈场景。

操作

# 1. 初始化 Node 项目(生成 package.json)
pnpm init -y

# 2. 安装 TypeScript 依赖
pnpm add openai
pnpm add -D typescript ts-node @types/node

# 3. 创建 TypeScript SDK 文件
nano call_sdk.ts

粘贴代码(直接复制):

import OpenAI from "openai";

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

const response = await client.chat.completions.create({
    model: process.env.MODEL_NAME ?? "deepseek-v4-flash",
    max_tokens: 256,
    messages: [{ role: "user", content: "What is a neural network in one sentence?" }],
});

console.log("=== TypeScript SDK 输出 ===");
console.log(response.choices[0].message.content);

运行(用 pnpm 避免 npm/pnpm 冲突):

pnpm exec ts-node call_sdk.ts

预期结果:输出神经网络定义。


🧪 第 6 步:练习(巩固理解)

练习 1:对比 SDK 和 Raw HTTP 响应
  • 运行 python call_sdk.pypython call_raw.py,观察两者输出的完整响应结构(字段完全一致,只是 SDK 封装为对象,Raw HTTP 是 JSON)。

练习 2:故意触发 401 错误
# 临时替换错误 Key
export DEEPSEEK_API_KEY="sk-wrong"
python call_raw.py  # 应看到 "HTTP Error 401: Authorization Required"

# 恢复原 Key
source ~/.bashrc

✅ 最终验证

在电脑上执行以下命令,全部通过即完成:

cd ~/projects/llm-basics
python call_sdk.py   # Python SDK 成功
python call_raw.py   # Python Raw HTTP 成功
pnpm exec ts-node call_sdk.ts  # TypeScript SDK 成功
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐