Conectar Amazon Bedrock (BYOK)
Theus es agnóstico de proveedor: un router local decide contra qué endpoint corre cada turno. Puedes usar Amazon Bedrock como backend de modelos con tus propias credenciales (BYOK) declarándolo como un proveedor más.
Cómo habla Theus con los modelos
El router de Theus enruta cada turno a un proveedor OpenAI-compatible y llama a la ruta /chat/completions de su baseURL (ver services/api/theus.ts). Es el mismo camino que usa cualquier backend, sea un modelo local o cualquier endpoint OpenAI-compatible: cambia solo la baseURL, el model y la credencial.
bedrock-runtime, firma SigV4) no expone /chat/completions por sí sola. Para usar Bedrock como backend, apunta Theus a un endpoint OpenAI-compatible que exponga los modelos de Bedrock de tu región (un gateway/proxy delante de Bedrock en tu cuenta de AWS). Theus se conecta a ese endpoint; el gateway traduce a Bedrock con tus credenciales.Opción A — Configuración interactiva
Ejecuta el comando de proveedores dentro de Theus:
/providers
- Elige Añadir proveedor y luego Endpoint personalizado.
- Base URL: la URL de tu gateway OpenAI-compatible frente a Bedrock (por ejemplo
https://tu-gateway.interno/v1). - Modelo: el identificador del modelo de Bedrock que expone tu gateway (p. ej.
amazon.nova-pro-v1:0ometa.llama3-1-70b-instruct-v1:0). - API key: la credencial que espere tu gateway. Enter en blanco para omitir y resolverla desde una variable de entorno.
- Probar conexión hace una llamada real de validación y luego Guardar (hace merge, no sobrescribe).
La key que pegues se guarda en el keychain del sistema si está disponible; si no, en ~/.theus/providers.json con permisos 0600.
Opción B — Editar ~/.theus/providers.json
El proveedor es una entrada con adapter: "openai-compatible". La clave puede resolverse de tres formas: apiKey literal, apiKeyRef (referencia al keychain) o apiKeyEnv (nombre de una variable de entorno).
{
"providers": [
{
"id": "bedrock",
"adapter": "openai-compatible",
"enabled": true,
"options": {
"baseURL": "https://tu-gateway.interno/v1",
"model": "amazon.nova-pro-v1:0",
"apiKeyEnv": "BEDROCK_GATEWAY_KEY"
}
}
],
"policy": { "text": ["bedrock"] }
}
policy.text es una lista de preferencia: el primer id habilitado es el proveedor de texto por defecto. Theus solo enruta a entradas openai-compatible habilitadas.
| Campo | Qué es |
|---|---|
id | Nombre estable del proveedor (libre, p. ej. bedrock). |
options.baseURL | Base del endpoint; Theus le añade /chat/completions. |
options.model | Identificador de modelo de Bedrock expuesto por el gateway. |
options.apiKeyEnv | Nombre de la variable de entorno con la credencial. |
options.apiKey | Alternativa: la clave literal (menos segura). |
options.apiKeyRef | Alternativa: referencia a la clave en el keychain. |
Opción C — Variables de entorno THEUS_*
Para un backend único sin escribir en providers.json, define la baseURL por entorno. Si THEUS_BASE_URL (o THEUS_OPENAI_BASE_URL) está presente, tiene prioridad sobre el archivo de configuración.
export THEUS_BASE_URL="https://tu-gateway.interno/v1"
export THEUS_MODEL="amazon.nova-pro-v1:0"
export THEUS_API_KEY="…" # o define OPENAI_API_KEY
| Variable | Efecto |
|---|---|
THEUS_BASE_URL / THEUS_OPENAI_BASE_URL | Fuerza la base del endpoint (gana sobre providers.json). |
THEUS_MODEL / THEUS_OPENAI_MODEL | Identificador del modelo a usar. |
THEUS_API_KEY / OPENAI_API_KEY | Credencial enviada como Bearer. |
THEUS_PROVIDER_ID | Etiqueta del proveedor en logs (por defecto env). |
THEUS_DISABLE_MAIN_PROVIDER=1 | Ignora este proveedor y no enumera los de config. |
Datos técnicos de Bedrock
Configura tu gateway contra la región y el runtime de tu cuenta. Datos típicos que necesitarás para conectar:
- Región: por ejemplo
us-east-1,us-west-2oeu-central-1. Elige donde tengas los modelos habilitados. - Endpoint de runtime:
bedrock-runtime.<región>.amazonaws.com. - Identificador de modelo: el model id exacto de Bedrock que quieras servir (p. ej.
amazon.nova-pro-v1:0,meta.llama3-1-70b-instruct-v1:0). - Credenciales AWS: las administra tu gateway (rol IAM o access keys), no Theus. Theus solo envía la credencial del gateway.
Fallback y verificación
Si el proveedor elegido falla (red, 4xx o 5xx), el router degrada al siguiente proveedor habilitado de la cadena y, en último término, al motor compat: un turno nunca muere por un fallo del backend. Tras configurar, valida con la acción Probar conexión de /providers, que hace una llamada real al endpoint.
apiKeyEnv o el keychain sobre apiKey literal en providers.json. Nunca comitees credenciales ni el archivo ~/.theus/providers.json a un repositorio.