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:
馃搵 Haz clic en "Copy" - Copia autom谩ticamente al portapapeles
馃摑 P茅galo en un editor de texto temporal (Bloc de notas, etc.)
✅ Haz clic en "Done" - La ventana se cierra
馃捑 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:
Generar nueva key
Copiar EXACTAMENTE sin espacios
Probar con cURL primero
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:
Generar NUEVA key (la antigua no se puede recuperar)
Guardarla inmediatamente esta vez
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:
馃搷 platform.openai.com → Inicia sesi贸n/reg铆strate
馃懁 Tu perfil → "View API keys"
➕ Create new secret key → N贸mbrala "MyWhisper"
馃搵 Copia INMEDIATAMENTE → Pega en lugar seguro
馃敡 init.php → define('API_TOKEN', 'sk-tu-key-aqui');
Las 4 Reglas de Oro de Seguridad:
馃攼 Nunca en c贸digo p煤blico (GitHub, etc.)
馃捑 Guarda en .env o fuera de web root
馃攧 Rota cada 3-6 meses
馃憗️ Monitoriza uso en dashboard
Recursos Importantes:
馃搳 Dashboard uso: platform.openai.com/usage
馃攽 Gesti贸n keys: platform.openai.com/api-keys
馃摎 Documentaci贸n: platform.openai.com/docs
馃挸 Facturaci贸n: platform.openai.com/billing
馃挵 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:
馃敡 Configuraremos la clase Whisper completa
馃摛 Enviaremos archivos de audio a la API
馃摑 Recibiremos transcripciones de vuelta
馃捑 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
Publicar un comentario