Configurazione chiave di terze parti DeepSeek Harness — provider personalizzato APIMaster.ai
Come aggiungere una chiave API compatibile OpenAI di APIMaster.ai in DeepSeek Harness (dsh). Apri Settings → Models → Add a custom provider, inserisci Base URL, chiave e ID modello, poi seleziona il modello in chat.
DeepSeek Harness (dsh) è il framework di agenti locale open source di DeepSeek. La Web UI è su http://127.0.0.1:3080 per impostazione predefinita. La scheda DeepSeek accetta solo la chiave ufficiale. Per GPT / Claude / DeepSeek e altri modelli del marketplace tramite APIMaster, aggiungi un custom provider.
Ottieni prima la chiave API. La chiave resta in
$DSH_HOME/.credentials.yaml(default~/.dsh/). Non condividerla in chat o screenshot.
Prerequisiti
- Node.js
22.19+o24+. - Web UI avviata:
npx @deepseek-ai/dsh web
Apri l’URL del terminale (di solito http://127.0.0.1:3080).
3. Chiave copiata dalla console APIMaster.
4. model id dal marketplace (es. gpt-5.6-sol, claude-sonnet-4-6, deepseek-v4-pro).
Passaggio 1 — Apri Models
- Apri Settings.
- Seleziona Models.
- Non fare clic su Edit sulla scheda DeepSeek: è la chiave ufficiale.

| Pulsante | Uso |
|---|---|
| + Add provider | Catalogo (Anthropic, OpenAI, …) |
| + Add a custom provider | APIMaster (questo) |
Passaggio 2 — Compila il provider personalizzato
| Campo | Valore |
|---|---|
| Provider ID | apimaster (minuscole; non rinominabile dopo il salvataggio) |
| Display name | apimaster o APIMaster.ai |
| Base URL | https://apimaster.ai/v1 (includi /v1) |
| API protocol | openai-completions |
| API key | La tua chiave APIMaster |
Aggiungi almeno un modello (sinistra = model id, destra = nome visualizzato, es. gpt-5.6-sol) oppure Fetch available models. Clicca Create provider.

Un id non in elenco fallisce in locale con UNKNOWN_MODEL. Senza /v1 falliscono fetch e chat.
- Per i modelli vision, controlla anche la configurazione dell'input immagine di seguito. Aggiungere un modello nella sola interfaccia potrebbe non abilitare le immagini.
Vision / Modelli Multimodali con Provider Personalizzati
Se un modello che aggiungi manualmente supporta le immagini, potrebbe essere necessario dichiarare tale capacità in .dsh/settings.yaml. Il modulo del provider personalizzato attualmente non ha un campo per i tipi di input del modello, quindi configurare il modello nella sola interfaccia non è sufficiente quando la sua capacità vision manca nel catalogo modelli.
Apri $DSH_HOME/settings.yaml (predefinito ~/.dsh/settings.yaml) e modifica la voce esistente del provider e del modello. Mantieni l'ID provider, le credenziali, l'URL di base e le altre impostazioni che hai già configurato; unisci i campi seguenti in quella voce invece di sostituire il file.
Abilitare le immagini per un modello specifico
Aggiungi input: [text, image] al modello che supporta la vision:
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]
Gli ID del provider e del modello sopra sono segnaposto. Per la tua configurazione APIMaster, usa il tuo Provider ID salvato (ad es. apimaster), https://apimaster.ai/v1, e gli ID modello effettivi. apiKeyEnv indica una variabile d'ambiente che contiene la tua chiave; se hai salvato la chiave tramite l'interfaccia, preserva la configurazione delle credenziali esistente.
input: [text, image]dichiara il supporto sia per l'input testuale che per le immagini solo per quel modello. In questo esempio, si applica avision-modele non modificalegacy-chat.- Se
inputè omesso o impostato a[], Harness utilizza le informazioni sulle capacità del catalogo modelli. Se il catalogo non ha informazioni corrispondenti, ricade sudefaultInputdel provider / route. - Una dichiarazione esplicita a livello di modello è particolarmente utile per modelli aggiunti manualmente di cui il catalogo non riconosce la capacità vision.
Impostare un valore predefinito per i modelli di un provider
Se tutti i modelli aggiunti manualmente sotto un provider personalizzato supportano le immagini, impostare defaultInput: [text, image] sul provider è più 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 | Ambito | Quando usarlo |
|---|---|---|
input |
Capacità di input di un singolo modello | Preferisci questo quando solo alcuni modelli supportano le immagini |
defaultInput |
Capacità di input predefinite per i modelli su quel provider / route | Comodo quando tutti i modelli aggiunti manualmente supportano le immagini |
Ordine di risoluzione: input modello non vuoto → informazioni sulle capacità del catalogo modelli → defaultInput del provider / route (che per impostazione predefinita è [text]). defaultInput è un fallback; non sovrascrive una dichiarazione esplicita del modello né capacità note del catalogo. Se il catalogo descrive un modello vision come solo testo, imposta esplicitamente input: [text, image] su quel modello.
Queste impostazioni dichiarano capacità; non aggiungono supporto vision a un modello solo testo. Sia il modello che l'API del provider personalizzato devono supportare il formato di input immagine inviato.
Salva il file e invia una nuova richiesta con un'immagine. Harness rilegge le impostazioni alla richiesta successiva, quindi di norma non è necessario un riavvio. Se la modifica non ha effetto, ricarica l'interfaccia o riavvia DeepSeek Harness e seleziona di nuovo il modello configurato.
Passaggio 3 — Conferma il salvataggio
Devono comparire DeepSeek e apimaster con badge grigio Custom.

