Phase 00 - Lesson 04

APIs y Claves

Toda API de IA funciona de la misma manera: envías una solicitud, recibes una respuesta. Los detalles cambian, el patrón no.

Tipo: Build Lenguajes: Python, TypeScript Requisitos previos: Fase 0, Lección 01 Tiempo: ~30 minutos

Objetivos de Aprendizaje

  • Almacenar claves de API de forma segura usando variables de entorno y archivos .env
  • Hacer una llamada a una API de LLM usando tanto el SDK de Python de Anthropic como HTTP puro
  • Comparar los formatos de solicitud/respuesta basados en SDK y en HTTP puro para depuración
  • Identificar y manejar errores comunes de API, incluyendo autenticación y límites de tasa

El Problema

A partir de la Fase 11, llamarás a APIs de LLM (Anthropic, OpenAI, Google). En las Fases 13-16 construirás agentes que usan estas APIs en bucles. Necesitas saber cómo funcionan las claves de API, cómo almacenarlas de forma segura y cómo hacer tu primera llamada a una API.

El Concepto

sequenceDiagram
    participant C as Your Code
    participant S as API Server
    C->>S: HTTP Request (with API key)
    S->>C: HTTP Response (JSON)

Toda llamada a una API tiene:

  1. Un endpoint (URL)
  2. Una clave de API (autenticación)
  3. Un cuerpo de solicitud (lo que quieres)
  4. Un cuerpo de respuesta (lo que recibes de vuelta)

Build It

Paso 1: Almacena las claves de API de forma segura

Nunca pongas claves de API en el código. Usa variables de entorno.

export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."

O usa un archivo .env (agrégalo a .gitignore):

ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...

Paso 2: Primera llamada a la API (Python)

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=256,
    messages=[{"role": "user", "content": "What is a neural network in one sentence?"}]
)

print(response.content[0].text)

Paso 3: Primera llamada a la API (TypeScript)

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic();

const response = await client.messages.create({
  model: "claude-sonnet-4-20250514",
  max_tokens: 256,
  messages: [{ role: "user", content: "What is a neural network in one sentence?" }],
});

console.log(response.content[0].text);

Paso 4: HTTP puro (sin SDK)

import os
import urllib.request
import json

url = "https://api.anthropic.com/v1/messages"
headers = {
    "Content-Type": "application/json",
    "x-api-key": os.environ["ANTHROPIC_API_KEY"],
    "anthropic-version": "2023-06-01",
}
body = json.dumps({
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 256,
    "messages": [{"role": "user", "content": "What is a neural network in one sentence?"}],
}).encode()

req = urllib.request.Request(url, data=body, headers=headers, method="POST")
with urllib.request.urlopen(req) as resp:
    result = json.loads(resp.read())
    print(result["content"][0]["text"])

Esto es lo que hacen los SDKs por debajo. Entender la llamada HTTP pura ayuda al momento de depurar.

Use It

Para este curso:

API Cuándo la necesitas Plan gratuito
Anthropic (Claude) Fases 11-16 (agentes, herramientas) US$5 de crédito al registrarte
OpenAI Fase 11 (comparación) US$5 de crédito al registrarte
Hugging Face Fases 4-10 (modelos, datasets) Gratis

No necesitas todas ahora mismo. Configúralas cuando la lección lo requiera.

Ship It

Esta lección produce:

  • outputs/prompt-api-troubleshooter.md - diagnostica errores comunes de API

Ejercicios

  1. Obtén una clave de API de Anthropic y haz tu primera llamada a la API
  2. Prueba la versión de HTTP puro y compara el formato de la respuesta con la versión del SDK
  3. Usa intencionalmente una clave de API incorrecta y lee el mensaje de error

Términos Clave

Término Lo que dice la gente Lo que realmente significa
Clave de API "Contraseña de la API" Una cadena única que identifica tu cuenta y autoriza las solicitudes
Límite de tasa "Me están limitando" Máximo de solicitudes por minuto/hora para evitar abuso y garantizar un uso justo
Token "Una palabra" (en el contexto de API) Una unidad de facturación: los tokens de entrada y de salida se cuentan y cobran por separado
Streaming "Respuestas en tiempo real" Recibir la respuesta palabra por palabra en lugar de esperar la respuesta completa
0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).