APIMaster.ai

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

  1. Node.js 22.19+ lub 24+.
  2. 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

  1. Otwórz Settings.
  2. Wybierz Models.
  3. Nie klikaj Edit na karcie DeepSeek — to oficjalny klucz.

Settings → Models

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.

Custom 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 dotyczy vision-model i nie zmienia legacy-chat.
  • Jeśli input jest 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 do defaultInput dostawcy / 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.

Lista Models


Krok 4 — Wybierz model w czacie

W selektorze wybierz model z grupy apimaster, nie z grupy DeepSeek.

Selektor modeli


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.

Czat testowy


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ź:

  1. Obsługa modelu: wybrany model faktycznie obsługuje wizję / dane wejściowe w postaci obrazów.
  2. Konfiguracja modelu: jego wpis w .dsh/settings.yaml deklaruje input: [text, image], jeśli katalog nie identyfikuje jego możliwości wizyjnych.
  3. 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żyj input na poziomie modelu, aby jawnie włączyć obsługę obrazów dla obsługiwanego modelu.
  4. 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.
  5. 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.

Powiązane