A API da OpenAI oferece uma interface consistente para modelos de IA de última geração para geração de texto, processamento de linguagem natural, visão computacional e muito mais. Comece criando uma chave de API e fazendo sua primeira chamada à API. Descubra como gerar texto, analisar imagens, criar agentes e muito mais.
Antes de começar, crie uma chave de API no painel. Você vai usá-la para
acessar a API com segurança. Armazene a chave
em um local seguro, como um arquivo
.zshrc ou
outro arquivo de texto no seu computador. Depois de gerar uma chave de API, exporte-a
como uma variável de ambiente
no seu terminal.
macOS / Linux
Exporte uma variável de ambiente em sistemas macOS ou Linux
1export OPENAI_API_KEY="your_api_key_here"
Windows
Exporte uma variável de ambiente no PowerShell
1setxOPENAI_API_KEY"your_api_key_here"
Cada OpenAI SDK lê automaticamente sua chave de API do ambiente do sistema.
Instale o OpenAI SDK e faça uma chamada à API
JavaScript
Para usar a API da OpenAI em ambientes JavaScript no servidor, como Node.js, Deno ou Bun, você pode usar o OpenAI SDK oficial para TypeScript e JavaScript. Comece instalando o SDK com npm ou com seu gerenciador de pacotes preferido:
Instale o OpenAI SDK com npm
1npminstallopenai
Com o OpenAI SDK instalado, crie um arquivo chamado example.mjs e copie o código de exemplo para ele:
Teste uma requisição básica à API
1
2
3
4
5
6
7
8
9import OpenAI from"openai";constclient=newOpenAI();constresponse=await client.responses.create({ model: "gpt-6-astra", input: "Write a one-sentence bedtime story about a unicorn.",});console.log(response.output_text);
Execute o código com node example.mjs (ou o comando equivalente para Deno ou Bun). Em alguns instantes, você deverá ver o resultado da sua requisição à API.
Em colaboração com a Microsoft, a OpenAI oferece um cliente de API para C# com suporte oficial. Você pode instalá-lo a partir do NuGet usando a CLI do .NET.
1
2
3
4
5
6
7
8
9
10
11
12usingOpenAI.Responses;#pragmawarningdisable OPENAI001stringkey= Environment.GetEnvironmentVariable("OPENAI_API_KEY")!;ResponsesClientclient=new(key);ResponseResultresponse=await client.CreateResponseAsync("gpt-6-astra","Say 'this is a test.'");Console.WriteLine($"[ASSISTANT]: {response.GetOutputText()}");
Java
A OpenAI oferece uma biblioteca auxiliar para a API na linguagem de programação Java, atualmente em beta. Você pode incluir a dependência do Maven usando a seguinte configuração:
A OpenAI oferece uma biblioteca auxiliar para usar a API na linguagem de programação Go, atualmente em beta. Você pode importar a biblioteca usando o código abaixo:
1
2
3import ("github.com/openai/openai-go/v3"// imported as openai)
Uma primeira requisição à Responses API seria assim:
Para usar a API da OpenAI em Ruby, você pode usar o OpenAI SDK para Ruby oficial. Comece adicionando a gem ao seu aplicativo:
Instale o OpenAI SDK com o Bundler
1gem "openai"
Com o OpenAI SDK instalado, crie um arquivo chamado example.rb e copie o código de exemplo para ele:
Teste uma requisição básica à API
1
2
3
4
5
6
7
8
9
10require"openai"openai=OpenAI::Client.newresponse= openai.responses.create(model:"gpt-6-astra",input:"Write a one-sentence bedtime story about a unicorn.")puts(response.output_text)
Execute o código com ruby example.rb. Em alguns instantes, você deverá ver o resultado da sua requisição à API.
Parabéns por fazer uma requisição de teste gratuita à API! Comece a desenvolver aplicativos reais com limites mais altos e use nossos modelos para gerar texto, áudio, imagens, vídeos e muito mais.
Explore ferramentas e documentação que ajudam você a lançar seus projetos mais rápido:
Envie URLs de imagens, arquivos carregados ou documentos PDF diretamente ao modelo para extrair texto, classificar conteúdo ou detectar elementos visuais.
Dê ao modelo acesso a dados e funções externos adicionando ferramentas. Use ferramentas integradas, como pesquisa na Web ou pesquisa de arquivos, ou defina suas próprias ferramentas para chamar APIs, executar código ou integrar sistemas de terceiros.
Pesquisa na Web
Use a pesquisa na Web em uma resposta
JavaScript
1
2
3
4
5
6
7
8
9
10import OpenAI from"openai";constclient=newOpenAI();constresponse=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);
1
2
3
4
5
6
7
8
9
10
11from openai import OpenAIclient = OpenAI()response = client.responses.create( model="gpt-6-astra", tools=[{"type": "web_search"}], input="What was a positive news story from today?",)print(response.output_text)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18using OpenAI.Responses;#pragma warning disable OPENAI001string key = Environment.GetEnvironmentVariable("OPENAI_API_KEY")!;string vectorStoreId = "<vector_store_id>";ResponsesClient client = new(key);CreateResponseOptions options = new() { Model = "gpt-6-astra" };options.Tools.Add( ResponseTool.CreateFileSearchTool([vectorStoreId]));options.InputItems.Add( ResponseItem.CreateUserMessageItem("What is deep research by OpenAI?"));ResponseResult response = await client.CreateResponseAsync(options);Console.WriteLine(response.GetOutputText());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16require "openai"openai = OpenAI::Client.newresponse = openai.responses.create( model: "gpt-6-astra", input: "What is deep research by OpenAI?", tools: [ { type: "file_search", vector_store_ids: ["<vector_store_id>"] } ])puts(response)
Code Interpreter
Use o Code Interpreter em uma resposta
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17import OpenAI from"openai";constclient=newOpenAI();constresponse=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);
1
2
3
4
5
6
7
8
9
10
11
12from openai import OpenAIclient = OpenAI()response = 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?",)print(response.output_text)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25package mainimport ( "context" "fmt" "github.com/openai/openai-go/v3" "github.com/openai/openai-go/v3/responses")func main() { client := openai.NewClient() response, err := client.Responses.New(context.Background(), responses.ResponseNewParams{ Model: "gpt-6-astra", Instructions: openai.String("You are a personal math tutor. When asked a math question, write and run code to answer the question."), Tools: []responses.ToolUnionParam{ responses.ToolParamOfCodeInterpreter(responses.ToolCodeInterpreterContainerCodeInterpreterContainerAutoParam{}), }, Input: responses.ResponseNewParamsInputUnion{OfString: openai.String("I need to solve the equation 3x + 11 = 14. Can you help me?")}, }) if err != nil { panic(err) } fmt.Println(response.OutputText())}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20import com.openai.client.OpenAIClient;import com.openai.client.okhttp.OpenAIOkHttpClient;import com.openai.models.responses.ResponseCreateParams;import com.openai.models.responses.Tool;ResponseCreateParams params = ResponseCreateParams.builder() .model("gpt-6-astra") .input("I need to solve the equation 3x + 11 = 14. Can you help me?") .instructions( "You are a personal math tutor. When asked a math question, write and run code to answer the question.") .addCodeInterpreterTool( Tool.CodeInterpreter.Container.CodeInterpreterToolAuto.builder().build()) .build();client.responses().create(params).output().stream() .flatMap(item -> item.message().stream()) .flatMap(message -> message.content().stream()) .flatMap(content -> content.outputText().stream()) .forEach(text -> System.out.println(text.text()));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23using OpenAI.Responses;#pragma warning disable OPENAI001string key = Environment.GetEnvironmentVariable("OPENAI_API_KEY")!;ResponsesClient client = new(key);CodeInterpreterToolContainer container = new( CodeInterpreterToolContainerConfiguration.CreateAutomaticContainerConfiguration([]));CreateResponseOptions options = new(){ Model = "gpt-6-astra", Instructions = "You are a personal math tutor. Write and run code to answer math questions.",};options.Tools.Add(ResponseTool.CreateCodeInterpreterTool(container));options.InputItems.Add( ResponseItem.CreateUserMessageItem( "I need to solve the equation 3x + 11 = 14. Can you help me?" ));ResponseResult response = await client.CreateResponseAsync(options);Console.WriteLine(response.GetOutputText());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17require "openai"openai = OpenAI::Client.newresponse = openai.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?")puts(response.output_text)
1
2
3
4
5
6
7
8
9
10
11
12
13
14curl https://api.openai.com/v1/responses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "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?" }'
Chamada de função
Chame sua própria função
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32import OpenAI from"openai";constclient=newOpenAI();consttools= [ { 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, },];constresponse=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]);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33from openai import OpenAIclient = OpenAI()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, },]response = client.responses.create( model="gpt-6-astra", input=[ {"role": "user", "content": "What is the weather like in Paris today?"}, ], tools=tools,)print(response.output[0].to_json())
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38package mainimport ( "context" "fmt" "github.com/openai/openai-go/v3" "github.com/openai/openai-go/v3/responses")func main() { client := openai.NewClient() parameters := map[string]any{ "type": "object", "properties": map[string]any{ "location": map[string]any{ "type": "string", "description": "City and country e.g. Bogotá, Colombia", }, }, "required": []string{"location"}, "additionalProperties": false, } tool := responses.ToolParamOfFunction("get_weather", parameters, true) tool.OfFunction.Description = openai.String("Get current temperature for a given location.") response, err := client.Responses.New(context.Background(), responses.ResponseNewParams{ Model: "gpt-6-astra", Input: responses.ResponseNewParamsInputUnion{OfInputItemList: responses.ResponseInputParam{ responses.ResponseInputItemParamOfMessage("What is the weather like in Paris today?", responses.EasyInputMessageRoleUser), }}, Tools: []responses.ToolUnionParam{tool}, }) if err != nil { panic(err) } fmt.Println(response.Output)}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36import com.openai.client.OpenAIClient;import com.openai.client.okhttp.OpenAIOkHttpClient;import com.openai.core.JsonValue;import com.openai.models.responses.FunctionTool;import com.openai.models.responses.ResponseCreateParams;import java.util.List;import java.util.Map;ResponseCreateParams params = ResponseCreateParams.builder() .model("gpt-6-astra") .input("What is the weather like in Paris today?") .addTool( FunctionTool.builder() .name("get_weather") .description("Get current temperature for a given location.") .parameters( FunctionTool.Parameters.builder() .putAdditionalProperty("type", JsonValue.from("object")) .putAdditionalProperty( "properties", JsonValue.from( Map.of( "location", Map.of( "type", "string", "description", "City and country e.g. Bogotá, Colombia")))) .putAdditionalProperty("required", JsonValue.from(List.of("location"))) .putAdditionalProperty("additionalProperties", JsonValue.from(false)) .build()) .strict(true) .build()) .build();client.responses().create(params).output().forEach(System.out::println);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57using OpenAI.Responses;#pragma warning disable OPENAI001string key = Environment.GetEnvironmentVariable("OPENAI_API_KEY")!;ResponsesClient client = new(key);CreateResponseOptions options = new() { Model = "gpt-6-astra" };options.Tools.Add( ResponseTool.CreateFunctionTool( functionName: "get_weather", functionDescription: "Get current temperature for a given location.", functionParameters: BinaryData.FromString( """ { "type": "object", "properties": { "location": { "type": "string", "description": "City and country e.g. Bogotá, Colombia" } }, "required": ["location"], "additionalProperties": false } """ ), strictModeEnabled: true ));options.InputItems.Add( ResponseItem.CreateUserMessageItem("What is the weather like in Paris today?"));ResponseResult response = await client.CreateResponseAsync(options);foreach (ResponseItem outputItem in response.OutputItems){ if (outputItem is FunctionCallResponseItem functionCall) { Console.WriteLine( $"{functionCall.FunctionName}({functionCall.FunctionArguments})" ); } else if (outputItem is MessageResponseItem message) { foreach (ResponseContentPart content in message.Content) { if (content.Kind == ResponseContentPartKind.OutputText) { Console.WriteLine(content.Text); } else if (content.Kind == ResponseContentPartKind.Refusal) { Console.WriteLine(content.Refusal); } } }}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36require "openai"openai = OpenAI::Client.newtools = [ { 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 }]response = openai.responses.create( model: "gpt-6-astra", input: [ { role: "user", content: "What is the weather like in Paris today?" } ], tools: tools)puts(response.output.fetch(0).to_json)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28curl -X POST https://api.openai.com/v1/responses \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-6-astra", "input": [ {"role": "user", "content": "What is the weather like in Paris today?"} ], "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 } ] }'
Transmita respostas por streaming e crie aplicativos em tempo real
Use eventos de streaming enviados pelo servidor para exibir resultados à medida que são gerados, ou use a Realtime API para aplicativos de voz interativos e aplicativos com entradas de texto, áudio e imagem.
Transmita por streaming os eventos enviados pelo servidor da API
Use a plataforma da OpenAI para criar agentes capazes de executar ações, como controlar computadores, em nome dos seus usuários. Use o Agents SDK para criar a lógica de orquestração no seu servidor.
Crie um agente de triagem por idioma
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21import { Agent, run } from"@openai/agents";constspanishAgent=newAgent({ name: "Spanish agent", instructions: "You only speak Spanish.",});constenglishAgent=newAgent({ name: "English agent", instructions: "You only speak English",});consttriageAgent=newAgent({ name: "Triage agent", instructions:"Handoff to the appropriate agent based on the language of the request.", handoffs: [spanishAgent, englishAgent],});constresult=awaitrun(triageAgent, "Hola, ¿cómo estás?");console.log(result.finalOutput);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27from agents import Agent, Runnerimport asynciospanish_agent = Agent( name="Spanish agent", instructions="You only speak Spanish.",)english_agent = Agent( name="English agent", instructions="You only speak English",)triage_agent = Agent( name="Triage agent", instructions="Handoff to the appropriate agent based on the language of the request.", handoffs=[spanish_agent, english_agent],)async def main(): result = await Runner.run(triage_agent, input="Hola, ¿cómo estás?") print(result.final_output)if __name__ == "__main__": asyncio.run(main())