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
- applyJak 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.
| Model | Cena oficjalna | Nasza 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 -50Czę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.