Konfiguracja
Cursor to edytor obsługujący niestandardowych dostawców modeli. Jeśli podasz mu base URL w stylu OpenAI, klucz i nazwę modelu, będzie wysyłał zapytania czatu tam, a nie do domyślnego dostawcy. Ta usługa obsługuje ten protokół: POST /v1/chat/completions z uwierzytelnianiem Bearer, a także GET /v1/models.
Dwie rzeczy do jasnego ustalenia na początku. To niezależne API obsługujące jeden model o otwartych wagach, nie jest to Codex OpenAI ani oficjalny produkt Cursor. Cursor często zmienia ekrany ustawień, więc etykiety poniżej mogą znajdować się w nieco innym miejscu w Twojej wersji. Trzy wartości są stałe: base URL, klucz, nazwa modelu.
Krok 1: uzyskaj klucz i przetestuj go poza Cursor
Zarejestruj się na stronie klucza API za pomocą Google lub e-maila i hasła. Nowe konta mogą jednym kliknięciem odebrać $0,50 kredytu próbnego, ważnego przez 7 dni, bez konieczności podawania karty. To wystarczy do przetestowania konfiguracji edytora.
Zanim dotkniesz Cursora, upewnij się, że klucz działa. Awaria w edytorze jest trudniejsza do odczytania niż awaria w terminalu.
curl https://api.getcodexapi.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a Python function that reverses a string."}]
}'
Jeśli otrzymasz odpowiedź JSON z kodem, przejdź dalej. Jeśli otrzymasz błąd, napraw go najpierw tutaj. Najczęstsze przyczyny to brakujący znak w kluczu lub spacja wklejona na końcu.
Krok 2: skonfiguruj Cursor
- Otwórz ustawienia Cursora i przejdź do sekcji modeli.
- Znajdź pole na klucz API OpenAI i wklej swój klucz z tej usługi.
- Włącz opcję nadpisania base URL OpenAI i wprowadź
https://api.getcodexapi.com/v1. - Dodaj niestandardowy model i wpisz dokładną nazwę
uncensored. - Uruchom przycisk weryfikacji, jeśli jest dostępny, a następnie otwórz panel czatu i wybierz
uncensoredz listy modeli.
Jeśli krok weryfikacji zgłosi błąd, sprawdź trzy rzeczy w kolejności: base URL kończy się na /v1 bez ścieżki endpoint po nim, klucz został wklejony bez spacji na końcu, a nazwa modelu nie zawiera wielkich liter. Przewodnik na stronie dokumentacji zawiera te same wartości z dodatkowymi przykładami klienta.
Do czego należy się dostosować: nadpisanie to ustawienie, a nie wybór dla każdego modelu, więc jeśli używasz również swojego klucza OpenAI gdzie indziej w Cursorze, wyłącz najpierw nadpisanie. Zapisz, co zmieniłeś.
Po zapisaniu zadaj modelowi proste pytanie programistyczne na czacie i obserwuj odpowiedź. Wolna pierwsza odpowiedź jest normalna, gdy Cursor buduje swoje zapytanie. Jeśli odpowiedź nadejdzie, jesteś połączony, a następnym krokiem jest przetestowanie go na rzeczywistej pracy w Twoim repozytorium.
Co przejdzie przez Twój klucz, a co nie
Cursor miesza kilka funkcji. Zapytania czatu i edycji inline to te, które najprawdopodobniej użyją Twojego niestandardowego modelu po jego wybraniu. Inne funkcje, takie jak uzupełnianie Tab, historycznie używały modeli uruchamianych przez Cursor, a funkcje w stylu agenta mogą zależeć od tego, jak Cursor obsługuje narzędzia. Szczerym sposobem na sprawdzenie jest przetestowanie funkcji, której używasz, i obserwacja swojego salda.
Jest to łatwe do zrobienia: każda odpowiedź z tego API zawiera nagłówek X-Balance-USD, a Twoje saldo jest widoczne w Twoim koncie. Jeśli wyślesz wiadomość czatu, a saldo się nie zmieni, to zapytanie nie trafiło do nas.
Wywoływanie funkcji jest obsługiwane na tym endpointzie (tools, tool_choice, strumieniowane tool_calls i wyniki jako role: "tool"), czego potrzebują agenci edytora. Strumieniowanie działa za pomocą zdarzeń wysyłanych przez serwer z stream: true. Okno kontekstu wynosi 100 000 tokenów, łącznie z promptem i uzupełnieniem, więc duży plik wraz z jego sąsiadami mieści się w jednym zapytaniu.
Dlaczego warto używać modelu bez cenzury w edytorze
Większość pracy programistycznej nigdy nie napotyka odmowy. Kiedy już się zdarzy, dotyczy uzasadnionych zadań, które wyglądają na ryzykowne dla ostrożnego filtra: pisania skanera portów dla Twojej własnej sieci, analizy próbek złośliwego oprogramowania, generowania danych testowych zawierających wulgaryzmy, budowania backendu aplikacji do roleplay lub aplikacji towarzyskich dla dorosłych, lub refaktoryzacji kodu zajmującego się moderacją treści. Ten model jest dostrojony do odpowiadania bez odmów treści dla legalnego użytku przez dorosłych.
To nadal jeden ogólny model o otwartych wagach, a nie specjalistyczny model kodu, a nic tutaj nie obiecuje, że bije on jakąkolwiek konkretną alternatywę na Twojej bazie kodu. Uruchom swoje własne zadania przez ten model. Jedna zasada jest stała: brak treści seksualnych z udziałem nieletnich i tego nie można zmienić.
Rzeczywiste koszty
Ceny to $0,15 za 1M tokenów wejściowych i $0,50 za 1M tokenów wyjściowych, z przedpłaconego kredytu bez subskrypcji. Ruch generowany przez edytor jest obciążony danymi wejściowymi, ponieważ każde zapytanie ponownie wysyła kontekst pliku.
Zapytanie z 8000 tokenami wejściowymi i 1000 tokenami wyjściowymi kosztuje 8000 x $0,15 / 1 000 000 = $0,0012 za wejście, plus 1000 x $0,50 / 1 000 000 = $0,0005 za wyjście, co daje $0,0017. Jeśli wykonasz 150 takich w ciężki dzień, to 150 x $0,0017 = $0,255, około 26 centów.
Zapytanie, które wysyła 40 000 tokenów kontekstu i otrzymuje 1 500 z powrotem, kosztuje $0,006 + $0,00075 = $0,00675. Doładowania zaczynają się od $20, a kredyt nie wygasa, więc nie ma presji, aby go wykorzystać. Zobacz stronę z cenami, aby poznać poziomy bonusów, oraz stronę API do kodowania, aby uzyskać ogólne omówienie.
Limity zapytań przy pracy w edytorze
Pełny klucz pozwala na 8 równoległych zapytań i 300 zapytań na minutę. Klucz próbny pozwala na 2 równoległe i 60 na minutę. Jedna osoba pisząca w jednym edytorze rzadko zbliża się do któregoś z tych limitów, ale zespół dzielący jeden klucz lub agent wysyłający wiele zapytań równolegle może. Gdy przekroczysz limit, API zwraca HTTP 429. Kod rate_limited oznacza zbyt wiele zapytań na minutę, a concurrency oznacza zbyt wiele naraz. Jeśli usługa jest krótko przeciążona, zobaczysz również 429 z Retry-After: 5.
Strumieniowany czat zajmuje slot równoległości do końca strumienia. Przy wspólnym użyciu przydziel każdemu programiście własny klucz zamiast jednego klucza dla zespołu.
Lista rozwiązywania problemów
- Nie znaleziono modelu. Wpisz ponownie
uncensoredbez spacji. Usuń stare niestandardowe modele, których nie używasz. - Błąd autoryzacji. Skopiuj klucz ponownie. Upewnij się, że Cursor nadal nie używa klucza od innego dostawcy.
- Odpowiedzi kończą się przedwcześnie. Sprawdź, czy Cursor ustawia własny limit wyjściowy. Po naszej stronie
max_tokensjest opcjonalny. - Nic się nie zmienia na Twoim koncie. Użyta funkcja nie jest kierowana przez Twój niestandardowy klucz. Spróbuj czatu.
- Częste 429. Zmniejsz liczbę równoległych zapytań lub użyj pełnego klucza zamiast klucza próbnego.
