12. Generating API KEY

 

C贸mo Obtener y Configurar tu API Key de OpenAI

馃摎 Tema del Tutorial:

"Tu Llave M谩gica para la IA: C贸mo Obtener y Configurar una API Key de OpenAI Paso a Paso"


馃幆 Objetivo de Aprendizaje

Al final de este tutorial entender谩s:

  • Qu茅 es una API Key y por qu茅 es importante

  • C贸mo crear una cuenta gratuita en OpenAI

  • D贸nde generar y gestionar tus claves API

  • C贸mo configurar la API Key en tu proyecto PHP

  • Buenas pr谩cticas de seguridad para manejar claves


馃彴 Parte 1: ¿Qu茅 es una API Key? - Tu "Llave del Reino" de OpenAI

La Analog铆a del Banco:

Imagina que OpenAI es como un banco muy seguro lleno de servicios de IA:

text

馃彟 BANCO OPENAI (Servidores con IA)

├── 馃彟 Caja fuerte: Modelos de IA (Whisper, GPT-4, etc.)

├── 馃彠 Cajeros: Endpoints API (/v1/audio/transcriptions)

├── 馃彌️ Sucursales: platform.openai.com

└️️ 馃攼 CANDADO: Solo entra quien tenga llave v谩lida


馃棟️ TU API KEY = LLAVE DEL BANCO

├️️ 馃攽 Formato: sk-abc123def456ghi789jkl

├️️ 馃懁 Identifica: Tu cuenta espec铆fica

├️️ 馃挸 Factura: Tu consumo de IA

├️️ 馃毆 Permiso: Acceso a los servicios

└️️ ⚠️ PELIGRO: Si la pierdes, otros pueden usarla

¿Por qu茅 Necesitas una API Key?

text

馃摫 TU APLICACI脫N (MyWhisper)

   ↓ "Quiero transcribir este audio"

馃攽 API KEY (sk-...)

   ↓ (identificaci贸n + permiso)

馃彚 OPENAI SERVER

   ↓ "✅ Usuario v谩lido, procesando..."

馃摑 TEXTO TRANSCRITO

   ↓ (env铆a de vuelta)

馃摫 TU APLICACI脫N

   ↓ "馃帀 ¡Aqu铆 est谩 la transcripci贸n!"

Sin API Key: Tu aplicaci贸n estar铆a gritando "¡D茅jame entrar!" frente a un banco cerrado.
Con API Key: Tienes la llave maestra para usar todos los servicios.


馃摑 Parte 2: Creando tu Cuenta en OpenAI - Paso a Paso Visual

Paso 1: Ir al Sitio Correcto

URL exacta: https://platform.openai.com

text

馃寪 EN TU NAVEGADOR:

1. Escribe: platform.openai.com

2. Presiona: Enter

3. Deber铆as ver: P谩gina de inicio de OpenAI


⚠️ CUIDADO CON IMITACIONES:

✅ platform.openai.com ← CORRECTO

❌ openai-platform.com ← FALSO

❌ open-ai.com ← FALSO

❌ chatgpt-free.com ← FALSO

Paso 2: Registro o Inicio de Sesi贸n

text

馃懁 SI NO TIENES CUENTA:

1. Haz clic en: "Sign up" (Registrarse)

2. Elige: Con email, Google o Microsoft

3. Completa: Verificaci贸n de email

4. Confirma: N煤mero de tel茅fono (seguridad)


馃攼 SI YA TIENES CUENTA:

1. Haz clic en: "Log in" (Iniciar sesi贸n)

2. Usa: Tus credenciales

3. Accede: Al dashboard principal

Paso 3: Navegando el Dashboard

Lo que ver谩s despu茅s de iniciar sesi贸n:

text

馃搳 DASHBOARD DE OPENAI

├── 馃挵 Usage: Tu consumo y cr茅ditos

├── 馃攽 API keys: Tus llaves secretas

├── 馃搫 Documentation: C贸mo usar las APIs

├── 馃洜️ Playground: Probar modelos sin c贸digo

├── 馃懁 Tu Nombre: Esquina superior derecha

└️️ 馃柤️ Tu Foto: Si subiste una

Ubicaci贸n clave: Mira siempre en la esquina superior derecha para ver tu perfil.


