Wskaż Continue na niestandardowy endpoint kompatybilny z OpenAI.

Updated 2026-07-29

Continue konfiguruje modele deklaratywnie w config.yaml. Ustaw provider na openai, wskaż apiBase na https://api.apisrouter.com/v1, a każdy dodany blok modelu staje się wybieralny w rozszerzeniu, z rolami chat, edit i apply przypisywalnymi per model pod jednym kluczem.

Szybka odpowiedź: blok modelu z provider openai i apiBase.

Provider openai w Continue akceptuje nadpisanie apiBase, co jest udokumentowaną ścieżką dla dowolnego serwera kompatybilnego z OpenAI. Dodaj blok modelu do config.yaml z provider ustawionym na openai, apiBase ustawionym na https://api.apisrouter.com/v1, dokładnym identyfikatorem modelu i swoim kluczem. Model pojawi się w selektorze modeli Continue, a każde jego żądanie trafi do bramki przez standardowe /v1/chat/completions. Ten sam mechanizm obejmuje dowolną liczbę modeli: jeden blok na identyfikator, wszystkie współdzielące ten sam apiBase i klucz. Ponieważ Continue traktuje pole model jako zwykły string, identyfikatory różnych dostawców — Claude obok GPT obok DeepSeek — siedzą obok siebie w jednym pliku konfiguracyjnym.

models:
  - name: Claude Sonnet 4.6
    provider: openai
    model: claude-sonnet-4-6
    apiBase: https://api.apisrouter.com/v1
    apiKey: sk-APIsRouter-...
    roles:
      - chat
      - edit
      - apply

Jak Continue przydziela pracę modelom: role.

Continue (continuedev na GitHubie, ok. 34 tys. gwiazdek) to agent IDE dla VS Code i JetBrains, a jego definiującą ideą konfiguracji są role. Każdy blok modelu niesie listę roles, a Continue kieruje każdy rodzaj pracy do modelu trzymającego daną rolę: chat do panelu konwersacji i pracy agenta, edit do inline'owych transformacji kodu, apply do scalania zaproponowanych zmian z plikami, plus autocomplete, embed i rerank dla odpowiadających im podsystemów. To dźwignia, która czyni wielodostawcowy endpoint interesującym konkretnie w Continue. Chat chce najsilniejszego modelu, jaki możesz uzasadnić; edit i apply to krótsze, bardziej mechaniczne wywołania, w których wystarczy szybki identyfikator średniego poziomu. Przy jednym apiBase obsługującym każdego dostawcę ten podział to czysty YAML: identyfikator Claude trzymający chat, szybki identyfikator trzymający edit i apply, jeden klucz na wszystkie. Jedna uczciwa granica: autocomplete to obciążenie typu fill-in-the-middle, a rola autocomplete w Continue jest zbudowana wokół modeli trenowanych do tego formatu uzupełniania, a nie do czatu. Bramka chat-completions to właściwy dom dla ruchu chat, edit i apply; trzymaj autocomplete na dowolnej konfiguracji zdolnej do FIM, której używasz dziś, zamiast przypisywać tę rolę modelowi czatowemu i oczekiwać dobrych sugestii.

Pełna konfiguracja: kilka modeli, podzielone role, zadeklarowany kontekst.

Plik konfiguracyjny znajduje się pod ~/.continue/config.yaml. name każdego bloku to etykieta pokazana w selektorze; model to dokładny identyfikator, który obsługuje bramka. defaultCompletionOptions.contextLength deklaruje okno kontekstu modelu, a Continue używa go, żeby zdecydować, ile kontekstu konwersacji i plików zapakować do żądania, więc pozostawienie zachowawczej wartości domyślnej na modelu z długim kontekstem obcina kontekst wcześniej, niż powinno. Możliwości są zwykle wykrywane automatycznie, ale dla identyfikatorów, których Continue nie rozpoznaje, możesz je zadeklarować jawnie: capabilities: [tool_use] mówi trybowi agenta, że może napędzać tym modelem narzędzia. Co do kluczy: YAML akceptuje dosłowny apiKey, co jest w porządku dla lokalnego pliku, który nigdy nie opuszcza Twojego komputera. Continue obsługuje też składnię szablonu sekretów w formie ${{ secrets.APISROUTER_API_KEY }} dla konfiguracji zarządzanych przez jego hub, co trzyma dosłowną wartość poza współdzielonymi plikami. Użyj formy, która pasuje do tego, gdzie żyje Twoja konfiguracja.

