La API de OpenAI ofrece una interfaz uniforme para acceder a modelos de IA de última generación para la generación de texto, el procesamiento del lenguaje natural, la visión por computadora y mucho más. Para empezar, crea una clave de API y realiza tu primera llamada a la API. Descubre cómo generar texto, analizar imágenes, crear agentes y mucho más.
Antes de comenzar, crea una clave de API en el panel, que usarás para
acceder a la API de forma segura. Guarda la clave
en un lugar seguro, como un archivo
.zshrc u
otro archivo de texto en tu computadora. Una vez que hayas generado una clave de API, expórtala
como una variable de entorno
en tu terminal.
macOS / Linux
Exporta una variable de entorno en sistemas macOS o Linux
1export OPENAI_API_KEY="your_api_key_here"
Windows
Exporta una variable de entorno en PowerShell
1setxOPENAI_API_KEY"your_api_key_here"
Cada SDK de OpenAI lee automáticamente tu clave de API del entorno del sistema.
Instala el SDK de OpenAI y realiza una llamada a la API
JavaScript
Para usar la API de OpenAI en entornos JavaScript del lado del servidor como Node.js, Deno o Bun, puedes usar el SDK oficial de OpenAI para TypeScript y JavaScript. Para empezar, instala el SDK con npm o tu gestor de paquetes preferido:
Instala el SDK de OpenAI con npm
1npminstallopenai
Una vez instalado el SDK de OpenAI, crea un archivo llamado example.mjs y copia en él el código de ejemplo:
Prueba una solicitud básica a la 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);
Ejecuta el código con node example.mjs (o el comando equivalente para Deno o Bun). En unos momentos, deberías ver el resultado de tu solicitud a la API.
En colaboración con Microsoft, OpenAI ofrece un cliente de API para C# con soporte oficial. Puedes instalarlo desde NuGet con la CLI de .NET.
dotnet add package OpenAI
Una solicitud sencilla a la API Responses se vería así:
Prueba una solicitud básica a la API
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
OpenAI ofrece una biblioteca auxiliar para usar la API en el lenguaje de programación Java, actualmente en versión beta. Puedes incluir la dependencia de Maven con la siguiente configuración:
OpenAI ofrece una biblioteca auxiliar para la API en el lenguaje de programación Go, actualmente en beta. Puedes importar la biblioteca con el siguiente código:
1
2
3import ("github.com/openai/openai-go/v3"// imported as openai)
Una primera solicitud a la API Responses se vería así:
Para usar la API de OpenAI en Ruby, puedes usar el SDK oficial de OpenAI para Ruby. Para empezar, agrega la gema a tu aplicación:
Instala el SDK de OpenAI con Bundler
1gem "openai"
Una vez instalado el SDK de OpenAI, crea un archivo llamado example.rb y copia el código de ejemplo en él:
Prueba una solicitud básica a la 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)
Ejecuta el código con ruby example.rb. En unos momentos, deberías ver el resultado de tu solicitud a la API.
¡Felicidades por realizar una solicitud de prueba gratuita a la API! Empieza a desarrollar aplicaciones reales con límites más altos y usa nuestros modelos para generar texto, audio, imágenes, videos y mucho más.
Explora herramientas y documentación diseñadas para ayudarte a lanzar tus aplicaciones más rápido:
Envía URLs de imágenes, archivos cargados o documentos PDF directamente al modelo para extraer texto, clasificar contenido o detectar elementos visuales.
Amplía las capacidades del modelo con herramientas
Dale al modelo acceso a datos y funciones externos mediante herramientas. Usa herramientas integradas como la búsqueda web o la búsqueda de archivos, o define tus propias herramientas para llamar a APIs, ejecutar código o integrar sistemas de terceros.
Búsqueda web
Usa la búsqueda web en una respuesta
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)
Intérprete de código
Usa el intérprete de código en una respuesta
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?" }'
Llamada a funciones
Llama a tu propia función
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 } ] }'
Transmite respuestas mediante streaming y crea aplicaciones en tiempo real
Usa eventos de streaming enviados por el servidor para mostrar los resultados a medida que se generan, o usa la Realtime API para aplicaciones de voz interactivas y aplicaciones con entradas de texto, audio e imágenes.
Transmite mediante streaming los eventos enviados por el servidor desde la API
Usa la plataforma de OpenAI para crear agentes capaces de realizar acciones, como controlar computadoras, en nombre de tus usuarios. Usa el Agents SDK para crear la lógica de orquestación en tu servidor.
Crea un agente de clasificación 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())