API 与密钥(0.4)
·
🔑 第 0 步:获取 DeepSeek API 密钥(必须最先做)
目的:获取调用 DeepSeek API 的身份凭证(相当于“密码”)。
操作:
-
打开浏览器访问 👉 DeepSeek 开放平台
-
注册/登录账号(国内手机号即可)
-
进入 API Keys → 点击 创建 API Key
-
复制生成的
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.py和python 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 成功更多推荐

所有评论(0)