馃攼 Parte 3: Generando tu Primera API Key - Proceso Detallado

Paso 4: Acceder a la Secci贸n de API Keys

text

馃搷 RUTA EXACTA:

1. 馃懁 Haz clic en tu nombre/foto (esquina superior derecha)

2. 馃搵 Men煤 desplegable aparece

3. 馃攽 Selecciona: "View API keys"

4. 馃殌 Te redirige a: https://platform.openai.com/api-keys

Captura mental de la pantalla:

text

馃懁 [Tu Foto/Nombre]  ← Haz clic aqu铆

   ▼ (men煤 desplegable)

   ├── 馃攽 View API keys  ← ¡ESTO!

   ├── 馃搫 Documentation

   ├── 馃洜️ Playground

   ├── 馃挵 Usage

   └── 馃懁 Settings

Paso 5: Crear Nueva API Key

En la p谩gina de API Keys ver谩s:

text

馃搵 P脕GINA DE API KEYS

├── 馃帀 "Welcome to the OpenAI API!"

├── ➕ "Create new secret key" (bot贸n)

├── 馃搵 Lista de keys existentes (si tienes)

└️️ ⚠️ Advertencias de seguridad

Proceso para crear key:

text

1. ➕ Haz clic en: "Create new secret key"

2. 馃摑 Ventana emergente aparece

3. 馃彿️ Escribe nombre: "MyWhisper" (o el que quieras)

4. ✅ Haz clic en: "Create secret key"

5. 馃帀 ¡KEY GENERADA! (solo se muestra UNA vez)

Paso 6: El Momento Cr铆tico - ¡Copiar la Key!

⚠️ ATENCI脫N: ESTO ES IMPORTANT脥SIMO ⚠️

text

馃攽 TU NUEVA API KEY (ejemplo):

sk-abc123def456ghi789jkl012mno345pqr678stu901vwx


馃搵 VENTANA EMERGENTE:

┌─────────────────────────────────────┐

│ ✅ Your new secret key              │

│                                     │

│ sk-abc...901vwx                     │

│                                     │

│ ⚠️ Make sure to copy your key now!  │

│    You won't be able to see it again│

│                                     │

│ [馃搵 Copy]       [✅ Done]           │

└─────────────────────────────────────┘

Acciones CRUCIALES en este momento:

  1. 馃搵 Haz clic en "Copy" - Copia autom谩ticamente al portapapeles

  2. 馃摑 P茅galo en un editor de texto temporal (Bloc de notas, etc.)

  3. ✅ Haz clic en "Done" - La ventana se cierra

  4. 馃捑 Guarda en lugar seguro - Nunca en email p煤blico o chat

¿Por qu茅 solo se muestra una vez?
Por seguridad. As铆 si alguien hackea tu cuenta, no puede ver keys antiguas.


馃捑 Parte 4: Estructura de una API Key de OpenAI

Anatom铆a de una API Key:

text

馃攽 sk-abc123def456ghi789jkl012mno345pqr678stu901vwx

├── sk- → Prefijo (siempre empieza as铆)

├── abc123def456 → Identificador 煤nico

├── ghi789jkl012 → Parte aleatoria

├── mno345pqr678 → M谩s aleatoriedad

└── stu901vwx → Final 煤nico


馃搹 LONGITUD: Aproximadamente 51 caracteres

馃帹 FORMATO: Letras min煤sculas y n煤meros

馃敜 CONTENIDO: Base64 encoding

Tipos de API Keys (basadas en prefijo):

text

馃攽 sk-... → Secret Key (la m谩s com煤n)

馃攽 pk-... → Publishable Key (para frontend)

馃攽 ok-... → Organization Key (para empresas)

Para nuestro proyecto: Siempre usamos sk- (Secret Key).


馃洜️ Parte 5: Configurando la API Key en Nuestro Proyecto PHP

El Archivo init.php - Nuestro "Centro de Configuraci贸n"

Ubicaci贸n: backend/init.php

Contenido actual de init.php:

php

<?php

require 'classes/DB.php';

require 'classes/Whisper.php';


$whisperObj = new Whisper;

?>

Paso 7: A帽adir la Constante API_TOKEN

