Configuración de clave de terceros en DeepSeek Harness — proveedor personalizado APIMaster.ai
Cómo añadir una clave API compatible con OpenAI de APIMaster.ai en DeepSeek Harness (dsh). Abre Settings → Models → Add a custom provider, indica Base URL, clave e IDs de modelo y selecciónalo en el chat.
DeepSeek Harness (dsh) es el marco de agentes local de código abierto de DeepSeek. La Web UI usa por defecto http://127.0.0.1:3080. La tarjeta DeepSeek solo acepta la clave oficial. Para usar GPT / Claude / DeepSeek y otros modelos del marketplace con APIMaster, añade un custom provider.
Obtén una clave API primero. La clave se guarda en
$DSH_HOME/.credentials.yaml(por defecto~/.dsh/). No la compartas en chats ni capturas.
Requisitos previos
- Node.js
22.19+o24+. - Web UI en marcha:
npx @deepseek-ai/dsh web
Abre la URL del terminal (normalmente http://127.0.0.1:3080).
3. Clave copiada de la consola de APIMaster.
4. model id del marketplace (p. ej. gpt-5.6-sol, claude-sonnet-4-6, deepseek-v4-pro).
Paso 1 — Abrir Models
- Abre Settings.
- Elige Models en la barra lateral.
- No pulses Edit en la tarjeta DeepSeek: es la clave oficial.

| Botón | Uso |
|---|---|
| + Add provider | Catálogo (Anthropic, OpenAI, …) |
| + Add a custom provider | APIMaster (este) |
Paso 2 — Completar el proveedor personalizado
| Campo | Valor |
|---|---|
| Provider ID | apimaster (minúsculas; no se puede renombrar después) |
| Display name | apimaster o APIMaster.ai |
| Base URL | https://apimaster.ai/v1 (incluye /v1) |
| API protocol | openai-completions |
| API key | Tu clave de APIMaster |
Añade al menos un modelo (id a la izquierda, nombre a la derecha, p. ej. gpt-5.6-sol) o usa Fetch available models. Pulsa Create provider.

Un id no listado falla en local con UNKNOWN_MODEL. Sin /v1 fallan el descubrimiento y el chat.
- Para modelos de visión, revise también la configuración de entrada de imágenes a continuación. Agregar un modelo solo en la interfaz puede no habilitar las imágenes.
Modelos de visión / multimodales con proveedores personalizados
Si un modelo que agrega manualmente admite imágenes, puede que necesite declarar esa capacidad en .dsh/settings.yaml. El formulario de proveedores personalizados actualmente no tiene un campo para los tipos de entrada del modelo, por lo que configurar el modelo solo en la interfaz no es suficiente cuando su capacidad de visión no está en el catálogo de modelos.
Abra $DSH_HOME/settings.yaml (por defecto ~/.dsh/settings.yaml) y edite la entrada existente del proveedor y del modelo. Mantenga el ID de proveedor, las credenciales, la URL base y los demás ajustes que ya configuró; combine los campos siguientes en esa entrada en lugar de reemplazar el archivo.
Habilitar imágenes para un modelo específico
Agregue input: [text, image] al modelo que admite visión:
llm-pi-ai:
providers:
my-gateway:
apiKeyEnv: GATEWAY_API_KEY
api: openai-completions
baseURL: https://your-api-endpoint/v1
models:
- id: legacy-chat
- id: vision-model
input: [text, image]
Los IDs de proveedor y de modelo anteriores son marcadores de posición. Para su configuración de APIMaster, use su ID de proveedor guardado (p. ej. apimaster), https://apimaster.ai/v1 y los IDs de modelo reales. apiKeyEnv designa una variable de entorno que contiene su clave; si guardó la clave mediante la interfaz, conserve la configuración de credenciales existente.
input: [text, image]declara compatibilidad tanto con texto como con imágenes solo para ese modelo. En este ejemplo, se aplica avision-modely no cambialegacy-chat.- Si
inputse omite o se establece como[], Harness usa la información de capacidades del catálogo de modelos. Si el catálogo no tiene información correspondiente, recurre aldefaultInputdel proveedor / ruta. - Una declaración explícita a nivel de modelo es especialmente útil para modelos agregados manualmente cuya capacidad de visión el catálogo no reconoce.
Establecer un valor predeterminado para los modelos de un proveedor
Si todos los modelos agregados manualmente bajo un proveedor personalizado admiten imágenes, establecer defaultInput: [text, image] en el proveedor es más conciso:
llm-pi-ai:
providers:
vision-gateway:
apiKeyEnv: GATEWAY_API_KEY
api: openai-completions
baseURL: https://your-api-endpoint/v1
defaultInput: [text, image]
models:
- id: first-model
- id: second-model
| Campo | Alcance | Cuándo usarlo |
|---|---|---|
input |
Capacidades de entrada de un modelo | Prefiera esta opción cuando solo algunos modelos admiten imágenes |
defaultInput |
Capacidades de entrada predeterminadas para los modelos de ese proveedor / ruta | Conveniente cuando todos los modelos agregados manualmente admiten imágenes |
Orden de resolución: input de modelo no vacío → información de capacidades del catálogo de modelos → defaultInput del proveedor / ruta (que por defecto es [text]). defaultInput es un respaldo; no anula una declaración explícita de modelo ni las capacidades conocidas del catálogo. Si el catálogo describe un modelo de visión como solo texto, establezca input: [text, image] explícitamente en ese modelo.
Estos ajustes declaran capacidades; no agregan compatibilidad con visión a un modelo solo de texto. El modelo y la API del proveedor personalizado deben admitir el formato de entrada de imagen que se envía.
Guarde el archivo y envíe una nueva solicitud con una imagen. Harness vuelve a leer los ajustes en la siguiente solicitud, por lo que normalmente no es necesario reiniciar. Si el cambio no se aplica, recargue la interfaz o reinicie DeepSeek Harness y seleccione el modelo configurado nuevamente.
Paso 3 — Confirmar el guardado
Debes ver DeepSeek y apimaster con insignia gris Custom.

Paso 4 — Elegir el modelo en el chat
En el selector, elige el modelo del grupo apimaster, no del grupo DeepSeek.

Paso 5 — Mensaje de prueba
Envíe hi. Una respuesta normal junto con las métricas del pie de página (LLM / TTFT / tok) significa que la clave y la URL base funcionan para solicitudes de texto. Para verificar la visión, envíe también una imagen después de configurar la entrada de imágenes.

Solución de problemas
| Problema | Solución |
|---|---|
| No aparece el formulario | Settings → Models → + Add a custom provider |
401 / MISSING_CREDENTIAL |
Vuelve a pegar la clave en Edit |
| Sin conexión | https://apimaster.ai/v1 |
UNKNOWN_MODEL |
Añade el id a Models |
| Sigue usando DeepSeek oficial | Elige la fila del grupo apimaster |
| Provider ID incorrecto | Crea uno nuevo y Delete el anterior |
| Imágenes rechazadas | Compruebe la capacidad de visión del modelo y input / defaultInput en ~/.dsh/settings.yaml; consulte la lista de verificación de solución de problemas de imágenes a continuación |
Las imágenes no funcionan con un modelo agregado manualmente
Si las solicitudes de texto funcionan pero las solicitudes que contienen imágenes fallan, compruebe:
- Compatibilidad del modelo: el modelo seleccionado realmente admite visión / entrada de imágenes.
- Configuración del modelo: su entrada en
.dsh/settings.yamldeclarainput: [text, image]si el catálogo no identifica su capacidad de visión. - Predeterminado del proveedor: alternativamente, el proveedor tiene
defaultInput: [text, image]donde se aplica el respaldo. Si una declaración de modelo o una entrada del catálogo indica solo texto, useinputa nivel de modelo para habilitar explícitamente las imágenes en un modelo compatible. - Configuración cargada: guarde el archivo de ajustes utilizado por la instancia en ejecución y vuelva a intentarlo. Si el cambio no se refleja, recargue la interfaz o reinicie DeepSeek Harness.
- Compatibilidad de API: el protocolo de API y el endpoint del proveedor personalizado aceptan el formato de entrada de imagen que envía Harness. Una solicitud de texto exitosa por sí sola no verifica la compatibilidad con imágenes.
Consulte Modelos de visión / multimodales con proveedores personalizados para ver ambos ejemplos YAML.
Lista de comprobación
-
npx @deepseek-ai/dsh weben ejecución - Usaste + Add a custom provider
- API protocol =
openai-completions - Base URL =
https://apimaster.ai/v1 - El modelo del grupo apimaster responde
- Para modelos de visión, la entrada de imágenes está declarada o resuelta desde el catálogo, y una solicitud que contiene una imagen se completa correctamente.