models:
  - name: Claude Sonnet 4.6
    provider: openai
    model: claude-sonnet-4-6
    apiBase: https://api.apisrouter.com/v1
    apiKey: ${{ secrets.APISROUTER_API_KEY }}
    roles: [chat, edit]
    capabilities: [tool_use]
    defaultCompletionOptions:
      contextLength: 200000

  - name: Claude Haiku 4.5
    provider: openai
    model: claude-haiku-4-5-20251001
    apiBase: https://api.apisrouter.com/v1
    apiKey: ${{ secrets.APISROUTER_API_KEY }}
    roles: [edit, apply]

  - name: GPT-5.5
    provider: openai
    model: gpt-5.5
    apiBase: https://api.apisrouter.com/v1
    apiKey: ${{ secrets.APISROUTER_API_KEY }}
    roles: [chat]

Dobór modeli per rola.

Przypisanie ról jest też mechanizmem porównania. Trzymaj edit i apply na stałe, wymieniaj blok chat między dwoma kandydującymi identyfikatorami przez tydzień każdy, i pozwól, żeby widok użycia per klucz wycenił różnicę na Twoim prawdziwym obciążeniu. Każdy kandydat to trzy linie YAML względem tego samego endpointu.

  • chat dźwiga pętlę agenta i długie konwersacje: czytanie plików, planowanie edycji, odpowiadanie na pytania w oparciu o prawdziwy kontekst. Tutaj należy flagowy model (claude-sonnet-4-6, gpt-5.5) i to tu idzie większość Twoich tokenów.
  • edit obsługuje transformacje zaznaczonego kodu. Wywołania są krótsze i bardziej mechaniczne niż w chat, więc szybki identyfikator, taki jak claude-haiku-4-5-20251001 albo gpt-5.4-mini, utrzymuje pętlę edycji zwartą bez pogorszenia wyników.
  • apply scala zaproponowane zmiany z plikami. To najbardziej mechaniczna z tych trzech ról i najbardziej oczywisty kandydat na najtańszy zdolny model, w tym deepseek-v4-flash.
  • embed i rerank napędzają wyszukiwanie w bazie kodu i są osobnymi podsystemami z własnymi kształtami modeli; przeniesienie ruchu chat na bramkę nie wymaga ich dotykania.

Płatność za użycie · poniżej cen oficjalnych

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ModelCena oficjalnaNasza cena
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M
GPT-5.5$5.00 / $30.00 per M$4.00 / $24.00 per M
GPT-5.4 mini$0.75 / $4.50 per M$0.60 / $3.60 per M
DeepSeek V4 Flash$0.14 / $0.28 per M$0.10 / $0.30 per M

Tryby awarii charakterystyczne dla Continue.

apiBase bez /v1. Continue dokleja ścieżki tras, takie jak /chat/completions, do podanej przez Ciebie bazy, więc https://api.apisrouter.com/v1 jest poprawne, a sam host już nie. Błąd w kształcie 404 przy pierwszym użyciu to prawie zawsze to. Wcięcia YAML po cichu przekształcają konfigurację. models to lista bloków, a źle wcięty apiBase dołącza się do niewłaściwego wpisu albo do niczego. Gdy jeden model działa, a jego sąsiad nie może się uwierzytelnić, porównaj ich wcięcia, zanim podejrzewasz bramkę. Przełącznik legacy completions. Provider openai domyślnie używa /chat/completions, co obsługuje bramka. useLegacyCompletionsEndpoint: true przekierowuje blok na starszą trasę /completions; jeśli blok ma to ustawione, żądania w kształcie chat przestają działać dla tego modelu. Oczekiwania Responses API dla identyfikatorów z serii GPT. Niektóre ścieżki Continue mogą próbować nowszego protokołu responses OpenAI dla pewnych nazw modeli OpenAI. Bramka chat-completions nie obsługuje tego protokołu; jeśli blok z serii GPT zawodzi błędem w kształcie trasy, ustaw na tym bloku useResponsesApi: false, żeby pozostał na /chat/completions. Nieaktualne contextLength. Continue pakuje kontekst zgodnie z defaultCompletionOptions.contextLength, a nie zgodnie z tym, co model mógłby przyjąć. Zadeklarowanie 32k na modelu 200k niczego widocznie nie psuje; po cichu tylko odrzuca kontekst, za który zapłaciłeś. Deklaruj to, co model faktycznie obsługuje.

