本集要做成

先在网页端问一句话,再把发送动作交给程序;安全保存 API Key,收到 DeepSeek 回复后亲手修改问题重跑。

上一集,我们亲手和 AI 聊了一轮;这一集只换一个角色:让程序替你发送问题。

这一集,只升级一件事

  • 成果:让自己的程序第一次向 DeepSeek 发问并收到回复。
  • 用时:基础工具已装好约 10~15 分钟;第一次安装工具需要额外时间。
  • 成功标志:终端里出现 DeepSeek 返回的文字。

做过第 00 集,可以把下面的网页步骤当作一分钟热身;第一次看到本系列也没关系,这篇仍然保留了独立跑通所需的最短路线。

开始前只需准备 Windows 电脑、稳定网络和 DeepSeek 账号。还没有 Python 或 VS Code 也没关系,第 2 节会带你一次检查完。

1. 先在网页里问同一句话(用过可跳过)

做过第 00 集,这一步会很熟悉;第一次来的读者,用一分钟完成热身即可。

打开 DeepSeek 网页端,登录后进入一个新对话。

DeepSeek 首页同时提供网页聊天和开放平台入口(页面样式可能变化)

输入:

text可复制后修改
你好,写首诗

发送后,你会在网页里看到一段回复。

先记住网页端的输入和回复,稍后用 Python 做对照
网页端是“你问,AI 回答”;接下来只把“你”换成程序。

你的回答不必和截图一模一样。大模型不是复读机,只要它围绕问题正常回复即可。

2. 开始前,只确认四件事

接下来只借三件工具完成实验:VS Code 放代码,PowerShell 输入命令,Python 运行代码。它们都不是今天的主角;已经装好的不要重装。

本集不要求安装 VS Code 的 Python 扩展。公司电脑如果限制安装软件,请先遵守所在组织的软件准入流程,不要绕过安全策略。

2.1 缺什么,只补什么

安装完成后,关闭并重新打开 VS Code。已经装好两者的读者直接进入下一步。

2.2 一次验收三个工具

Win + E 打开文件资源管理器,在桌面创建一个空文件夹:

text可复制后修改
deepseek-demo

打开 VS Code,点击“文件 → 打开文件夹”,选择 deepseek-demo。如果 VS Code 询问是否信任此文件夹,只在确认它是刚创建的空目录时选择信任。

在 VS Code 中点击“终端 → 新建终端”。底部出现的命令窗口就是终端;本篇使用 Windows 自带的 PowerShell,提示符通常以 PS 开头。如果不是,点击终端右上角 + 旁的下拉箭头,选择“默认配置文件 → PowerShell”,再新建终端。

依次执行:

powershell可复制后修改
Get-Location
python --version

看到这个就算过关: 第一条返回的路径以 deepseek-demo 结尾,第二条显示 Python 3.x.x。代码框上方的 powershell 是标签,终端里的 PS C:\...> 是提示符,都不用复制。第一次通过 Python Install Manager 启动时,系统可能还会完成一次运行环境安装。

2.3 安装本集唯一的新工具

下面安装 SDK,也就是别人整理好的代码工具箱:

powershell可复制后修改
python -m pip install openai
python -c "from openai import OpenAI; print('openai ready')"

看到这个就算过关: 最后一条命令打印 openai ready。工具名虽然叫 openai,但我们没有换模型;这里只是借它兼容的调用方式向 DeepSeek 发请求。

如果 python 找不到或打开了应用商店,请先按上面的 Python 官方 Windows 指南排错,再重新打开 VS Code;此时不要继续排查 API Key。

2.4 确认 DeepSeek 账户可以调用

进入 DeepSeek 开放平台(官网域名:platform.deepseek.com),确认账户里有少量可用余额。余额可能来自赠送,也可能来自充值;已有可用余额时,不需要为了跟教程额外充值。

裁切后的用量页:只需确认账户里有可用余额

截图展示的是其中一种余额来源;你的页面数字不必相同。历史用量与本次实验无关。

本次实验会产生少量费用。具体价格可能变化,以 DeepSeek 模型与价格页面 为准。

准备完成:文件夹、终端、Python、代码工具箱和 DeepSeek 账户都通过了最小检查。

电脑和账户都就位了。接下来,给程序一张可以进入 DeepSeek 的“门票”。

3. 创建一枚 API Key

接下来要让程序获得调用资格。

  • API:程序之间传话的窗口。
  • API Key:打开这个窗口的门票,也和账户计费有关。

进入开放平台的 API keys 页面,为本次实验创建一枚独立 Key。

裁切后的创建弹窗:为本次实验创建一枚独立 API Key

在弹窗里填写一个容易辨认的名称并点击“创建”。背景里的历史 Key 列表不需要跟着操作。

完整 Key 通常只展示一次,请先保存到安全的位置。看到新 Key,就说明这一步完成了。

不要把真实 Key 放进代码、博客截图、Git 仓库或可以转发的聊天记录。 如果一枚 Key 曾经公开,最稳妥的做法是立即删除并重新创建,而不是只给截图打码。

4. 把 Key 交给当前终端

我们把 Key 暂时放进“环境变量”——可以把它理解成当前终端专用的小储物格。代码只读取这个储物格,不把 Key 写进文件。

