Conectar un modelo de inteligencia artificial desde código es el paso que separa la teoría de la práctica real. Aquí se detalla cómo realizar la primera llamada a la API de Anthropic usando TypeScript, qué estructura devuelve la respuesta, cómo extraer únicamente el texto útil y las diferencias prácticas frente a lo que ofrece OpenAI.
¿Qué necesitas para configurar tu proyecto con la API de Anthropic?
Antes de escribir una sola línea de código, hay tres pasos esenciales que la propia documentación de Anthropic establece [0:22]:
- Establecer la clave de la API: copia el comando que aparece en la documentación, sustituye el valor por la API key que generaste previamente y ejecútalo en tu terminal. No recibirás ninguna confirmación visual, pero sabrás que funciona cuando obtengas tu primera respuesta.
- Inicializar un proyecto de JavaScript/TypeScript: todo proyecto basado en JavaScript requiere un archivo
package.json. La documentación trabaja con TypeScript, así que la extensión de los archivos será .ts.
- Instalar el SDK de Anthropic: con un simple comando de NPM se agrega la dependencia oficial que permite interactuar con la API.
bash
npm install @anthropic-ai/sdk
Con estas tres piezas listas, ya puedes crear tu archivo principal. La documentación sugiere llamarlo quickstart.ts [1:17].
¿Cómo se estructura el primer llamado a la API de Claude?
El snippet que Anthropic ofrece tiene similitudes claras con el de OpenAI, pero también diferencias que vale la pena notar [1:25]. La estructura básica sigue este patrón:
typescript
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
async function main() {
const message = await client.messages.create({
model: "claude-opus-4-0",
max_tokens: 1024,
messages: [
{ role: "user", content: "¿Cuál es la capital de Colombia?" }
]
});
console.log(message);
}
main();
Tres parámetros definen esta llamada:
- model: indica qué modelo utilizar. En el ejemplo se emplea Claude Opus 4.6, el más avanzado de Anthropic [1:52].
- max_tokens: establece el límite máximo de tokens que el modelo puede generar en su respuesta. En el ejemplo se fijan 1024 tokens [1:58].
- messages: un array que contiene los mensajes de la conversación. A diferencia de OpenAI, donde se pide un input, aquí se trabaja con un arreglo de mensajes [2:10].
Otra diferencia notable es la forma de instanciar el cliente. OpenAI utiliza su propio constructor, mientras que Anthropic requiere crear una instancia con new Anthropic() importada desde el SDK [1:32].
¿Qué devuelve la respuesta del modelo?
Al ejecutar el archivo, la API devuelve un objeto completo con metadatos valiosos [3:00]:
- Identificador único de la llamada.
- Modelo utilizado.
- Rol del que responde (asistente).
- Content: un array donde cada elemento tiene un
type y un text. El texto es la respuesta real del modelo.
- Estadísticas de uso: tokens de entrada (16 en el ejemplo) y tokens de salida (84). Estos números son fundamentales porque el costo de la API se calcula por millón de tokens según las tablas de precios [3:40].
¿Cómo extraer solo el texto de la respuesta?
Mostrar toda la estructura es útil para depuración, pero en producción necesitas únicamente el texto. Para eso se accede al primer elemento del array content y se valida su tipo [4:16]:
typescript
const block = message.content[0];
if (block.type === "text") {
console.log(block.text);
}
Este patrón filtra el bloque, confirma que sea de tipo texto y extrae directamente la cadena con la respuesta.
¿Qué diferencia hay entre ejecutar con Bun y con Node?
Aquí aparece una diferencia práctica importante [4:50]. Bun JS detecta automáticamente las variables de entorno definidas en archivos locales como .env, lo que simplifica la ejecución:
bash
bun index.ts
Con Node JS, la situación cambia. Al intentar node index.ts se produce un error de módulo. La documentación recomienda usar npx tsx index.ts [5:20]. Pero incluso con ese comando, si no se ha exportado la variable de entorno en la terminal, la API devuelve un error de autenticación [5:42].
Para solucionarlo hay que ejecutar manualmente el export:
bash
export ANTHROPIC_API_KEY="tu-api-key"
Tras ese paso, al relanzar npx tsx index.ts la respuesta llega correctamente [6:18]. Esta diferencia evidencia por qué Bun resulta más ágil para prototipos rápidos: menos configuración, ejecución directa de TypeScript y detección automática de variables de entorno.
Con la primera conexión funcionando, el siguiente paso natural es aprender a estructurar llamados que permitan conversaciones con memoria de contexto, utilizando un endpoint diferente de Anthropic. Si ya trabajaste con OpenAI y ahora con Claude, cuéntanos cuál te parece más interesante o qué otro modelo te gustaría explorar.