REST API v1

Documentación para desarrolladores

Integra la inteligencia artificial de BimLM en tus propias aplicaciones, scripts y workflows. El API REST permite enviar mensajes al motor IA y recibir respuestas en JSON o en modo streaming.

Inicio rápido

En menos de 2 minutos puedes hacer tu primera petición:

  1. Inicia sesión en BimLM y accede a Configuración → API Keys.
  2. Pulsa Nueva clave, dale un nombre y copia la clave (solo se muestra una vez).
  3. Úsala en el header Authorization de tus peticiones.

Autenticación

Todas las peticiones deben incluir el header:

Authorization: Bearer blm_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Las claves empiezan siempre por blm_. Mantenlas en secreto: no las expongas en código público.

POST /api/ai/chat/

Envía un mensaje al modelo IA activo y recibe su respuesta.

POST /api/ai/chat/

Headers requeridos

HeaderValor
Authorization Bearer <tu_api_key>
Content-Type application/json

Body JSON

CampoTipoDescripción
message string Texto de la consulta. Obligatorio.
stream boolean Si es true, devuelve NDJSON token a token. Por defecto false.

Formato de respuesta

Con "stream": false (defecto):

{
  "response": "El hormigón HA-25 es adecuado para zapatas de cimentación…",
  "model":    "llama-3-bim-q4"
}

Modo streaming

Con "stream": true el servidor devuelve Content-Type: application/x-ndjson. Cada línea es un objeto JSON independiente:

{"token": "El"}
{"token": " hormigón"}
{"token": " HA-25"}
{"token": " es"}
...

Lee la respuesta línea a línea y concatena los valores de token para reconstruir el mensaje completo.

Ejemplos

cURL

curl -X POST https://tu-dominio.com/api/ai/chat/ \
  -H "Authorization: Bearer blm_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"message": "¿Qué es el hormigón HA-25?"}'

Python

import requests

API_KEY = "blm_xxxxxxxxxxxxxxxxxxxx"
BASE_URL = "https://tu-dominio.com"

response = requests.post(
    f"{BASE_URL}/api/ai/chat/",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
    },
    json={"message": "¿Qué es el BIM nivel 3?"},
)
data = response.json()
print(data["response"])

Python — streaming

import requests, json

API_KEY = "blm_xxxxxxxxxxxxxxxxxxxx"

with requests.post(
    "https://tu-dominio.com/api/ai/chat/",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
    },
    json={"message": "Resume el proceso constructivo de una losa", "stream": True},
    stream=True,
) as r:
    for line in r.iter_lines():
        if line:
            token = json.loads(line)["token"]
            print(token, end="", flush=True)

Códigos de error

HTTPMensajeCausa
401Authorization header requeridoNo se envió el header
401API key inválida o inactivaClave incorrecta o revocada
400JSON inválidoBody no parseable como JSON
400El campo 'message' es obligatorioFalta el campo message
503No hay modelo IA activoSin modelo configurado en la plataforma
405Método no permitidoSe usó GET en lugar de POST

Límites y buenas prácticas

  • No compartas tu API Key en repositorios públicos ni en código cliente.
  • Puedes crear múltiples claves y revocarlas de forma independiente desde tu dashboard.
  • Para peticiones largas usa el modo stream: true para evitar timeouts HTTP.
  • El modelo responde en el mismo idioma de la pregunta.