Kto kieruje Continue przez bramkę.

  • Deweloperzy stawiający na IDE, którzy chcą mieć Claude, GPT i DeepSeek wybieralne wewnątrz VS Code albo JetBrains, bez utrzymywania jednego zestawu poświadczeń na dostawcę.
  • Zespoły dzielące role według profilu kosztu: flagowy chat, szybkie edit i apply, każda rola trzymająca pasujący do niej identyfikator, wszystko rozliczane na jednej powierzchni.
  • Inżynierowie porównujący modele czatowe na prawdziwej pracy. Każdy kandydat to jeden blok YAML względem tego samego apiBase, a nie nowa integracja providera.
  • Liderzy zespołów standaryzujący onboarding: jeden szablon config.yaml plus jeden APISROUTER_API_KEY zastępuje listę kontrolną kluczy per dostawca, a użycie per klucz pokazuje, ile wydaje każde stanowisko.
  • Deweloperzy bez dostępu do rozliczeń danego dostawcy. Dostęp oparty na doładowaniu, bez wymogu karty, usuwa zależność od rejestracji u każdego providera.

Zweryfikuj endpoint i debuguj pierwsze żądanie.

Wylistuj, co obsługuje bramka, zanim zaczniesz edytować YAML; identyfikatory zwracane przez /v1/models to dokładnie te stringi, którym muszą odpowiadać Twoje pola model. Awarie pierwszego żądania podążają za wzorcem. 401 oznacza, że klucz w tym konkretnym bloku jest błędny albo referencja do sekretu się nie rozwiązała; sprawdź blok, który zawiódł, a nie plik ogólnie, bo klucze per blok oznaczają awarie per blok. Błąd model-not-found to literówka w identyfikatorze, łącznie z sufiksem wersji. Błąd w kształcie trasy na identyfikatorze z serii GPT wskazuje na opisany wyżej przełącznik responses-API. A jeśli rozszerzenie w ogóle nie pokazuje niestandardowych modeli, YAML się nie sparsował; najpierw zwaliduj strukturę pliku. Gdy żądania już płyną, konsola APIsRouter pokazuje model per żądanie, liczbę tokenów i wydatki. Ponieważ Continue dzieli pracę między role, widok użycia to też pierwsze miejsce, w którym widzisz proporcję ruchu chat do edit na Twoim prawdziwym obciążeniu — liczbę, która mówi, gdzie wybór modelu faktycznie ma znaczenie.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50

Częste pytania

Czy Continue może używać modeli Claude i DeepSeek przez provider openai?

Tak. Provider openai z ustawionym apiBase to udokumentowana ścieżka dla dowolnego serwera kompatybilnego z OpenAI, a Continue przekazuje pole model jako zwykły string. Działa dowolny identyfikator obsługiwany przez endpoint, w tym identyfikatory Claude i DeepSeek, jeden blok modelu na identyfikator.

Czy wszystkie moje bloki modeli współdzielą jeden apiBase i klucz?

Każdy blok deklaruje własny apiBase i apiKey, więc mogą współdzielić wartości albo nie. Wskazanie kilku bloków na ten sam endpoint z tym samym kluczem jest normalne, a kotwice YAML pozwalają zadeklarować tę parę raz i odwoływać się do niej w każdym bloku.

Które role powinny być kierowane przez bramkę?

chat, edit i apply, które wszystkie mówią /v1/chat/completions. Autocomplete to obciążenie fill-in-the-middle zbudowane wokół modeli w formacie completion, więc trzymaj tę rolę na Twojej istniejącej konfiguracji FIM. embed i rerank to osobne podsystemy i nie wymagają żadnych zmian.

Dlaczego jeden blok modelu działa, a inny zwraca 401?

Klucze w Continue są per blok, więc działający sąsiad niczego nie dowodzi o zawodzącym bloku. Sprawdź wartość apiKey albo referencję do sekretu w zawodzącym bloku, a także jego wcięcie: źle wcięty klucz dołącza się do niewłaściwego wpisu listy.

Co robi useLegacyCompletionsEndpoint i czy go potrzebuję?

Przekierowuje blok modelu z /chat/completions na starszą trasę /completions. Przy bramce chat-completions go nie chcesz; zostaw go nieustawionym. Istnieje dla starszych serwerów obsługujących tylko completion.

Czy contextLength faktycznie zmienia zachowanie?

Tak. Continue pakuje kontekst konwersacji i plików zgodnie z defaultCompletionOptions.contextLength. Zaniżenie go na modelu z długim kontekstem po cichu odrzuca kontekst; ustaw je na to, co model naprawdę obsługuje.