ESPACIO PUBLICITARIO DISPONIBLE · HABLEMOS

Cómo configurar claves de API, seleccionar endpoints de modelos e implementar Function Calling con la API xAI Grok

365Finds Editorial
11.430 artículos Wiki recopilados

Usa 365 Wiki con tu IA

Copia el prompt de abajo, pégalo en la IA que ya usas y haz tu pregunta.

Descargar el Skill completo

Pruébalo primero con el prompt. Si usas 365 Wiki a menudo, instala el Skill completo de 365Wiki y no tendrás que volver a pegarlo. Si no tienes una IA habitual, también sirven las versiones web de Gemini o Microsoft Copilot.

La integración de los modelos Grok de xAI en aplicaciones de software resulta ágil y directa gracias a la compatibilidad nativa con el protocolo estándar de OpenAI y los SDK oficiales de xAI. Al operar sobre la URL base https://api.x.ai/v1, la API de Grok permite autenticarse mediante tokens Bearer estándar, seleccionar entre modelos de razonamiento insignia como grok-4.7 o motores rápidos para código como grok-build-0.1, y orquestar llamadas a funciones (Function Calling / Tool Calling) de múltiples turnos para conectar al modelo con bases de datos internas y servicios externos.

Esta guía detalla paso a paso la configuración de credenciales, la selección del endpoint adecuado para cada carga de trabajo y la implementación de llamadas a funciones en entornos de producción.


1. Configuración de autenticación y claves de API

La gestión de credenciales para la API de Grok se realiza desde la consola de xAI (https://console.x.ai).

Paso 1: Generar la clave de API

  1. Regístrese o inicie sesión en la xAI Console.
  2. En la sección Billing (Facturación), recargue saldo en su cuenta para habilitar el consumo de tokens.
  3. Diríjase a la sección API Keys (https://console.x.ai/team/default/api-keys) y presione Create API Key.
  4. Copie la clave generada inmediatamente y guárdela en un gestor seguro; por motivos de seguridad, la consola no la mostrará de nuevo tras cerrar la ventana.

Paso 2: Configurar las variables de entorno

Configure la clave en una variable de entorno denominada XAI_API_KEY:

export XAI_API_KEY="xai-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

En entornos Node.js o Python, almacénela en el archivo .env en la raíz de su proyecto:

XAI_API_KEY=xai-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Paso 3: Inicializar el SDK del cliente

Dado que xAI adopta los esquemas de OpenAI y los estándares REST, los desarrolladores pueden utilizar la biblioteca oficial xai-sdk, la librería estándar openai o Vercel AI SDK.

Python (con la librería openai):

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("XAI_API_KEY"),
    base_url="https://api.x.ai/v1",
)

Python (con el SDK nativo xai-sdk):

import os
from xai_sdk import Client

client = Client(api_key=os.getenv("XAI_API_KEY"))

Node.js / TypeScript (con la librería openai):

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.XAI_API_KEY,
  baseURL: "https://api.x.ai/v1",
});

2. Selección de endpoints y modelos

xAI ofrece dos interfaces HTTP principales y una familia de modelos optimizados para diferentes niveles de latencia, coste y ventana de contexto.

Protocolos de endpoint: /v1/responses frente a /v1/chat/completions

Comparativa de modelos de lenguaje y razonamiento

Nombre de modelo / AliasVentana de contextoCaso de uso principalPrecio (por 1 millón de tokens)
grok-4.7 (grok-4.7-latest)500.000 tokensModelo insignia para flujos complejos de agentes, razonamiento profundo en código, invocación de herramientas y esfuerzo reflexivo configurable (low, medium, high, xhigh).$2,00 entrada / $6,00 salida ($0,50 en caché)
grok-build-0.1 (grok-code-fast-1)256.000 tokensModelo de alta velocidad optimizado para generación y autocompletado de código, refactorización y pruebas unitarias.$1,00 entrada / $2,00 salida ($0,20 en caché)
grok-4.3 (grok-4.3-latest)1.000.000 tokensVentana masiva de 1 millón de tokens para analizar grandes repositorios o documentación extensa a bajo coste.$1,25 entrada / $2,50 salida ($0,20 en caché)
grok-4.20-multi-agent-03091.000.000 tokensArquitectura especializada en coordinación multi-agente, consenso y distribución de tareas complejas.$1,25 entrada / $2,50 salida ($0,20 en caché)

