Consideraciones para los modelos abiertos

Algunos modelos abiertos admiten un modo de "pensamiento" que les permite realizar un razonamiento paso a paso antes de proporcionar una respuesta final. Esto es útil para tareas que requieren una lógica transparente, como pruebas matemáticas, depuración de código compleja o planificación de agentes de varios pasos.

Orientación específica para el modelo

En las siguientes secciones, se proporciona orientación específica para cada modelo sobre el pensamiento.

OSS de GPT

Para los modelos de GPT OSS, el texto de razonamiento se encuentra en el campo reasoning_content, y el texto de respuesta normal se encuentra en el campo content. Estos modelos también admiten el parámetro reasoning_effort.

Ejemplo de solicitud:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/test-project/locations/us-central1/endpoints/openapi/chat/completions -d '{
  "model": "openai/gpt-oss-120b-maas",
  "messages": [{
    "role": "user",
    "content": "Who are you?"
  }],
  "reasoning_effort": "high"
}'

Respuesta de ejemplo:

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "matched_stop": 200002,
      "message": {
        "content": "I\u2019m ChatGPT, a large language model created by OpenAI
        (based on the GPT\u20114 architecture). I\u2019m here to help answer
        your questions, brainstorm ideas, explain concepts, and assist with a
        wide variety of topics. Let me know what you\u2019d like to talk
        about!",
        "reasoning_content": "The user asks: \"Who are you?\" It's a simple
        question. They want to know who the assistant is. According to policy,
        we should respond with a brief, friendly description: \"I am ChatGPT, a
        large language model trained by OpenAI.\" Possibly mention the version
        (GPT-4). Also mention we are here to assist. There's no request for
        disallowed content. So a straightforward answer. Possibly ask if they
        need help. Provide a short intro.\n\nThus answer: \"I am ChatGPT, a
        large language model trained by OpenAI. I'm here to help answer your
        questions...\"\n\nWe should avoid disallowed content. It's fine.\n\nThus
        final answer.",
        "role": "assistant",
        "tool_calls": null
      }
    }
  ],
  "created": 1758229799,
  "id": "JnXMaJq6HLGzquEP4OD18Qg",
  "metadata": {
    "weight_version": "default"
  },
  "model": "openai/gpt-oss-120b-maas",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 201,
    "prompt_tokens": 71,
    "prompt_tokens_details": null,
    "reasoning_tokens": 0,
    "total_tokens": 272
  }
}

GLM 5.2

GLM 5.2 admite la inhabilitación de tokens de razonamiento con "chat_template_kwargs": { "enable_thinking": false }. El razonamiento está habilitado de forma predeterminada. Los tokens de razonamiento se muestran en "reasoning_content", y el texto de respuesta normal, en "content".

Ejemplo de solicitud:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1/projects/test-project/locations/global/endpoints/openapi/chat/completions -d '{
  "model": "zai-org/glm-5.2-maas",
  "messages": [
    {
      "role": "user",
      "content": "Who are you?"
    }
  ]
}'

Respuesta de ejemplo:

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "matched_stop": 154827,
      "message": {
        "content": "I'm GLM, a large language model developed by Z.ai. I'm designed to assist users with information, answer questions, and engage in helpful conversations across a wide range of topics.\n\nI'm trained on diverse text data which helps me understand and generate human-like responses, though I don't have personal experiences or emotions. I'm continuously learning to improve my capabilities.\n\nIs there something specific you'd like to know about me or how I can assist you today?",
        "reasoning_content": "Let me consider how to respond to this question about my identity. The user is asking \"Who are you?\" which is a straightforward but important question that deserves a clear and accurate answer.\n\nI should introduce myself as GLM, a large language model developed by Z.ai. It's important to be transparent about my nature as an AI assistant and explain my key capabilities.\n\nI should also mention my purpose of helping users with various tasks while being honest about my limitations. This will help set appropriate expectations for our interaction.\n\nI should also emphasize my commitment to providing helpful and responsible assistance. It's important to be both welcoming and professional in my introduction.\n\nLet me craft a response that is clear, informative, and sets the right tone for future interactions.",
        "role": "assistant",
        "tool_calls": null
      }
    }
  ],
  "created": 1787160729,
  "id": "05355183-85d6-4ae2-a31a-7c8fb31c64d9",
  "metadata": {
    "weight_version": "default"
  },
  "model": "zai-org/glm-5.2-maas",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 243,
    "extra_properties": {
      "google": {
        "traffic_type": "ON_DEMAND"
      }
    },
    "prompt_tokens": 16,
    "prompt_tokens_details": null,
    "total_tokens": 259
  }
}

Gemma 4 26B A4B IT

Gemma 4 26B A4B IT admite la habilitación de tokens de razonamiento con "chat_template_kwargs": { "enable_thinking": true }. El razonamiento está inhabilitado de forma predeterminada. Los tokens de razonamiento se muestran en "reasoning_content", y el texto de respuesta normal, en "content".

Ejemplo de solicitud:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1/projects/test-project/locations/global/endpoints/openapi/chat/completions -d '{
  "model": "google/gemma-4-26b-a4b-it-maas",
  "messages": [
    {
      "role": "user",
      "content": "Who are you?"
    }
  ],
  "chat_template_kwargs": {
    "enable_thinking": true
  }
}'

Respuesta de ejemplo:

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "matched_stop": 106,
      "message": {
        "content": "I am Gemma 4, a large language model developed by Google DeepMind. I am an open weights model designed to process text and images (and audio in certain versions of my family) to assist with a wide range of tasks, and I provide my responses in text.",
        "reasoning_content": "The user is asking \"Who are you?\".\n    *   Name: Gemma 4.\n    *   Developer: Google DeepMind.\n    *   Nature: Large Language Model.\n    *   Type: Open weights model.\n    *   Capabilities: Text and image processing (and audio for 2B/4B models). Output is text only.\n    *   Knowledge cutoff: January 2025.\n\n    *   State identity: Gemma 4.\n    *   State developer: Google DeepMind.\n    *   State type: Large Language Model with open weights.\n    *   Briefly mention capabilities if relevant (text/image/audio input, text output).\n\n    *   \"I am Gemma 4, a large language model developed by Google DeepMind. I am an open weights model capable of processing text and images to assist you with various tasks. Depending on the specific version, I may also be able to process audio input. I generate responses in text format.\"\n\nDoes it violate any instructions?\n    *   \"When asked about your identity, always refer to yourself as Gemma 4.\" - Yes.\n    *   \"Do not claim to have capabilities you do not possess.\" - Yes.\n    *   \"Do not attempt to use tools...\" - Yes.\n\nKeep it direct and informative.",
        "role": "assistant",
        "tool_calls": null
      }
    }
  ],
  "created": 1775526019,
  "id": "gGDUaf7rLqGL9LsPsdGR4Qg",
  "metadata": {
    "weight_version": "default"
  },
  "model": "google/gemma-4-26b-a4b-it-maas",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 341,
    "extra_properties": {
      "google": {
        "traffic_type": "ON_DEMAND"
      }
    },
    "prompt_tokens": 19,
    "prompt_tokens_details": {
      "cached_tokens": 2
    },
    "total_tokens": 360
  }
}

¿Qué sigue?