{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "# Probar un prompt con la API de Anthropic\n",
        "\n",
        "Cuaderno opcional para el [taller de técnicas de prompting](https://www.maquinashablantes.com/taller/tecnicas-de-prompting). Hace una llamada a la API: necesitas una clave propia de Anthropic y tu cuenta puede incurrir en cargos. No compartas la clave ni guardes el notebook con la clave dentro."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 1. Instala el cliente"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {},
      "outputs": [],
      "source": [
        "!pip -q install anthropic"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 2. Introduce la clave sin mostrarla\n",
        "\n",
        "La entrada se oculta. La clave solo se guarda en la variable de la sesión actual; no la escribas en una celda de código ni en un archivo que vayas a compartir."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {},
      "outputs": [],
      "source": [
        "from getpass import getpass\n",
        "import anthropic\n",
        "\n",
        "api_key = getpass(\"Clave de API de Anthropic: \")\n",
        "cliente = anthropic.Anthropic(api_key=api_key)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 3. Define las instrucciones y el mensaje"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {},
      "outputs": [],
      "source": [
        "system_prompt = (\n",
        "    \"Eres corrector de estilo de una editorial de libros de texto. \"\n",
        "    \"Los lectores tienen 12 años.\"\n",
        ")\n",
        "texto = \"El alumnado deberán entregar el trabajo cuando puedan.\"\n",
        "mensaje = f\"<texto>{texto}</texto>\\n\\nCorrige el texto anterior.\"\n",
        "\n",
        "respuesta = cliente.messages.create(\n",
        "    model=\"claude-sonnet-5-5\",\n",
        "    max_tokens=300,\n",
        "    system=system_prompt,\n",
        "    messages=[{\"role\": \"user\", \"content\": mensaje}],\n",
        ")\n",
        "print(respuesta.content[0].text)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 4. Cambia una sola cosa cada vez\n",
        "\n",
        "Modifica el destinatario, el texto o una instrucción; vuelve a ejecutar la celda y compara la respuesta. El resultado puede cambiar entre llamadas. Revisa el modelo disponible en tu cuenta y las condiciones de precio del proveedor antes de ejecutar."
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 5
}
