Primera llamada a la API de Claude

Resumen

Conectar la API de Claude desde tu terminal es más sencillo de lo que parece, y en menos de 10 minutos puedes tener a Claude respondiéndote desde tu propio código con tu API key. Si estás empezando en desarrollo con modelos de lenguaje y quieres dejar de depender del playground del navegador, este es el punto de partida.

Lo interesante es que el patrón que armas hoy (cliente, modelo, instrucciones, mensajes y respuesta) es exactamente el mismo que vas a repetir durante todo el curso. Lo único que cambia después es lo que construyes encima.

Por qué debo guardar mi API key en variables de entorno

Antes de tocar cualquier línea que llame a Claude, hay una regla que no se negocia: tu API key no vive suelta dentro del código, vive en un lugar seguro. Eso significa cargarla desde las variables de entorno, no escribirla directamente en main.py.

El repositorio del curso, que encuentras en la sección de recursos, trae dos carpetas principales: una de Python y una de TypeScript. Los ejercicios se hacen en Python, pero cada clase incluye su carpeta equivalente en TypeScript con el nombre de la clase, así que puedes seguir el curso en cualquiera de los dos lenguajes.

¿Por qué no poner la API key directamente en el código? Porque si compartes o subes tu repositorio, cualquiera podría ver y usar tu clave. Guardarla en variables de entorno mantiene el secreto fuera del código fuente.

El arranque es simple. Dentro de la carpeta Python, clase uno, carpeta Inicio, abres main.py en blanco y empiezas a construir.

Cómo leo la API key desde el sistema operativo

Lo primero es importar el módulo os, que ya viene incluido en Python y sirve para leer las variables de entorno que están fuera del código [00:47].

Luego defines el modelo que vas a usar. En este curso se trabaja con Sonnet 4.6, aunque puedes apoyarte en cualquiera de los modelos que ofrece Anthropic [01:03].

Después creas una función main que define una variable api_key, la cual lee desde la variable de entorno llamada ANTHROPIC_API_KEY. Si no existe, imprime que la API no está configurada; si existe, confirma que sí lo está [01:20]. Al ejecutar python main.py por primera vez, aparece el mensaje de que no está configurada, y tiene sentido: todavía no generaste la clave.

Cómo genero mi API key en Claude Platform

Aquí entra Anthropic. Vas a anthropic.com, buscas en el desplegable la opción Claude Platform y te logueas. Si no tienes cuenta, la creas y luego haces el login [02:14].

Una vez dentro del Claude Console, sigues estos pasos:

  • Buscas el apartado Claves de API, donde aparecen listadas tus claves o vacío si la cuenta es nueva.
  • Haces clic en Crear clave y le das un nombre a tu secret, por ejemplo cursodeclaudeplatzi.
  • Copias la API key generada y la guardas en tu archivo de variables de entorno.

Con la clave en mano, el trabajo se mueve de vuelta a tu repositorio.

Cómo exporto la variable de entorno en mi terminal

El repositorio incluye un archivo env.example donde guardas la variable recién generada. El README indica dos comandos clave [03:31]:

  1. Copiar todo el contenido de env.example en un archivo .env (o renombrar el ejemplo directamente a .env).
  2. Exportar la variable con export ANTHROPIC_API_KEY seguida del valor de tu clave, ejecutándolo directamente en la terminal.

Después vuelves a correr el archivo con python3 main.py (o python, según tu instalación) y esta vez la respuesta confirma que la API ya está configurada y leyendo los datos directamente desde Claude [04:31].

Cómo hago mi primer llamado a la API de Claude

Tener la clave configurada no significa que la conexión funcione. Para probarla, el código de main.py cambia un poco: importas anthropic desde la librería oficial de la empresa para Python y reorganizas la estructura [05:00].

Un cambio importante es sacar la validación de la API key de la función principal hacia una función superior llamada require_api_key. Si no hay clave, no solo se detiene la ejecución, sino que muestra un error avisando que necesitas la API key antes de correr el script [05:35].

Luego inicializas el cliente con anthropic.Anthropic pasándole el valor de la clave, y todo puede simplificarse en una sola línea usando directamente la función que definiste a nivel superior [06:11].

Qué estructura necesita el endpoint de messages

La segunda parte clave es el message, que se ubica justo debajo del cliente. Te conectas al endpoint de messages, usas la función create y adentro defines la información [06:35]:

  • El modelo, que ya declaraste como Sonnet 4.6.
  • El máximo de tokens de respuesta, para limitar la cantidad de caracteres que devuelve.
  • El system prompt, donde le dices que responda como un mentor breve y práctico de Python.
  • Los mensajes, definiendo el rol user como si fuera el input de una persona, y el contenido con la pregunta o prompt.

¿Qué es el system prompt? Es la instrucción que define el comportamiento y la personalidad del modelo. En este caso le pide a Claude actuar como un mentor breve y práctico de Python antes de responder cualquier cosa.

El modelo responde en bloques, así que recorres message.content, verificas si cada bloque es de tipo texto y lo imprimes con block.text [07:30].

Por qué falla el módulo de Anthropic al ejecutar

Al correr main.py aparece un error: no detecta el módulo de Anthropic. Lo agregaste en texto pero no lo instalaste. El README indica que cuando agregas dependencias manualmente debes ejecutar el comando de instalación con pip3 (o pip si usas Python normal) [08:07].

Una vez instaladas las dependencias, ejecutas de nuevo y llega la primera respuesta real desde la API. Al pedirle tres proyectos para practicar, Claude recomienda:

  1. Un chatbot con memoria de conversación en la terminal que mantiene el historial de mensajes, para aprender a manejar el array de mensajes con roles de usuario y asistente en modo multiturno.
  2. Un analizador de archivos de texto donde subes un .txt o .tsv y le pides que resuma, critique o extraiga datos, aprendiendo a inyectar contenido en el prompt y procesar respuestas estructuradas.
  3. Un generador de personas o personajes donde defines nombre, rol y tono como parámetros, y Claude responde siempre como ese personaje, practicando el control de comportamiento con el system prompt [09:00].

Por qué mi primer chat con Claude no recuerda nada

Este chat ya funciona: mandaste una instrucción y Claude respondió. Pero hay un detalle. Si ahora le preguntas qué dijiste antes, no tiene idea. Cada request nace y muere solo [09:50].

Esa falta de memoria es la puerta al siguiente reto: cómo lograr que Claude sostenga una conversación de verdad, recordando lo anterior. Ahí empieza lo interesante.

¿Ya lograste tu primera respuesta desde la terminal? Cuéntame en los comentarios qué modelo elegiste y qué prompt probaste primero.