C贸digo modificado de init.php:

php

<?php

// 馃攼 CONSTANTE DE CONFIGURACI脫N

define('API_TOKEN', 'sk-abc123def456ghi789jkl012mno345pqr678stu901vwx');


// 馃摝 CARGAR CLASES

require 'classes/DB.php';

require 'classes/Whisper.php';


// 馃彈️ CREAR OBJETO PRINCIPAL

$whisperObj = new Whisper;

?>

Explicaci贸n de define() - Creando una "Constante":

php

define('API_TOKEN', 'tu-key-aqui');

// └─┬──┘ └─┬─────┘

//   │      │

//   │      └─ 馃攽 VALOR: Tu API Key real

//   │

//   └─ 馃彿️ NOMBRE: API_TOKEN (en may煤sculas, convenci贸n)

¿Qu茅 es una constante en PHP?

  • 馃搶 Valor fijo - No puede cambiar despu茅s de definirse

  • 馃實 Alcance global - Accesible desde cualquier archivo

  • 馃殌 M谩s r谩pido - Ligeramente m谩s r谩pido que variables

  • 馃幆 Mejor pr谩ctica - Para configuraciones que no cambian

Comparaci贸n: Constante vs Variable

php

// ❌ Variable (puede cambiar accidentalmente)

$api_token = 'sk-abc123...';

$api_token = '';  // ¡Oops! Alguien la borr贸


// ✅ Constante (protegida contra cambios)

define('API_TOKEN', 'sk-abc123...');

API_TOKEN = '';  // ❌ Error: No puedes reasignar


馃搧 Parte 6: Organizaci贸n Correcta de Archivos de Configuraci贸n

Mejor Pr谩ctica: Archivo de Configuraci贸n Separado

Para proyectos m谩s grandes, crea config.php:

php

<?php

// 馃搧 backend/config.php

return [

    'openai' => [

        'api_key' => 'sk-abc123def456...',

        'organization' => 'org-...',  // Opcional

    ],

    'database' => [

        'host' => 'localhost',

        'name' => 'MyWhisper',

        'user' => 'root',

        'pass' => ''

    ],

    'app' => [

        'name' => 'MyWhisper',

        'version' => '1.0.0',

        'debug' => true  // false en producci贸n

    ]

];

?>

Luego en init.php:

php

<?php

// Cargar configuraci贸n

$config = require 'config.php';


// Definir constantes desde configuraci贸n

define('API_TOKEN', $config['openai']['api_key']);

define('DB_HOST', $config['database']['host']);

// ... etc.


require 'classes/DB.php';

require 'classes/Whisper.php';


$whisperObj = new Whisper;

?>

Para Nuestro Proyecto (simple):

Nos quedamos con la constante directa en init.php por simplicidad.


馃敀 Parte 7: Seguridad - Protegiendo tu API Key

¡NUNCA HAGAS ESTO! - Errores Comunes de Seguridad:

php

// ❌❌❌ PELIGRO: Key en c贸digo p煤blico

define('API_TOKEN', 'sk-abc123...');

// Si subes a GitHub, cualquiera puede usar tu key


// ❌❌ PELIGRO: Key en archivo accesible

// Archivo en: /public/config.php ← Cualquiera puede acceder


// ❌ PELIGRO: Key en comentarios

// define('API_TOKEN', 'sk-old-key'); // Key antigua: sk-abc...

// Los comentarios se ven en el c贸digo fuente

✅ BUENAS PR脕CTICAS de Seguridad:

1. Usar variables de entorno (MEJOR PR脕CTICA):

php

// .env file (NO subir a GitHub)

API_KEY=sk-abc123def456...


// PHP para leer .env

$apiKey = getenv('API_KEY');

define('API_TOKEN', $apiKey);

2. Archivo fuera del directorio web:

text

馃搧 proyecto/

├── 馃搧 public/ (accesible desde web)

│   └── index.php

├── 馃搧 backend/ (NO accesible desde web)

│   ├── config.php ← API Key aqu铆 ✅

│   └── init.php

└── .env ← API Key aqu铆 (MEJOR) ✅

3. Restringir permisos del archivo:

bash

# En Linux/Mac

chmod 600 config.php  # Solo due帽o puede leer/escribir

