API
Generador de código para API
Elige un lenguaje y una tarea para obtener código que siga la documentación de Reflection, incluidos los detalles que difieren de OpenAI.
Beam-501B-A23B
Idioma
reasoning_effort
Si lo dejas vacío, se usará el valor predeterminado de la API. El razonamiento cuenta para este límite.
Instalación y clave
bash
pip install openai
export REFLECTION_API_KEY="<your API key>"Código
main.py
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.reflection.ai/openai/v1",
api_key=os.environ["REFLECTION_API_KEY"],
)
messages = [
{"role": "user", "content": "Write a short poem about sparse experts."},
]
stream = client.chat.completions.create(
model="Beam-501B-A23B",
messages=messages,
reasoning_effort="medium",
stream=True,
stream_options={"include_usage": True},
)
for chunk in stream:
if not chunk.choices: # the last chunk carries only usage
print("\n", chunk.usage)
continue
delta = chunk.choices[0].delta
reasoning = getattr(delta, "reasoning_content", None)
if reasoning:
print(reasoning, end="", flush=True)
if delta.content:
print(delta.content, end="", flush=True)El razonamiento se transmite primero en delta.reasoning_content y, después, la respuesta en delta.content. include_usage añade un fragmento final con el recuento de tokens.
Compatibilidad de parámetros
Compatible
- model, messages con los roles system, developer, user, assistant y tool
- reasoning_effort: low, medium, high, xhigh, max
- stream y stream_options.include_usage
- tools, tool_choice, parallel_tool_calls
- response_format: json_object y json_schema, con strict
- temperature, top_p, frequency_penalty, presence_penalty, seed, max_completion_tokens
No compatible
- Entradas de imagen, audio y archivos
- n distinto de 1, logprobs, logit_bias
- user, metadata, audio y prediction devuelven un error
- stop se acepta, pero no tiene efecto
- APIs de Responses, Embeddings, Images, Audio, Files, Batch y Assistants
Errores que conviene gestionar
| Estado y código | Qué significa |
|---|---|
| 400 unsupported_value | Un valor de reasoning_effort que el modelo no acepta, como none o minimal. |
| 400 missing_required_parameter | Se envió un mensaje anterior del assistant sin su reasoning_content, o falta json_schema. |
| 401 | La clave de API no está o no es válida. |
| 429 rate_limit_exceeded | Se alcanzó un límite por minuto o diario. Espera el tiempo indicado en Retry-After. |
| 503 inference_capacity_unavailable | La capacidad está agotada temporalmente. Reintenta después del tiempo indicado en Retry-After. |
Fuentes: openai-compatibility · reasoning · tool-calling · structured-outputs · errors