Idioma
Español
Funcionalidades

Funcionalidades

Cubre seis capacidades principales: prompts de sistema, conversaciones multi-turno, llamadas a herramientas, entrada visual, respuestas en streaming y parámetros de generación. Todos los ejemplos usan el endpoint compatible con OpenAI.

Prompts de sistema

Un mensaje system establece el rol, estilo de salida y restricciones del modelo. Colócalo siempre como el primer mensaje del array messages.

Python
completion = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[
        {"role": "system", "content": "You are a professional code reviewer. Output concise technical feedback in Markdown."},
        {"role": "user", "content": "Review this code:\
def add(a, b):\
    return a + b"},
    ],
)
print(completion.choices[0].message.content)
La API nativa de Claude pasa el prompt de sistema a través del campo system de nivel superior, no dentro del array messages.

Conversaciones multi-turno

Los modelos no tienen estado. Las conversaciones multi-turno requieren que el cliente mantenga el historial y lo pase completo en cada solicitud.

messages = [
    {"role": "system", "content": "You are a patient programming teacher."},
    {"role": "user", "content": "I want to learn Python but have no programming experience"},
    {"role": "assistant", "content": "No problem! Let's start with printing Hello World..."},
    {"role": "user", "content": "What does print mean?"},
]
completion = client.chat.completions.create(model="claude-sonnet-4-6", messages=messages)
messages.append({"role": "assistant", "content": completion.choices[0].message.content})

Llamadas a herramientas

La API unificada usa el formato tools de OpenAI. Cuando el modelo necesita datos externos devuelve una llamada a herramienta; el cliente la ejecuta, devuelve el resultado y el modelo genera la respuesta final.

Python — Full tool calling loop
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get the current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string", "description": "City name e.g. Shanghai"}},
            "required": ["city"],
        },
    },
}]
messages = [{"role": "user", "content": "What's the weather in Shanghai?"}]
resp = client.chat.completions.create(model="claude-sonnet-4-6", messages=messages, tools=tools)
tool_call = resp.choices[0].message.tool_calls[0]
print("Model wants to call:", tool_call.function.name)
tool_result = '{"city": "Shanghai", "temp": "28°C", "desc": "Sunny"}'
messages.append(resp.choices[0].message)
messages.append({"role": "tool", "tool_call_id": tool_call.id, "content": tool_result})
final = client.chat.completions.create(model="claude-sonnet-4-6", messages=messages, tools=tools)
print(final.choices[0].message.content)

Entrada visual

Mezcla texto e imágenes en el array content del mensaje. Soporta URL y Base64. El modelo debe tener capacidad multimodal (ej. claude-sonnet-4-6, gpt-5.4, gemini-3.1-pro-preview).

completion = client.chat.completions.create(
    model="gpt-5.4",
    messages=[{"role": "user", "content": [
        {"type": "text", "text": "What's in this image?"},
        {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}},
    ]}],
)
print(completion.choices[0].message.content)
Formatos soportados: JPEG, PNG, GIF, WebP. Base64 es adecuado para imágenes privadas; las URLs públicas son más simples — sin codificación.

Respuestas en streaming

Establece stream: true para recibir Server-Sent Events (SSE) en fragmentos — ideal para interfaces de chat y texto largo.

stream = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "Explain quantum computing in 200 words"}],
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta: print(delta, end="", flush=True)

Parámetros de generación

Controla la aleatoriedad, longitud y condiciones de parada de la salida ajustando los parámetros de generación.

ParámetroTipoDescripción
temperaturefloat 0–2Controla la aleatoriedad. 0 = más determinista, 2 = más creativo. Típicamente 0.7–1.0.
max_tokensintegerMáx. tokens de salida. Se trunca al exceder. Usa el valor predeterminado del modelo si no se establece.
top_pfloat 0–1Muestreo nucleus. Úsalo en lugar de temperature — evita ajustar ambos.
stopstring | arraySecuencias de parada. La generación se detiene inmediatamente al encontrarlas.
nintegerGenera n candidatos a la vez, predeterminado 1. Múltiples candidatos multiplican el costo.
seedintegerSemilla aleatoria. Misma semilla + misma entrada mejora la reproducibilidad.
Python — Adjust generation parameters
completion = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "Write a short poem about autumn"}],
    temperature=0.9,
    max_tokens=256,
    stop=["\
\
\
"],
)