Skip to main content

ThaliqConfig

import { Thaliq } from '@thaliq/sdk';

const thaliq = new Thaliq({
  // --- Requerido ---
  apiKey: 'tq_live_xxx',

  // --- Opcionales ---
  baseUrl: 'https://api.thaliq.com',
  timeout: 30000,
  maxRetries: 2,
  integrationType: 'sdk',
  defaultHeaders: {},
  logger: console,
});

Opciones

OpcionTipoDefaultDescripcion
apiKeystringrequeridoAPI Key de tu tenant
baseUrlstringhttps://api.thaliq.comURL base de la API
timeoutnumber30000Timeout para requests HTTP (ms)
maxRetriesnumber2Maximo de reintentos automaticos
integrationType'sdk' | 'widget''sdk'Tipo de integracion (controla tools disponibles)
defaultHeadersRecord<string, string>{}Headers custom en cada request
loggerLoggerconsoleLogger personalizado
providerProviderThaliqNativeProviderProvider custom (avanzado)

Retry

El SDK reintenta automaticamente requests que fallan por errores transitorios: Se reintentan:
  • Status 500, 502, 503, 504 (errores de servidor)
  • Errores de red (connection reset, timeout)
No se reintentan:
  • Status 400 (request invalido)
  • Status 401, 403 (autenticacion)
  • Status 429 (rate limit)
El backoff es exponencial: baseDelay * 2^attempt con jitter aleatorio, hasta un maximo de 10 segundos.

Logger personalizado

Puedes pasar un logger custom que implemente la interfaz Logger:
interface Logger {
  debug(message: string, ...args: unknown[]): void;
  info(message: string, ...args: unknown[]): void;
  warn(message: string, ...args: unknown[]): void;
  error(message: string, ...args: unknown[]): void;
}
Ejemplo con un logger que solo muestra errores:
const thaliq = new Thaliq({
  apiKey: 'tq_live_xxx',
  logger: {
    debug: () => {},
    info: () => {},
    warn: () => {},
    error: (msg, ...args) => console.error('[Thaliq]', msg, ...args),
  },
});

Provider personalizado

Para casos avanzados, puedes implementar tu propio provider:
import { Thaliq, type Provider } from '@thaliq/sdk';

class MyProvider implements Provider {
  readonly name = 'my-custom';

  async chat(request) {
    // Tu implementacion
  }

  async *stream(request) {
    // Tu implementacion con AsyncIterable
  }
}

const thaliq = new Thaliq({
  apiKey: 'tq_live_xxx',
  provider: new MyProvider(),
});
En v1.x, el unico provider disponible es ThaliqNativeProvider (que se comunica con la API de Thaliq). En versiones futuras se anadiran providers directos para Anthropic, OpenAI y otros.

Siguiente paso

Streaming

Aprende sobre los 12 tipos de eventos SSE.

Feedback e Insights

Califica respuestas y consume insights.

Changelog

Ver cambios de v1.1 y guia de migracion.