4. Rotar keys peri贸dicamente:

  • Genera nueva key cada 3-6 meses

  • Actualiza en tu aplicaci贸n

  • Revoca la key antigua en OpenAI


馃И Parte 8: Probando que la API Key Funciona

Prueba Simple con cURL:

Comando en terminal:

bash

curl https://api.openai.com/v1/models \

  -H "Authorization: Bearer sk-tu-key-aqui"

Respuesta exitosa (deber铆as ver):

json

{

  "object": "list",

  "data": [

    {"id": "whisper-1", "object": "model", ...},

    {"id": "gpt-3.5-turbo", "object": "model", ...},

    {"id": "gpt-4", "object": "model", ...}

  ]

}

Respuesta de error (key inv谩lida):

json

{

  "error": {

    "message": "Incorrect API key provided",

    "type": "invalid_request_error",

    "param": null,

    "code": "invalid_api_key"

  }

}

Prueba en Nuestro C贸digo:

A帽adir en Whisper.php para probar:

php

public function testAPIKey(){

    $ch = curl_init('https://api.openai.com/v1/models');

    curl_setopt($ch, CURLOPT_HTTPHEADER, [

        'Authorization: Bearer ' . API_TOKEN

    ]);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    

    $response = curl_exec($ch);

    curl_close($ch);

    

    $data = json_decode($response, true);

    

    if(isset($data['error'])){

        echo "❌ Error: " . $data['error']['message'];

        return false;

    } else {

        echo "✅ API Key v谩lida! Tienes acceso a: ";

        foreach($data['data'] as $model){

            echo $model['id'] . ", ";

        }

        return true;

    }

}


馃挵 Parte 9: Cr茅ditos Gratis y Precios

Cr茅ditos Iniciales Gratis:

Cuando creas cuenta nueva en OpenAI:

text

馃巵 REGALO DE BIENVENIDA (var铆a por pa铆s):

├── 馃寧 EE.UU./Canad谩: $5-18 cr茅dito gratis

├── 馃實 Europa: €10-15 cr茅dito gratis

├── 馃審 Otros pa铆ses: Var铆a, pero siempre algo

└️️ ⏰ Expiraci贸n: Generalmente 3 meses


馃М ¿CU脕NTO RINDE?

Con $5 cr茅dito gratis puedes:

├── 馃帳 Transcribir: ~833 minutos de audio (13.8 horas)

├── 馃挰 Chatear con GPT: ~1,000,000 tokens

└️️ 馃帹 Generar im谩genes: ~100 im谩genes

Precios de Whisper API:

text

馃挵 PRECIOS ACTUALES (verificar en plataforma):

Whisper transcription: $0.006 por minuto


馃摫 EJEMPLO DE CONSUMO:

├── 1 minuto audio: $0.006

├── 10 minutos: $0.06

├── 1 hora: $0.36

├── 10 horas: $3.60

└️️ 馃挕 Consejo: Los primeros $5 te dan ~13 horas gratis

C贸mo Ver tu Uso y L铆mites:

text

馃搷 En platform.openai.com:

1. 馃懁 Tu perfil → "Usage"

2. 馃搳 Ver谩s gr谩fico de consumo

3. ⚠️ Alertas: Te avisan al 80%, 90%, 100%

4. 馃挸 A帽adir m茅todo de pago: Para continuar despu茅s de cr茅ditos

Configurar l铆mites de gasto:

bash

# En platform.openai.com → Settings → Billing

# Puedes establecer l铆mites mensuales como:

- $10/mes m谩ximo

- $50/mes m谩ximo

- Personalizado


馃毃 Parte 10: Soluci贸n de Problemas Comunes

Problema 1: "Incorrect API key provided"

Posibles causas:

  • 馃攽 Key mal copiada (faltan caracteres)

  • 馃搵 Espacios al inicio/final

  • 馃棏️ Key revocada o eliminada

  • 馃實 Regi贸n bloqueada (algunos pa铆ses)

Soluci贸n:

  1. Generar nueva key

  2. Copiar EXACTAMENTE sin espacios

  3. Probar con cURL primero

  4. Verificar que la cuenta est茅 activa

Problema 2: "You exceeded your current quota"

