OpenAI SDK 设置
设置您的开发环境,以便使用首选语言的 SDK 调用 OpenAI API。
- 完整接口清单与参数:以 API 开发文档 为准
- 常见报错排查:见 常见错误以及解决办法
1. 创建并导出 API 密钥
开始之前,请通过 令牌说明 创建一个 API 密钥。将密钥存储在安全位置,然后在终端中将其导出为环境变量。
macOS / Linux
export OPENAI_API_KEY="your_api_key_here"Windows
set OPENAI_API_KEY=your_api_key_hereOpenAI SDK 会自动从系统环境中读取您的 API 密钥。建议使用环境变量,避免在代码中直接硬编码密钥。
2. 安装官方 SDK
JavaScript
npm install openai创建 example.mjs:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: "https://api.floxai.io/v1",
});
const response = await client.responses.create({
model: "gpt-4.1",
input: "Write a one-sentence bedtime story about a unicorn.",
});
console.log(response.output_text);node example.mjsPython
pip install openai创建 example.py:
from openai import OpenAI
import os
client = OpenAI(
base_url="https://api.uniapi.io/v1",
api_key=os.getenv("OPENAI_API_KEY"),
)
response = client.chat.completions.create(
model="gpt-4.1",
messages=[
{
"role": "user",
"content": "Write a one-sentence bedtime story about a unicorn."
}
]
)
print(response.choices[0].message.content)python example.py.NET
dotnet add package OpenAIusing OpenAI.Chat;
ChatClient client = new(
model: "gpt-4.1",
apiKey: Environment.GetEnvironmentVariable("OPENAI_API_KEY"),
baseUrl: "https://api.uniapi.io/v1"
);
ChatCompletion completion = client.CompleteChat("Say 'this is a test.'");
Console.WriteLine($"[ASSISTANT]: {completion.Content[0].Text}");Java
Maven 依赖:
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
<version>0.31.0</version>
</dependency>import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.*;
OpenAIClient client = OpenAIOkHttpClient.fromEnv();
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.addUserMessage("Say this is a test")
.model(ChatModel.O3_MINI)
.build();
ChatCompletion chatCompletion = client.chat().completions().create(params);Go
import "github.com/openai/openai-go"package main
import (
"context"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
client := openai.NewClient(
option.WithAPIKey("My API Key"),
option.WithBaseURL("https://api.uniapi.io/v1"),
)
chatCompletion, err := client.Chat.Completions.New(
context.TODO(), openai.ChatCompletionNewParams{
Messages: openai.F([]openai.ChatCompletionMessageParamUnion{
openai.UserMessage("Say this is a test"),
}),
Model: openai.F(openai.ChatModelGPT4o),
},
)
if err != nil {
panic(err.Error())
}
println(chatCompletion.Choices[0].Message.Content)
}3. 社区库
以下库由社区维护,OpenAI 不验证其正确性或安全性,使用时请自行评估。
| 语言 | 库 | 作者 |
|---|---|---|
| C#/.NET | Betalgo.OpenAI | Betalgo |
| C#/.NET | OpenAI-API-dotnet | OkGoDoIt |
| C#/.NET | OpenAI-DotNet | RageAgainstThePixel |
| C++ | liboai | D7EAD |
| Clojure | openai-clojure | wkok |
| Crystal | openai.cr | sferik |
| Dart/Flutter | openai | anasfik |
| Delphi | DelphiOpenAI | HemulGM |
| Elixir | openai.ex | mgallo |
| Go | go-gpt3 | sashabaranov |
| Java | simple-openai | Sashir Estela |
| Java | Spring AI | — |
| Julia | OpenAI.jl | rory-linehan |
| Kotlin | openai-kotlin | Mouaad Aallam |
| Node.js | openai-api | Njerschow |
| PHP | orhanerday/open-ai | orhanerday |
| PHP | openai-php | openai-php |
| Python | chronology | OthersideAI |
| R | rgpt3 | ben-aaron188 |
| Ruby | ruby-openai | alexrudall |
| Rust | async-openai | 64bit |
| Scala | openai-scala-client | cequence-io |
| Swift | OpenAI | MacPaw |
| Unity | com.openai.unity | RageAgainstThePixel |
| Unreal Engine | OpenAI-Api-Unreal | KellanM |
4. 其他 OpenAI 仓库
- tiktoken — 计数令牌
- simple-evals — 简单评估库
- mle-bench — 评估机器学习工程师代理的库
- gym — 强化学习环境
- swarm — 教育编排仓库