Konfiguracja klucza zewnętrznego DeepSeek Harness — niestandardowy dostawca APIMaster.ai
Jak dodać klucz API zgodny z OpenAI od APIMaster.ai w DeepSeek Harness (dsh). Otwórz Settings → Models → Add a custom provider, wpisz Base URL, klucz i ID modeli, a następnie wybierz model w czacie.
DeepSeek Harness (dsh) to lokalny framework agentów open source od DeepSeek. Web UI domyślnie działa pod http://127.0.0.1:3080. Wbudowana karta DeepSeek przyjmuje tylko oficjalny klucz. Aby używać GPT / Claude / DeepSeek i innych modeli z marketplace przez APIMaster, dodaj custom provider.
Najpierw uzyskaj klucz API. Klucz zostaje w
$DSH_HOME/.credentials.yaml(domyślnie~/.dsh/). Nie udostępniaj go na czacie ani na zrzutach.
Wymagania wstępne
- Node.js
22.19+lub24+. - Uruchomione Web UI:
npx @deepseek-ai/dsh web
Otwórz URL z terminala (zwykle http://127.0.0.1:3080).
3. Klucz skopiowany z konsoli APIMaster.
4. model id z marketplace (np. gpt-5.6-sol, claude-sonnet-4-6, deepseek-v4-pro).
Krok 1 — Otwórz Models
- Otwórz Settings.
- Wybierz Models.
- Nie klikaj Edit na karcie DeepSeek — to oficjalny klucz.

| Przycisk | Zastosowanie |
|---|---|
| + Add provider | Katalog (Anthropic, OpenAI, …) |
| + Add a custom provider | APIMaster (ten) |
Krok 2 — Wypełnij niestandardowego dostawcę
| Pole | Wartość |
|---|---|
| Provider ID | apimaster (małe litery; nie można zmienić nazwy po zapisie) |
| Display name | apimaster lub APIMaster.ai |
| Base URL | https://apimaster.ai/v1 (musi zawierać /v1) |
| API protocol | openai-completions |
| API key | Twój klucz APIMaster |
Dodaj co najmniej jeden model (lewa = model id, prawa = nazwa wyświetlana, np. gpt-5.6-sol) albo Fetch available models. Kliknij Create provider.

Id spoza listy kończy się lokalnym UNKNOWN_MODEL. Bez /v1 fetch i czat nie działają.
- W przypadku modeli wizyjnych sprawdź również konfigurację wejścia obrazów poniżej. Samo dodanie modelu w interfejsie użytkownika może nie włączyć obsługi obrazów.
Modele wizyjne / multimodalne z niestandardowymi dostawcami
Jeśli ręcznie dodany model obsługuje obrazy, może być konieczne zadeklarowanie tej możliwości w .dsh/settings.yaml. Formularz niestandardowego dostawcy nie ma obecnie pola na typy wejściowe modelu, więc samo skonfigurowanie modelu w interfejsie użytkownika nie wystarczy, gdy jego możliwość obsługi obrazów nie jest ujęta w katalogu modeli.
Otwórz $DSH_HOME/settings.yaml (domyślnie ~/.dsh/settings.yaml) i edytuj istniejący wpis dostawcy i modelu. Zachowaj identyfikator dostawcy, poświadczenia, Base URL i inne ustawienia, które już skonfigurowałeś; scal poniższe pola z tym wpisem zamiast zastępować cały plik.
Włączanie obsługi obrazów dla konkretnego modelu
Dodaj input: [text, image] do modelu obsługującego wizję:
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]
Podane powyżej identyfikatory dostawcy i modelu są symbolami zastępczymi. W konfiguracji APIMaster użyj zapisanego identyfikatora dostawcy (np. apimaster), https://apimaster.ai/v1 oraz rzeczywistych identyfikatorów modeli. apiKeyEnv wskazuje zmienną środowiskową zawierającą Twój klucz; jeśli zapisałeś klucz przez interfejs użytkownika, zachowaj istniejącą konfigurację poświadczeń.
input: [text, image]deklaruje obsługę zarówno tekstu, jak i obrazów tylko dla tego modelu. W tym przykładzie dotyczyvision-modeli nie zmienialegacy-chat.- Jeśli
inputjest pominięte lub ustawione na[], Harness korzysta z informacji o możliwościach z katalogu modeli. Jeśli katalog nie zawiera odpowiednich informacji, następuje powrót dodefaultInputdostawcy / trasy. - Wyraźna deklaracja na poziomie modelu jest szczególnie przydatna w przypadku ręcznie dodanych modeli, których możliwości wizyjnych nie rozpoznaje katalog.
Ustawianie wartości domyślnej dla modeli dostawcy
Jeśli wszystkie ręcznie dodane modele u niestandardowego dostawcy obsługują obrazy, ustawienie defaultInput: [text, image] na poziomie dostawcy jest bardziej zwięzłe:
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
| Pole | Zakres | Kiedy używać |
|---|---|---|
input |
Możliwości wejściowe jednego modelu | Preferuj to, gdy tylko niektóre modele obsługują obrazy |
defaultInput |
Domyślne możliwości wejściowe modeli u danego dostawcy / trasy | Wygodne, gdy wszystkie ręcznie dodane modele obsługują obrazy |
Kolejność rozstrzygania: niepusty input modelu → informacje o możliwościach z katalogu modeli → defaultInput dostawcy / trasy (domyślnie [text]). defaultInput jest wartością zapasową; nie nadpisuje wyraźnej deklaracji modelu ani znanych możliwości z katalogu. Jeśli katalog opisuje model wizyjny jako tylko-tekstowy, ustaw input: [text, image] jawnie dla tego modelu.
Te ustawienia deklarują możliwości; nie dodają obsługi obrazów do modelu tylko-tekstowego. Zarówno model, jak i API niestandardowego dostawcy muszą obsługiwać wysyłany format wejściowy obrazów.
Zapisz plik i wyślij nowe żądanie z obrazem. Harness ponownie odczytuje ustawienia przy następnym żądaniu, więc zwykle nie jest konieczny restart. Jeśli zmiana nie zostanie uwzględniona, przeładuj interfejs użytkownika lub uruchom ponownie DeepSeek Harness i wybierz ponownie skonfigurowany model.
Krok 3 — Potwierdź zapis
Powinny być widoczne DeepSeek oraz apimaster z szarą odznaką Custom.