Passaggio 4 — Seleziona il modello in chat
Nel selettore scegli il modello nel gruppo apimaster, non in DeepSeek.

Passaggio 5 — Messaggio di prova
Invia hi. Una risposta normale con le metriche a piè di pagina (LLM / TTFT / tok) significa che la chiave e l'URL di base funzionano per le richieste di testo. Per verificare il supporto vision, invia anche un'immagine dopo aver configurato l'input immagine.

Risoluzione problemi
| Problema | Soluzione |
|---|---|
| Form non trovato | Settings → Models → + Add a custom provider |
401 / MISSING_CREDENTIAL |
Incolla di nuovo la chiave in Edit |
| Nessuna connessione | https://apimaster.ai/v1 |
UNKNOWN_MODEL |
Aggiungi l’id all’elenco Models |
| Usa ancora DeepSeek ufficiale | Scegli la riga del gruppo apimaster |
| Provider ID errato | Creane uno nuovo e Delete il vecchio |
| Immagini rifiutate | Controlla la capacità vision del modello e input / defaultInput in ~/.dsh/settings.yaml; vedi la checklist di risoluzione dei problemi per le immagini di seguito |
Le immagini non funzionano con un modello aggiunto manualmente
Se le richieste testuali funzionano ma quelle che contengono immagini falliscono, controlla:
- Supporto del modello: il modello selezionato supporta effettivamente input vision / immagine.
- Configurazione del modello: la sua voce in
.dsh/settings.yamldichiarainput: [text, image]se il catalogo non identifica la sua capacità vision. - Predefinito del provider: in alternativa, il provider ha
defaultInput: [text, image]dove si applica il fallback. Se una dichiarazione del modello o una voce di catalogo indica solo testo, usainputa livello di modello per abilitare esplicitamente le immagini per un modello supportato. - Configurazione caricata: salva il file delle impostazioni usato dall'istanza in esecuzione e riprova. Se la modifica non viene riflessa, ricarica l'interfaccia o riavvia DeepSeek Harness.
- Compatibilità API: il protocollo API e l'endpoint del provider personalizzato accettano il formato di input immagine inviato da Harness. Una richiesta testuale riuscita da sola non verifica la compatibilità con le immagini.
Vedi Vision / Modelli Multimodali con Provider Personalizzati per entrambi gli esempi YAML.
Checklist
-
npx @deepseek-ai/dsh webin esecuzione - Usato + Add a custom provider
- API protocol =
openai-completions - Base URL =
https://apimaster.ai/v1 - Il modello del gruppo apimaster risponde
- Per i modelli vision, l'input immagine è dichiarato o risolto dal catalogo e una richiesta contenente un'immagine ha successo