Causa: Se acabaron los cr茅ditos gratis
Soluci贸n: A帽adir m茅todo de pago en Billing

Problema 3: La key desapareci贸 de la lista

Causa: La copiaste y no la guardaste
Soluci贸n:

  1. Generar NUEVA key (la antigua no se puede recuperar)

  2. Guardarla inmediatamente esta vez

  3. Actualizar en init.php

Problema 4: Error 429 "Too many requests"

Causa: L铆mite de tasa (rate limiting)
Soluci贸n: Esperar 1 minuto o implementar retry en c贸digo


馃З Parte 11: Ejercicio Pr谩ctico - Gesti贸n de M煤ltiples Keys

Ejercicio 1: Sistema de Keys por Entorno

config.php avanzado:

php

<?php

// Diferentes keys para desarrollo y producci贸n

$environments = [

    'development' => [

        'api_key' => 'sk-dev-key-123...',

        'base_url' => 'https://api.openai.com',

        'log_level' => 'debug'

    ],

    'production' => [

        'api_key' => 'sk-prod-key-456...',

        'base_url' => 'https://api.openai.com',

        'log_level' => 'error'

    ]

];


// Determinar entorno autom谩ticamente

if ($_SERVER['HTTP_HOST'] === 'localhost') {

    $currentEnv = 'development';

} else {

    $currentEnv = 'production';

}


// Cargar configuraci贸n del entorno actual

$config = $environments[$currentEnv];

define('API_TOKEN', $config['api_key']);

?>

Ejercicio 2: Rotaci贸n Autom谩tica de Keys

php

class APIKeyManager {

    private $keys = [

        'primary' => 'sk-key-1...',

        'secondary' => 'sk-key-2...',

        'backup' => 'sk-key-3...'

    ];

    

    public function getKey() {

        // Rotar keys si una falla

        static $attempts = 0;

        $keyNames = array_keys($this->keys);

        $currentKey = $keyNames[$attempts % count($keyNames)];

        

        return $this->keys[$currentKey];

    }

    

    public function reportFailure($keyUsed) {

        // L贸gica para marcar key como problem谩tica

        error_log("Key $keyUsed fall贸, considerando rotaci贸n");

    }

}


馃搳 Parte 12: Resumen Visual del Proceso

Diagrama de Flujo Completo:

text

[1️⃣ platform.openai.com]

        ↓ (crear cuenta/iniciar sesi贸n)

[2️⃣ Dashboard OpenAI]

        ↓ (clic en perfil → API keys)

[3️⃣ P谩gina API Keys]

        ↓ (Create new secret key)

[4️⃣ Ventana emergente]

        ↓ (copiar key → pegar en lugar seguro)

[5️⃣ Archivo init.php]

        ↓ (define('API_TOKEN', 'sk-...'))

[6️⃣ Clase Whisper.php]

        ↓ (usa API_TOKEN para autenticar)

[7️⃣ OpenAI API]

        ↓ (verifica key → procesa solicitud)

[8️⃣ Tu aplicaci贸n]

        ↓ (recibe respuesta de IA)

Checklist de Seguridad API Key:

✅ Generada en platform.openai.com oficial
✅ Copiada inmediatamente al crearse
✅ Guardada en lugar seguro (no en email/chat)
✅ Configurada como constante en PHP
✅ Archivo protegido fuera de web root (ideal)
✅ NO compartida con nadie
✅ Monitorizado el uso en dashboard
✅ Plan de rotaci贸n cada 3-6 meses


❓ Parte 13: Cuestionario de Evaluaci贸n

Pregunta 1:

¿D贸nde se genera una API Key de OpenAI?
a) En chat.openai.com
b) En platform.openai.com
c) En github.com/openai
d) En la app m贸vil de ChatGPT

Explicaci贸n: platform.openai.com es el portal para desarrolladores.

Pregunta 2:

¿Cu谩ntas veces puedes ver tu API Key completa despu茅s de generarla?
a) Una sola vez ✅
b) Siempre que quieras
c) 3 veces m谩ximo
d) 10 veces m谩ximo

Pregunta 3:

