第一次和 AI 对话
用一条 curl 命令调用 DeepSeek 或通义千问 API,在终端中实现和 AI 的对话。复制粘贴就能跑。
第一次和 AI 对话
终于到了动手的时候!我们用 curl 调用 AI API,在终端里和 AI 对话。
准备工作
你需要一个 API Key。以下任选一个:
| 平台 | 注册地址 | 获取方式 |
|---|---|---|
| DeepSeek | platform.deepseek.com | 注册后在「API Keys」页面创建 |
| 通义千问 | dashscope.console.aliyun.com | 注册阿里云后开通 DashScope |
调用 DeepSeek
把下面的命令复制到终端中(把 sk-你的密钥 替换成你的真实 API Key):
curl https://api.deepseek.com/chat/completions -H "Authorization: Bearer sk-你的密钥" -H "Content-Type: application/json" -d "{\"model\": \"deepseek-chat\", \"messages\": [{\"role\": \"user\", \"content\": \"用一句话解释什么是 CLI\"}]}"
如果一切顺利,你会看到一大段 JSON 返回。找到 content 字段,里面就是 AI 的回答!
拆解这条命令
curl URL -H "请求头" -d "请求体"
curl:发送网络请求的工具URL:AI 服务的地址-H:设置请求头(告诉服务器你是谁、数据格式是什么)-d:请求体(你发给 AI 的内容,JSON 格式)
就像寄快递:URL 是收件地址,-H 是寄件人信息和包裹说明,-d 是包裹内容。
让输出更好看
加一个 | jq .choices[0].message.content 可以只提取 AI 的回答文字(需要先安装 jq)。
或者更简单,加个 | python -m json.tool 格式化输出。
调用通义千问
curl https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions -H "Authorization: Bearer sk-你的密钥" -H "Content-Type: application/json" -d "{\"model\": \"qwen-turbo\", \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}]}"
用法和 DeepSeek 几乎一样,只是 URL 和模型名不同。这就是 API 的美妙之处——格式统一,换个地址就能用不同的 AI。
保存 API Key 到环境变量
每次都打 API Key 太麻烦了。可以把它存到环境变量里:
macOS / Linux(终端中执行):
export DEEPSEEK_KEY="sk-你的密钥"
Windows PowerShell:
$env:DEEPSEEK_KEY="sk-你的密钥"
然后调用时直接用变量:
curl https://api.deepseek.com/chat/completions -H "Authorization: Bearer $DEEPSEEK_KEY" -H "Content-Type: application/json" -d "{\"model\": \"deepseek-chat\", \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}]}"
永久保存环境变量
注意:环境变量关闭终端后就会消失。想要永久保存:
| 系统 | 方法 |
|---|---|
| macOS | 把 export DEEPSEEK_KEY=... 加到 ~/.zshrc 文件末尾,然后运行 source ~/.zshrc |
| Linux | 把 export DEEPSEEK_KEY=... 加到 ~/.bashrc 文件末尾,然后运行 source ~/.bashrc |
| Windows | 方法一:把 $env:DEEPSEEK_KEY=... 加到 PowerShell 配置文件中(运行 notepad $PROFILE 打开) |
| Windows | 方法二:「系统属性 → 高级 → 环境变量」中手动添加 |
30 秒体验
复制这段到终端,替换 API Key,立刻和 AI 对话:
curl -s https://api.deepseek.com/chat/completions -H "Authorization: Bearer sk-你的密钥" -H "Content-Type: application/json" -d "{\"model\": \"deepseek-chat\", \"messages\": [{\"role\": \"user\", \"content\": \"给我讲一个程序员的笑话\"}]}" | python -m json.tool
恭喜你!你已经学会了用命令行和 AI 对话。接下来的课程会告诉你:怎么让 AI 反过来帮你写命令。