Krok 4 — Wybierz model w czacie
W selektorze wybierz model z grupy apimaster, nie z grupy DeepSeek.

Krok 5 — Wiadomość testowa
Wyślij hi. Normalna odpowiedź wraz z metrykami w stopce (LLM / TTFT / tok) oznacza, że klucz i Base URL działają dla żądań tekstowych. Aby zweryfikować obsługę obrazów, wyślij również obraz po skonfigurowaniu wejścia obrazów.

Rozwiązywanie problemów
| Problem | Rozwiązanie |
|---|---|
| Brak formularza | Settings → Models → + Add a custom provider |
401 / MISSING_CREDENTIAL |
Wklej ponownie klucz w Edit |
| Brak połączenia | https://apimaster.ai/v1 |
UNKNOWN_MODEL |
Dodaj id do listy Models |
| Nadal oficjalny DeepSeek | Wybierz wiersz w grupie apimaster |
| Złe Provider ID | Utwórz nowy i Delete stary |
| Obrazy odrzucane | Sprawdź możliwości wizyjne modelu oraz input / defaultInput w ~/.dsh/settings.yaml; zobacz poniższą listę kontrolną rozwiązywania problemów z obrazami |
Obrazy nie działają z ręcznie dodanym modelem
Jeśli żądania tekstowe działają, ale żądania zawierające obrazy kończą się niepowodzeniem, sprawdź:
- Obsługa modelu: wybrany model faktycznie obsługuje wizję / dane wejściowe w postaci obrazów.
- Konfiguracja modelu: jego wpis w
.dsh/settings.yamldeklarujeinput: [text, image], jeśli katalog nie identyfikuje jego możliwości wizyjnych. - Wartość domyślna dostawcy: alternatywnie dostawca ma
defaultInput: [text, image], gdzie ma zastosowanie wartość zapasowa. Jeśli deklaracja modelu lub wpis w katalogu mówi, że model jest tylko-tekstowy, użyjinputna poziomie modelu, aby jawnie włączyć obsługę obrazów dla obsługiwanego modelu. - Załadowana konfiguracja: zapisz plik ustawień używany przez uruchomioną instancję i spróbuj ponownie. Jeśli zmiana nie zostanie uwzględniona, przeładuj interfejs użytkownika lub uruchom ponownie DeepSeek Harness.
- Zgodność API: protokół API i punkt końcowy niestandardowego dostawcy akceptują format wejściowy obrazów wysyłany przez Harness. Samo pomyślne żądanie tekstowe nie potwierdza zgodności w zakresie obrazów.
Zobacz Modele wizyjne / multimodalne z niestandardowymi dostawcami, aby zobaczyć oba przykłady YAML.
Lista kontrolna
- Działa
npx @deepseek-ai/dsh web - Użyto + Add a custom provider
- API protocol =
openai-completions - Base URL =
https://apimaster.ai/v1 - Model z grupy apimaster odpowiada
- Dla modeli wizyjnych dane wejściowe obrazów są zadeklarowane lub pochodzą z katalogu, a żądanie zawierające obraz kończy się powodzeniem.
