OpenAI API SDK 与命令行工具
接入 OpenAI API 可以使用官方 SDK、命令行工具、Agents SDK,也可以使用熟悉的 HTTP 客户端直接构造请求。应用中的直接模型请求通常使用 SDK;需要终端流水线时使用 CLI;需要编排工具和智能体交接时使用 Agents SDK。
创建并导出 API 密钥
先在控制台创建密钥,并妥善保存。SDK 会自动读取 OPENAI_API_KEY 环境变量。下面的占位符需要在本机替换为自己的密钥,不要将真实值写入示例仓库。
macOS 或 Linux 当前终端:
Bash
## 设置当前终端的API密钥环境变量
export OPENAI_API_KEY="your_api_key_here"
Windows PowerShell 持久保存:
PowerShell
## 将API密钥写入用户环境变量;供新打开的终端读取
setx OPENAI_API_KEY "your_api_key_here"
PowerShell 的 setx 不会更新已经运行的终端。保存后可新开终端再运行;如果只需在当前会话设置,可使用 $env:OPENAI_API_KEY = "your_api_key_here"。
安装官方 SDK
以下示例都调用 Responses API。示例中的输入文本保留原文,以便与官方多语言代码核对;中文注释说明客户端初始化、请求和输出。
JavaScript / TypeScript
服务端 JavaScript 可在 Node.js、Deno、Bun 等环境中使用官方 openai-node。用 npm 安装:
Bash
## 安装JavaScript/TypeScript官方SDK
npm install openai
保存为 example.mjs:
JavaScript
// 发送首次Responses请求;从环境读取凭证,发送请求并读取响应
import OpenAI from "openai";
// 创建客户端;使用 OPENAI_API_KEY 环境变量,不在代码中写入真实密钥
const client = new OpenAI();
const response = await client.responses.create({
model: "gpt-6-astra",
input: "Write a one-sentence bedtime story about a unicorn.",
});
// 显示本次结果;实际文本与示例不必逐字相同
console.log(response.output_text);
运行 node example.mjs;Deno、Bun 使用各自对应的运行方式。
Python
官方 openai-python 可通过 pip 安装:
Bash
## 安装Python官方SDK
pip install openai
保存为 example.py,执行 python example.py:
Python
## 发送首次Responses请求;从环境读取凭证,发送请求并读取响应
from openai import OpenAI
## 创建客户端;使用 OPENAI_API_KEY 环境变量,不在代码中写入真实密钥
client = OpenAI()
response = client.responses.create(
model="gpt-6-astra",
input="Write a one-sentence bedtime story about a unicorn.",
)
## 显示本次结果;实际文本与示例不必逐字相同
print(response.output_text)
C# / .NET
OpenAI 与 Microsoft 合作提供官方支持的 C# 客户端。通过 .NET CLI 添加 NuGet 包:
Bash
## 为.NET项目添加OpenAI依赖
dotnet add package OpenAI
C# / .NET
// 使用.NET客户端创建Responses响应
using OpenAI.Responses;
#pragma warning disable OPENAI001
string key = Environment.GetEnvironmentVariable("OPENAI_API_KEY")!;
// 创建客户端;使用 OPENAI_API_KEY 环境变量,不在代码中写入真实密钥
ResponsesClient client = new(key);
ResponseResult response = await client.CreateResponseAsync(
"gpt-6-astra",
"Say 'this is a test.'"
);
// 显示本次结果;实际文本与示例不必逐字相同
Console.WriteLine($"[ASSISTANT]: {response.GetOutputText()}");
Java
官方页面提供 Java API 客户端及 Maven 配置,并将该 helper 标记为 Beta。下面保留原页的依赖版本与调用形式:
Maven XML
<!-- 配置Java客户端依赖:声明依赖坐标和版本 -->
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
<version>4.89.0</version>
</dependency>
Java
// 使用Java客户端创建Responses响应;从环境读取凭证,发送请求并读取响应
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;
public class Main {
public static void main(String[] args) {
// 创建客户端;使用 OPENAI_API_KEY 环境变量,不在代码中写入真实密钥
OpenAIClient client = OpenAIOkHttpClient.fromEnv();
ResponseCreateParams params =
ResponseCreateParams.builder().input("Say this is a test").model("gpt-6-astra").build();
Response response = client.responses().create(params);
response.output().stream()
.flatMap(item -> item.message().stream())
.flatMap(message -> message.content().stream())
.flatMap(content -> content.outputText().stream())
.forEach(outputText -> System.out.println(outputText.text()));
}
}
项目说明见 openai-java。
Go
官方页面提供 Go API 客户端,并将该 helper 标记为 Beta。原页使用 v3 模块路径:
Go
// 导入Go官方SDK模块
import (
"github.com/openai/openai-go/v3" // imported as openai
)
Go
// 使用Go客户端创建Responses响应;从环境读取凭证,发送请求并读取响应
package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/responses"
)
func main() {
// 创建客户端;使用 OPENAI_API_KEY 环境变量,不在代码中写入真实密钥
client := openai.NewClient()
resp, err := client.Responses.New(context.TODO(), responses.ResponseNewParams{
Model: "gpt-6-astra",
Input: responses.ResponseNewParamsInputUnion{OfString: openai.String("Say this is a test")},
})
if err != nil {
panic(err.Error())
}
// 显示本次结果;实际文本与示例不必逐字相同
fmt.Println(resp.OutputText())
}
项目说明见 openai-go。
Ruby
使用官方 openai-ruby。在 Gemfile 中加入依赖,然后用 Bundler 安装:
Ruby
## 在Gemfile中声明Ruby客户端依赖
gem "openai"
保存为 example.rb,执行 ruby example.rb:
Ruby
## 使用Ruby客户端创建Responses响应;从环境读取凭证,发送请求并读取响应
require "openai"
## 创建客户端;使用 OPENAI_API_KEY 环境变量,不在代码中写入真实密钥
openai = OpenAI::Client.new
response = openai.responses.create(
model: "gpt-6-astra",
input: "Write a one-sentence bedtime story about a unicorn."
)
## 显示本次结果;实际文本与示例不必逐字相同
puts(response.output_text)
OpenAI CLI
希望直接在终端调用 API 时,可以安装生成式 openai 命令行工具:
Bash
## 通过Homebrew安装OpenAI命令行工具
brew install openai/tools/openai
OpenAI CLI / Bash
## 创建响应并提取助手文本
openai responses create \
--model "gpt-6-astra" \
--input "Write a one-sentence bedtime story about a unicorn." \
--raw-output \
--transform 'output.#(type=="message").content.0.text'
CLI 可配合 jq 等工具完成文件数据提取、图像或语音生成及 API 流水线。完整命令模式见本章的 OpenAI CLI。
使用 Agents SDK
直接 API 请求使用上面的客户端即可。如果应用需要用代码组织智能体、工具、交接、防护机制、追踪或沙箱执行,可使用 Agents SDK。
Azure OpenAI 客户端库
Microsoft Azure 团队维护适用于 OpenAI API 与 Azure OpenAI 的客户端库。具体连接配置和适用范围以相应项目说明为准:
社区客户端库
下面的项目由开发者社区维护。OpenAI 不验证这些项目的正确性或安全性,选用前需要自行评估。API 变更也可关注 OpenAPI 规范仓库。
Clojure
- openai-clojure,维护者:wkok
Dart/Flutter
Delphi
- DelphiOpenAI,维护者:HemulGM
Elixir
Kotlin
PHP
Rust
- async-openai,维护者:64bit
Scala
Swift
- AIProxySwift,维护者:Lou Zell
- OpenAIKit,维护者:dylanshine
- OpenAI,维护者:MacPaw
Unity
Unreal Engine
其他 OpenAI 项目
| 项目 | 用途 |
|---|---|
| tiktoken | 词元计数 |
| simple-evals | 轻量评测 |
| mle-bench | 评测机器学习工程智能体 |
| gym | 强化学习相关接口与工具 |
| swarm | 教学用途的多智能体编排项目 |

TRAE-AI编程


更多建议: