OpenAI API는 텍스트 생성, 자연어 처리, 컴퓨터 비전 등 다양한 작업에 최첨단 AI 모델을 사용할 수 있도록 일관된 인터페이스를 제공합니다. 먼저 API 키를 만들고 첫 API 요청을 보내세요. 그런 다음 텍스트 생성, 이미지 분석, 에이전트 구축 등을 직접 시도해 보세요.
API 키를 만들고 환경 변수로 내보내기
API 키 만들기
시작하기 전에 대시보드에서 API 키를 만드세요. 이 키로 API에 안전하게 접근할 수 있습니다. 키는 컴퓨터의 .zshrc 파일이나 다른 텍스트 파일 등 안전한 곳에 보관하세요. 키를 만든 후 터미널에서 환경 변수로 내보내세요.
export OPENAI_API_KEY="your_api_key_here"setx OPENAI_API_KEY "your_api_key_here"각 OpenAI SDK는 시스템 환경 변수에서 API 키를 자동으로 읽습니다.
OpenAI SDK 설치 및 API 호출
Node.js, Deno, Bun과 같은 서버 측 JavaScript 환경에서 OpenAI API를 호출할 때는 공식 TypeScript 및 JavaScript용 OpenAI SDK를 사용할 수 있습니다. 먼저 npm이나 선호하는 패키지 관리자로 SDK를 설치하세요.
npm install openaiOpenAI SDK를 설치한 다음 example.mjs 파일을 만들고 아래 예제 코드를 복사해 붙여 넣으세요.
import OpenAI from "openai";
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에서는 해당 환경에 맞는 명령어를 사용하세요). 잠시 후 API 요청 결과가 출력됩니다.
SDK의 다른 기능과 옵션은 라이브러리의 GitHub README에서 확인하세요.
Python에서 OpenAI API를 호출할 때는 공식 Python용 OpenAI SDK를 사용할 수 있습니다. 먼저 pip으로 SDK를 설치하세요.
pip install openaiOpenAI SDK를 설치한 다음 example.py 파일을 만들고 아래 예제 코드를 복사해 붙여 넣으세요.
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-6-astra",
input="Write a one-sentence bedtime story about a unicorn.",
)
print(response.output_text)python example.py 명령어로 코드를 실행하세요. 잠시 후 API 요청 결과가 출력됩니다.
라이브러리의 GitHub README에서 SDK의 다양한 기능과 옵션을 확인하세요.
OpenAI는 Microsoft와 협력해 C#용 API 클라이언트를 제공하고 공식적으로 지원합니다. .NET CLI를 사용해 NuGet에서 이 클라이언트를 설치할 수 있습니다.
dotnet add package OpenAI
다음은 Responses API에 간단한 요청을 보내는 예제입니다.
using OpenAI.Responses;
#pragma warning disable OPENAI001
string key = Environment.GetEnvironmentVariable("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()}");OpenAI는 Java용 API 라이브러리를 현재 베타 버전으로 제공합니다. 다음과 같이 Maven 종속성을 추가할 수 있습니다.
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
<version>4.103.0</version>
</dependency>다음은 Responses API에 간단한 요청을 보내는 예제입니다.
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) {
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()));
}
}Java에서 OpenAI API를 사용하는 방법을 더 알아보려면 아래 GitHub 레포지토리를 참고하세요.
라이브러리의 GitHub README에서 SDK의 다양한 기능과 옵션을 살펴보세요.
Go SDK를 사용해 Responses API에 첫 요청을 보내세요.
package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/responses"
)
func main() {
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())
}Go에서 OpenAI API를 사용하는 방법을 자세히 알아보려면 아래 GitHub 레포지토리를 확인하세요.
라이브러리의 GitHub README에서 SDK의 다양한 기능과 옵션을 살펴보세요.
Ruby에서 OpenAI API를 호출할 때는 공식 Ruby용 OpenAI SDK를 사용할 수 있습니다. 먼저 애플리케이션에 gem을 추가하세요.
gem "openai"OpenAI SDK를 설치한 후 example.rb 파일을 만들고 아래 예제 코드를 복사해 붙여 넣으세요.
require "openai"
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)ruby example.rb 명령어로 코드를 실행하세요. 잠시 후 API 요청 결과가 출력됩니다.
라이브러리의 GitHub README에서 SDK의 다른 기능과 옵션을 확인하세요.
Responses API로 앱 개발을 시작하세요.
프롬프트 작성법, 메시지 역할, 대화형 앱 개발 방법을 자세히 알아보세요.
크레딧을 추가하고 개발 계속하기
결제 페이지로 이동
앱을 더 빠르게 출시하는 데 도움이 되는 도구와 문서를 살펴보세요.
대화형 프롬프트를 작성하고 테스트한 후 앱에 통합하세요.
Agents SDK로 에이전트 워크플로우를 구성하고 실행하세요. 실행 과정도 모니터링할 수 있습니다.
이미지와 파일 분석
이미지 URL, 업로드한 파일 또는 PDF 문서를 모델에 직접 보내 텍스트를 추출하거나 콘텐츠를 분류하거나 시각적 요소를 감지하세요.
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.responses.create({
model: "gpt-6-astra",
input: [
{
role: "user",
content: [
{
type: "input_text",
text: "What is in this image?",
},
{
type: "input_image",
image_url:
"https://openai-documentation.vercel.app/images/cat_and_otter.png",
detail: "auto",
},
],
},
],
});
console.log(response.output_text);import OpenAI from "openai";
const client = new OpenAI();
const response = await client.responses.create({
model: "gpt-6-astra",
input: [
{
role: "user",
content: [
{
type: "input_text",
text: "Analyze the letter and provide a summary of the key points.",
},
{
type: "input_file",
file_url: "https://www.berkshirehathaway.com/letters/2024ltr.pdf",
},
],
},
],
});
console.log(response.output_text);import fs from "fs";
import OpenAI from "openai";
const client = new OpenAI();
const file = await client.files.create({
file: fs.createReadStream("fixtures/draconomicon.pdf"),
purpose: "user_data",
});
const response = await client.responses.create({
model: "gpt-6-astra",
input: [
{
role: "user",
content: [
{
type: "input_file",
file_id: file.id,
},
{
type: "input_text",
text: "What is the first dragon in the book?",
},
],
},
],
});
console.log(response.output_text);모델에 이미지를 입력해 그 내용을 파악하는 방법을 알아보세요.
모델에 파일을 입력해 문서의 내용을 파악하는 방법을 알아보세요.
도구로 모델 기능 확장하기
모델에 도구를 연결하면 모델이 외부 데이터와 함수에 접근할 수 있습니다. 웹 검색이나 파일 검색 같은 기본 제공 도구를 사용하거나, API 호출, 코드 실행, 타사 시스템 연동에 필요한 도구를 직접 정의하세요.
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.responses.create({
model: "gpt-6-astra",
tools: [{ type: "web_search" }],
input: "What was a positive news story from today?",
});
console.log(response.output_text);import OpenAI from "openai";
const openai = new OpenAI();
const response = await openai.responses.create({
model: "gpt-6-astra",
input: "What is deep research by OpenAI?",
tools: [
{
type: "file_search",
vector_store_ids: ["<vector_store_id>"],
},
],
});
console.log(response);import OpenAI from "openai";
const client = new OpenAI();
const response = await client.responses.create({
model: "gpt-6-astra",
instructions:
"You are a personal math tutor. When asked a math question, write and run code to answer the question.",
tools: [
{
type: "code_interpreter",
container: { type: "auto" },
},
],
input: "I need to solve the equation 3x + 11 = 14. Can you help me?",
});
console.log(response.output_text);import OpenAI from "openai";
const client = new OpenAI();
const tools = [
{
type: "function",
name: "get_weather",
description: "Get current temperature for a given location.",
parameters: {
type: "object",
properties: {
location: {
type: "string",
description: "City and country e.g. Bogotá, Colombia",
},
},
required: ["location"],
additionalProperties: false,
},
strict: true,
},
];
const response = await client.responses.create({
model: "gpt-6-astra",
input: [
{ role: "user", content: "What is the weather like in Paris today?" },
],
tools,
});
console.log(response.output[0]);curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-6-astra",
"tools": [
{
"type": "mcp",
"server_label": "openai_docs",
"server_description": "Search and read the public OpenAI documentation.",
"server_url": "https://developers.openai.com/mcp",
"require_approval": "never"
}
],
"input": "Search the OpenAI docs for Responses API streaming and return the relevant links."
}'웹 검색과 파일 검색 등 강력한 기본 제공 도구를 살펴보세요.
개발자가 작성한 코드를 모델이 호출하도록 설정하는 방법을 알아보세요.
응답 스트리밍과 실시간 앱 개발
서버가 보내는 스트리밍 이벤트를 사용하면 결과가 생성되는 대로 표시할 수 있습니다. 대화형 음성 앱이나 텍스트, 오디오, 이미지를 입력으로 받는 앱을 개발하려면 Realtime API를 사용하세요.
import { OpenAI } from "openai";
const client = new OpenAI();
const stream = await client.responses.create({
model: "gpt-6-astra",
input: [
{
role: "user",
content: "Say 'double bubble bath' ten times fast.",
},
],
stream: true,
});
for await (const event of stream) {
console.log(event);
}서버 전송 이벤트로 모델 응답을 스트리밍해 사용자에게 빠르게 전달하세요.
WebRTC 또는 WebSockets로 지연 시간이 매우 짧은 음성-음성 변환 AI 앱을 개발하세요.
에이전트 구축
OpenAI 플랫폼에서 사용자를 대신해 작업을 수행하는 에이전트를 구축하세요. 예를 들어 에이전트가 컴퓨터를 제어할 수 있습니다. Agents SDK를 사용해 서버에서 오케스트레이션 로직을 구현하세요.
import { Agent, run } from "@openai/agents";
const spanishAgent = new Agent({
name: "Spanish agent",
instructions: "You only speak Spanish.",
});
const englishAgent = new Agent({
name: "English agent",
instructions: "You only speak English",
});
const triageAgent = new Agent({
name: "Triage agent",
instructions:
"Handoff to the appropriate agent based on the language of the request.",
handoffs: [spanishAgent, englishAgent],
});
const result = await run(triageAgent, "Hola, ¿cómo estás?");
console.log(result.finalOutput);OpenAI 플랫폼을 활용해 다양한 작업을 수행하는 강력한 AI 에이전트를 구축하는 방법을 알아보세요.