¿Qu茅 funci贸n de PHP usamos para definir la API Key como constante?
a) $api_key = 'sk-...'
b) const API_KEY = 'sk-...'
c) define('API_TOKEN', 'sk-...')
d) set('API_TOKEN', 'sk-...')

Pregunta 4:

¿Por qu茅 es peligroso subir tu API Key a GitHub?
a) Porque GitHub la borra
b) Porque otros pueden usarla y gastar tu cr茅dito ✅
c) Porque OpenAI la bloquea autom谩ticamente
d) Porque GitHub la encripta mal

Pregunta 5:

¿Cu谩l es el formato t铆pico de una API Key de OpenAI?
a) Empieza con api-
b) Empieza con sk-
c) Empieza con key-
d) Empieza con openai-


Pregunta 6:

¿Qu茅 deber铆as hacer inmediatamente despu茅s de generar una nueva API Key?
a) Compartirla con tu equipo
b) Copiarla y guardarla en lugar seguro ✅
c) Probarla en producci贸n
d) Hacerle una captura de pantalla

Pregunta 7:

¿D贸nde es MEJOR guardar la API Key en un proyecto profesional?
a) Directamente en init.php
b) En variables de entorno (.env) ✅
c) En un comentario del c贸digo
d) En la base de datos

Respuesta correcta: b) Variables de entorno (.env) fuera del control de versiones.


馃弳 Resumen Final - Gu铆a R谩pida de API Key

Los 5 Pasos Esenciales:

  1. 馃搷 platform.openai.com → Inicia sesi贸n/reg铆strate

  2. 馃懁 Tu perfil → "View API keys"

  3. ➕ Create new secret key → N贸mbrala "MyWhisper"

  4. 馃搵 Copia INMEDIATAMENTE → Pega en lugar seguro

  5. 馃敡 init.php → define('API_TOKEN', 'sk-tu-key-aqui');

Las 4 Reglas de Oro de Seguridad:

  1. 馃攼 Nunca en c贸digo p煤blico (GitHub, etc.)

  2. 馃捑 Guarda en .env o fuera de web root

  3. 馃攧 Rota cada 3-6 meses

  4. 馃憗️ Monitoriza uso en dashboard

Recursos Importantes:

馃挵 Recuerda: Los primeros $5-18 son GRATIS para que pruebes.


馃殌 Pr贸ximos Pasos - Lo que Viene

Listo para la Siguiente Lecci贸n:

Ahora que tienes tu API Key, en la pr贸xima lecci贸n:

  1. 馃敡 Configuraremos la clase Whisper completa

  2. 馃摛 Enviaremos archivos de audio a la API

  3. 馃摑 Recibiremos transcripciones de vuelta

  4. 馃捑 Guardaremos resultados en base de datos

C贸digo que Usaremos Pronto:

php

// Usando tu API Key reci茅n configurada

public function sendToWhisperAPI($audioFile){

    $ch = curl_init('https://api.openai.com/v1/audio/transcriptions');

    curl_setopt($ch, CURLOPT_HTTPHEADER, [

        'Authorization: Bearer ' . API_TOKEN,  // ← ¡TU KEY AQU脥!

        'Content-Type: multipart/form-data'

    ]);

    // ... resto del c贸digo

}

馃帀 ¡Felicidades! Acabas de obtener la "llave m谩gica" que desbloquea el poder de la IA de OpenAI para tu aplicaci贸n. Con esta peque帽a cadena de texto, puedes acceder a tecnolog铆a que cost贸 millones desarrollar y a帽os de investigaci贸n.


馃挕 Reflexi贸n Final:
Hace unos a帽os, tecnolog铆a como Whisper solo estaba disponible para gigantes como Google o Amazon, con costos prohibitivos. Hoy, con una API Key gratuita y unos centavos por minuto, cualquier desarrollador puede integrar transcripci贸n de voz de nivel mundial en sus aplicaciones. ¡Est谩s en la era dorada del desarrollo con IA!

馃攽 ¡Tu API Key est谩 lista y configurada! Ahora podemos hacer que Whisper AI trabaje para nosotros


Comentarios

Entradas m谩s populares de este blog

1-7. Transforma tu audio a texto

10. Haz que tu asistente hable

8. NUEVO - Soluci贸n si tu micr贸fono no est谩 captando tu audio