VS Code LLM API: podłącz edytor do własnego klucza
Możesz wskazać VS Code na dowolny endpoint zgodny z OpenAI, podając rozszerzeniu trzy wartości: base URL, klucz API i ID modelu. Ta strona pokazuje, gdzie wpisać te wartości i jak je przetestować.
Zaktualizowano

Kluczowe punkty
- Przetestuj klucz curl przed dotknięciem edytora, aby wiedzieć, po której stronie jest problem.
- Rozszerzenia takie jak Continue i Cline wymagają tych samych trzech wartości: base URL, klucz, ID modelu.
- Użyj ID modelu
uncensoredi base URL https://api.codingllmapi.com/v1. - API obsługuje tylko ukończenia czatu, więc funkcje wymagające osobnego endpointu ukończeń mogą nie działać.
Czego potrzebujesz przed rozpoczęciem
Konfiguracja VS Code LLM API nie wymaga magii. VS Code samo w sobie nie komunikuje się z modelami językowymi. Robi to rozszerzenie, które musi wiedzieć, gdzie wysyłać zapytania i jak się zidentyfikować. Każde rozszerzenie obsługujące niestandardowego dostawcę zgodnego z OpenAI może korzystać z tej usługi.
Najpierw zbierz te trzy wartości.
- Base URL:
https://api.codingllmapi.com/v1 - Identyfikator modelu:
uncensored - Klucz API: utworzony na stronie kluczy API. Po rejestracji możesz zrealizować $0,50 darmowego kredytu próbnego jednym kliknięciem, ważny przez 7 dni i bez konieczności podania karty.
Klucz jest przekazywany w zapytaniu jako Authorization: Bearer <key>. Rozszerzenia dodają ten nagłówek automatycznie po wklejeniu klucza w ich ustawieniach.
Krok 1: przetestuj klucz poza edytorem
Debugowanie wewnątrz rozszerzenia jest wolniejsze niż w terminalu. Otwórz terminal w VS Code (Ctrl+` w Windows i Linux, Cmd+` w macOS), zapisz klucz w zmiennej środowiskowej i wykonaj dwa wywołania. Pierwsze wylicza modele. Drugie wysyła małe zapytanie czatu.
export LLM_API_KEY="paste-your-key-here"
curl -s https://api.codingllmapi.com/v1/models \
-H "Authorization: Bearer $LLM_API_KEY"
curl -s https://api.codingllmapi.com/v1/chat/completions \
-H "Authorization: Bearer $LLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Reply with the word ready."}],"max_tokens":10}'
Jeśli drugie wywołanie zwróci JSON z wiadomością, klucz, URL i ID modelu są poprawne. Wszystko, co pójdzie nie tak później, to problem z ustawieniami rozszerzenia, a nie Twoim kontem. Jeśli otrzymasz błąd uwierzytelnienia tutaj, sprawdź, czy skopiowałeś cały klucz i czy nie dołączyły przypadkowe cudzysłowy czy spacje.
Krok 2: skonfiguruj rozszerzenie
Ustawienia rozszerzeń zmieniają się między wersjami, więc traktuj poniższe nazwy pól jako wskazówkę i sprawdź dokumentację rozszerzenia, jeśli etykieta się różni. Trzy wartości są zawsze takie same.
Continue
Continue to asystent open source dla VS Code i JetBrains. Odczytuje plik konfiguracyjny z Twojego katalogu domowego. Nowsze wersje używają pliku YAML, a starsze config.json. Wpis modelu zawiera te same pola w obu formatach. W formacie JSON wygląda tak:
{
"models": [
{
"title": "Uncensored",
"provider": "openai",
"model": "uncensored",
"apiBase": "https://api.codingllmapi.com/v1",
"apiKey": "paste-your-key-here"
}
]
}
Dostawcą jest openai, ponieważ format przesyłania danych jest zgodny z OpenAI. Tylko apiBase mówi Continue, aby komunikowało się z innym serwerem. Po zapisaniu przeładuj okno i wybierz model z listy rozwijanej w panelu czatu.
Cline
Cline to rozszerzenie agenta, które może czytać pliki, edytować je i uruchamiać polecenia terminala za Twoją zgodą. Otwórz jego ustawienia i wybierz dostawcę o nazwie OpenAI Compatible. Wypełnij Base URL, API Key i Model ID. Wklej https://api.codingllmapi.com/v1, swój klucz i uncensored. Zapisz, rozpocznij zadanie i zatwierdź jego pierwsze użycie narzędzia.
Inne rozszerzenia
Wiele narzędzi stosuje ten sam schemat pod nazwami takimi jak „niestandardowy endpoint”, „kompatybilny z OpenAI” lub „przynieś własny klucz”. Szukaj pola, które przyjmuje Base URL. Jeśli rozszerzenie oferuje tylko stałą listę dostawców bez pola URL, nie można go skierować na to API.
Co działa, a co może nie działać
To API implementuje POST /v1/chat/completions i GET /v1/models. Obejmuje to panele czatu, polecenia edycji, akcje wyjaśniania kodu i pętle agentów. Nie obejmuje wszystkiego, o co może prosić edytor.
| Funkcja edytora | Oczekiwany wynik |
|---|---|
| Czat na temat otwartego pliku | Działa |
| Zaznacz kod i poproś o edycję | Działa |
| Zadania agenta z wywoływaniem funkcji | Działa, jeśli rozszerzenie używa standardowego pola tools lub własnego formatu promptu |
| Autouzupełnianie inline | Zależy od rozszerzenia. Jeśli wymaga osobnego endpointu ukończenia lub uzupełniania w miejscu, to API go nie zapewnia |
| Embeddingi i indeksowanie bazy kodu | Niedostępne tutaj, ponieważ nie ma endpointu embeddingów. Użyj innego źródła embeddingów lub wyłącz indeksowanie |
| Wejście lub generowanie obrazu | Niedostępne, API jest tylko tekstowe |
Jeśli rozszerzenie zawodzi w funkcji z tej tabeli, wyłącz tę konkretną funkcję w jej ustawieniach, zamiast zakładać, że Twój klucz jest błędny. Aby uzyskać przegląd możliwości tego modelu w pracy programistycznej, zobacz stronę o modelu bez cenzury dla agentów kodujących.
Poza rozszerzeniami: skrypty uruchamiane z edytora
Rozszerzenie to nie jedyny sposób na użycie klucza z VS Code. Wielu programistów utrzymuje mały skrypt w projekcie, który wysyła plik do modelu i wypisuje odpowiedź, a następnie uruchamia go w zintegrowanym terminalu lub wiąże z zadaniem. Daje to pełną kontrolę nad promptem i unika niespodzianek ze strony ukrytych instrukcji rozszerzenia.
Oto krótki skrypt Python, który przegląda dowolną ścieżkę pliku, którą mu podasz. Czyta klucz ze zmiennej środowiskowej, więc nic tajnego nie ląduje w Twoim repozytorium.
import os
import sys
from openai import OpenAI
client = OpenAI(
base_url="https://api.codingllmapi.com/v1",
api_key=os.environ["LLM_API_KEY"],
)
path = sys.argv[1]
with open(path, encoding="utf-8") as f:
source = f.read()
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "Review the code. List bugs first, then style issues. Be brief."},
{"role": "user", "content": source},
],
temperature=0.2,
)
print(resp.choices[0].message.content)
Uruchom go poleceniem python review.py src/app.py. Duże pliki są OK w oknie kontekstu 100 000 tokenów, ale mniejszy prompt odpowiada szybciej i jest tańszy. Jeśli chcesz, aby odpowiedź pojawiała się w miarę pisania, przekaż stream=True i wypisuj delta.content każdego chunka, gdy przybywa.
Ten sam pomysł działa jako zadanie VS Code w .vscode/tasks.json: zdefiniuj zadanie, którego polecenie to ten skrypt z bieżącym plikiem jako argumentem, i uruchom go z palety poleceń. To niewielki nakład konfiguracji, a wynikiem jest polecenie review, które w pełni rozumiesz.
Naprawianie typowych błędów
Większość problemów sprowadza się do kilku przyczyn. Pracuj od góry tej listy.
- 401 lub „nieprawidłowy klucz API”. Klucz został wklejony ze spacją na końcu lub użyłeś klucza przeznaczonego dla innej strony. Wygeneruj nowy i wklej go ponownie.
- 404 lub „model nie znaleziony”. Identyfikator modelu jest błędnie wpisany, w bazowym URL brakuje
/v1lub występuje on dwukrotnie. Poprawny identyfikator touncensored. Wywołaj/v1/models, aby sprawdzić, co zwraca serwer. - 429 z
rate_limited. Przekroczyłeś limit zapytań na minutę: 300 dla pełnego klucza, 60 dla klucza próbnego. Agenci wykonujący szybkie pętle szybko go osiągają. Poczekaj i wyślij zapytanie ponownie lub zmniejsz liczbę automatycznych kroków. - 429 z
concurrency. Zbyt wiele zapytań jednocześnie: 8 dla pełnego klucza, 2 dla klucza próbnego. Niektóre rozszerzenia wysyłają wiele wywołań równolegle w ramach jednego zadania. Odpowiedź strumieniowa zajmuje slot do momentu zakończenia, więc utknuty strumień może blokować nowe wywołania. - 429 z nagłówkiem
Retry-After: 5. Tymczasowe przeciążenie. Rozszerzenie powinno ponowić zapytanie po pięciu sekundach. Jeśli nie zrobi tego automatycznie, powtórz je ręcznie. - Zapytanie zostało odrzucone jako zbyt duże. Limit rozmiaru treści zapytania (body) to 8 MB, a okno kontekstu wynosi 100 000 tokenów dla promptu i odpowiedzi. Agenci dołączający wiele plików mogą ten limit przekroczyć. Zwęż kontekst lub wyczyść rozmowę.
Prosząc o pomoc, podaj wartość nagłówka odpowiedzi X-Request-Id. Możesz go wyświetlić poleceniem curl -i.
Widoczność kosztów
Agenci edytorów wysyłają dużo tekstu, ponieważ każdy krok zwykle zawiera pliki i historię do tego momentu. Cennik to $0,15 za 1 mln tokenów wejściowych i $0,50 za 1 mln tokenów wyjściowych. Dzięki temu pojedyncze zapytania są tanie, ale pętle szybko sumują koszty.
Przykład: krok agenta z 30 000 tokenami wejściowymi i 1000 tokenami wyjściowymi kosztuje 30 000 x $0,15 / 1 000 000 = $0,0045 za wejście i 1000 x $0,50 / 1 000 000 = $0,0005 za wyjście, czyli $0,005 za krok. Zadanie składające się z 40 takich kroków kosztuje $0,20. To tylko przybliżone oszacowanie, nie obietnica, ponieważ rzeczywiste kroki różnią się wielkością.
- Sprawdź nagłówek odpowiedzi
X-Balance-USD, aby zobaczyć stan kredytu po wywołaniu. - Rozpoczynaj nowe zadania w nowych rozmowach, aby stara historia nie była przetrzymywana na zawsze.
- Ustaw limit kroków lub zapytań w rozszerzeniu, jeśli taka opcja istnieje.
Kredyt jest przedpłacony, więc wydatki kończą się, gdy saldo się wyczerpie, i nigdy nie wygasa. Doładowania wynoszą od $20 do $500 w pełnych kwotach, z bonusem 5% od $50, 10% od $100 i 15% od $200. Akceptowane są karty (Visa, Mastercard, Apple Pay, Google Pay) oraz kryptowaluty (USDT w sieci TRC20, USDC na Base). Szczegóły znajdziesz na stronie z cenami, a dokumentacja wymienia wszystkie obsługiwane parametry.
Uwaga dotycząca prywatności i użytkowania
Kod, który wysyłasz, trafia na serwery dostawcy, więc nie wklejaj sekretów takich jak klucze produkcyjne, hasła czy dane klientów do promptów. Prompty w tej usłudze nie są używane do trenowania. Model jest dostrojony do odpowiadania bez odrzuceń treści dla legalnego użytku przez dorosłych, co oznacza, że nie będzie prawił ci kazań o teście bezpieczeństwa czy skrypcie gry w ciemnym motywie, ale to Ty ponosisz odpowiedzialność za to, o co go prosisz. Treści seksualne z udziałem nieletnich są zawsze zabronione.
Więcej przewodników
Pytania i odpowiedzi
Czy mogę użyć tego API z GitHub Copilot w VS Code?
Copilot jest ściśle powiązany z własną usługą, więc ten klucz go nie zastępuje. Użyj rozszerzenia akceptującego niestandardowy endpoint, takiego jak Continue lub Cline.
Jaki identyfikator modelu wpisać?
Wpisz uncensored. Możesz to potwierdzić, wywołując GET /v1/models ze swoim kluczem.
Dlaczego edytor zgłasza nieudane połączenie?
Najpierw wykonaj test curl. Jeśli curl zadziała, sprawdź ponownie bazowy URL w rozszerzeniu, w tym końcówkę /v1 i brak dodatkowych spacji.
Czy autouzupełnianie w miejscu działa?
Tylko jeśli rozszerzenie może użyć zwykłych ukończeń czatu. To API nie ma osobnego endpointu do ukończeń, więc sprawdź ustawienia autouzupełniania w rozszerzeniu.
Czy jest darmowy sposób na przetestowanie?
Nowi użytkownicy mogą uzyskać $0,50 kredytu próbnego na stronie klucza API po zalogowaniu się. Nie wymaga karty, trwa 7 dni i jest przydzielany raz na osobę.
Twój klucz jest o jeden formularz stąd
Utwórz konto, skopiuj klucz, zmień bazowy URL. To cała konfiguracja.
Pobierz klucz API