Nota: xAI también cuenta con APIs dedicadas para audio en tiempo real con grok-voice-think-fast-2.0 (Voice API) y generación de imágenes y vídeo con grok-imagine-image-2.0 (Imagine API).


3. Implementación de llamadas a funciones (Function Calling)

Function Calling dota a Grok de capacidad agéntica: el modelo no intenta adivinar datos confidenciales o dinámicos, sino que genera argumentos estructurados en JSON para delegar la ejecución en su software.

Ciclo de vida de una llamada a herramienta

  1. Definición de herramientas: El desarrollador suministra un array de herramientas con esquemas JSON Schema (name, description, parameters).
  2. Evaluación del modelo: Grok interpreta la solicitud del usuario y decide si requiere invocar una función para obtener información complementaria.
  3. Emisión de la llamada: El modelo detiene la generación de texto y devuelve un objeto tool_calls con el nombre de la función y los argumentos serializados.
  4. Ejecución local: La aplicación ejecuta la lógica de negocio correspondiente con los parámetros recibidos.
  5. Retorno de resultados: La salida se envía de vuelta a Grok, que sintetiza la respuesta final orientada al usuario.

Código de implementación integral (Python con cliente OpenAI)

El siguiente ejemplo muestra cómo definir una herramienta de consulta de cuentas, enviar la petición al endpoint responses, procesar la llamada emitida por Grok y reanudar la conversación:

import os
import json
from openai import OpenAI

# 1. Inicializar cliente
client = OpenAI(
    api_key=os.getenv("XAI_API_KEY"),
    base_url="https://api.x.ai/v1",
)

# 2. Definir herramientas con JSON Schema
tools = [
    {
        "type": "function",
        "name": "fetch_user_account",
        "description": "Obtiene los detalles del usuario, nivel de suscripción y estado actual según su ID de cuenta.",
        "parameters": {
            "type": "object",
            "properties": {
                "account_id": {
                    "type": "string",
                    "description": "Identificador único de la cuenta, ej. 'usr_10294'"
                },
                "include_usage_stats": {
                    "type": "boolean",
                    "description": "Indica si se deben adjuntar las métricas de consumo de tokens del ciclo actual.",
                    "default": False
                }
            },
            "required": ["account_id"]
        }
    }
]

# Simulación de función de backend
def execute_fetch_user_account(account_id: str, include_usage_stats: bool = False):
    return {
        "account_id": account_id,
        "name": "Alex Mercer",
        "tier": "Enterprise",
        "status": "Active",
        "usage_tokens": 1420500 if include_usage_stats else None
    }

# 3. Petición inicial del usuario
user_query = "Por favor verifica la cuenta usr_10294 y comprueba si tiene un plan Enterprise activo."

response = client.responses.create(
    model="grok-4.7",
    input=[{"role": "user", "content": user_query}],
    tools=tools,
)

# 4. Procesar la llamada a la función
for item in response.output:
    if item.type == "function_call":
        func_name = item.name
        func_args = json.loads(item.arguments)
        call_id = item.call_id
        
        print(f"Llamada solicitada: {func_name} con parámetros: {func_args}")
        
        if func_name == "fetch_user_account":
            tool_result = execute_fetch_user_account(**func_args)
            
            # 5. Enviar el resultado de la herramienta de vuelta a Grok
            followup = client.responses.create(
                model="grok-4.7",
                input=[{
                    "type": "function_call_output",
                    "call_id": call_id,
                    "output": json.dumps(tool_result)
                }],
                tools=tools,
                previous_response_id=response.id,
            )
            
            # Imprimir la respuesta final elaborada por Grok
            for followup_item in followup.output:
                if followup_item.type == "message":
                    print("\nRespuesta final:\n", followup_item.content[0].text)

4. Consideraciones técnicas y capacidades avanzadas

Para diseñar una integración sólida en producción, conviene considerar los siguientes aspectos de arquitectura:


Referencias