下面的命令适用于 PowerShell。粘贴后,Key 会以星号显示,不会出现在命令历史里:

powershell可复制后修改
$env:DEEPSEEK_API_KEY = [System.Net.NetworkCredential]::new(
    "",
    (Read-Host "请粘贴 DeepSeek API Key" -AsSecureString)
).Password

按回车后,做一次不会泄露 Key 的自检:

powershell可复制后修改
python -c "import os; print(bool(os.getenv('DEEPSEEK_API_KEY')))"

看到 True,说明 Python 已经能读取 Key。

如果看到 False,请在同一个终端重新设置环境变量。关闭这个终端后,临时设置会失效;不要用命令打印 Key 本身。

5. 创建最小 Python 程序

回到 VS Code 左侧资源管理器,在刚才打开的 deepseek-demo 中新建 deepseek.py

复制下面的代码。第一次只需要认出“问题写在哪里”和“回复从哪里打印”,其余内容先照抄。messages 里的文字会发送到 DeepSeek 云端,不要放公司资料、账号凭证或个人隐私。

python可复制后修改
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com",
)

response = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[
        {"role": "user", "content": "你好,写首诗"},
    ],
)

print(response.choices[0].message.content)

deepseek-v4-pro 是本次请求使用的模型名称。模型名称可能更新,今天先照着写,不需要研究不同型号。

Ctrl + S 保存;文件标签上的小圆点消失,就代表已经保存。然后在底部 PowerShell 中执行:

powershell可复制后修改
Get-ChildItem .\deepseek.py

看到文件名,说明代码确实保存在当前实验文件夹。离成功只差一次运行。

6. 运行,再亲手改一句

6.1 收到第一条回复

确认仍在刚才设置 Key 的底部 PowerShell 中执行,不要把这条命令粘贴进 deepseek.py

powershell可复制后修改
python deepseek.py

等待几秒。终端里只要出现一段围绕“写首诗”的回复,就说明程序调用成功。

下面保留的是一次真实运行记录。公开版只裁出终端区域;你看到回复出现即可,不必追求诗句完全一致。

真实运行记录的终端区域:程序已经收到 DeepSeek 回复
核心成功标志:不是代码“看起来没问题”,而是终端真的收到了模型回复。

6.2 改一句,再运行一次

把代码中的问题改成:

python可复制后修改
{"role": "user", "content": "你好,用三句话介绍你自己"},

Ctrl + S 保存后再次执行:

powershell可复制后修改
python deepseek.py

看到回复跟着问题发生变化,你就不只是在复制代码,而是真的会改、会运行了。

到这里,本集的核心实验已经完成。 后面的原理和排错按需阅读,不会改变你刚刚取得的成功。

7. 成功后,再用大白话看原理

刚才发生的事情可以压缩成四步:写问题、发请求、模型处理、收到回复。

刚才的调用链:你写问题,程序发请求,DeepSeek 处理,终端接回复

图里最重要的是箭头方向:Python 把问题发出去,再把回复接回来。

现在回头看代码里的五个位置,会轻松很多:

  • api_key:你的调用凭证,从环境变量读取。
  • base_url:请求要发送到哪个服务地址。
  • model:这次使用哪个模型。
  • messages:准备交给模型的对话内容。
  • response:模型返回、且程序可以继续处理的结果。

因此可以把整个过程记成一句话:

模型 API = 带着凭证发问题 + 等待模型处理 + 接收程序可读取的回复。

官方示例可能还会出现思考强度、流式输出等参数。它们不是第一次调用的必修项,等后续实验真的需要时再加。

8. 如果没成功,只查当前这一层

看不到 Python 版本号

说明系统还找不到 Python。先按第 2 节的 Python 官方 Windows 指南完成安装或命令别名排错,再重新打开 VS Code;此时不要继续排查 Key 或模型。

提示 No module named 'openai'

说明 Python 已经启动,但代码工具箱还没装进当前环境。

如果看到这个错误,只需安装 openai 工具包

回到运行脚本的同一个终端,执行:

powershell可复制后修改
python -m pip install openai

Key 自检是 False,或者出现 401

先在当前终端重新设置环境变量,并确认自检输出 True。如果仍是 401,再检查 Key 是否复制完整、是否已被删除;不要把 Key 发给别人帮你检查。

出现 402

账户余额不足。回到开放平台确认余额,完成小额充值后重试。

出现 429

短时间内请求太多。先稍等片刻再试;自动重试留到正式项目再讲。

完整错误码可以参考 DeepSeek 官方错误码文档。模型名称和参数可能更新,复现实验时请以 DeepSeek 官方 API 文档 为准。

9. 今天你已经完成了什么

如果终端成功出现模型回复,你已经完成了三件事:

  1. 用网页和 Python 分别发送了同一个问题。
  2. 用环境变量保存 Key,没有把凭证写进代码。
  3. 修改问题并再次运行,确认程序真的能调用模型。
本集通关:程序发出请求,Key 没写进代码,终端收到回复

这次架构变化很小,却很关键:原本需要人点击网页的对话,现在已经变成程序可以主动发起的调用。

下一集只增加一个变量:模型会回答了,怎样让本地 AI 工具真正替我们创建一个文件?