Zliczanie tokenów w modelach bez cenzury
Pierwsze zdanie każdej sekcji odpowiada na pytanie zawane w nagłówku. Liczenie tokenów to podstawowa jednostka rozliczeń dla dowolnego proxy LLM. Płacisz za każdy token wysłany w promptie i za każdy token wygenerowany w odpowiedzi. Obejmuje to instrukcje systemowe, historię rozmowy oraz znaki formatowania.
Wielu programistów zakłada, że liczy się tylko widoczny tekst. To nieprawda. Każdy spacja, znak nowej linii i nawias JSON zużywają tokeny. Gdy używasz modelu bez cenzury, okno kontekstowe wypełnia się szybciej, ponieważ modele te często wymagają bardziej werbalnego rozumowania, aby zachować spójność bez filtrów bezpieczeństwa.
Nasz API pobiera $0.15 za 1M tokenów wejściowych i $0.50 za 1M tokenów wyjściowych. Stawka ta dotyczy rzeczywistego zużycia tokenów. Błędy nie są płatne. Odrzucenia są darmowe. Taka struktura zapewnia, że płacisz tylko za faktyczne obliczenia.
curl https://api.claudeapiproxy.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "get the current server time in ISO format"}]
}'- Policz każdy znak w swoim promptcie systemowym.
- Dołącz historię konwersacji do liczenia tokenów wejściowych.
- Koszty overheadu formatowania JSON.
- Zweryfikuj liczbę tokenów przed wysłaniem dużych ładunków.
Pułapka okna kontekstowego: 100k wejścia vs 16k wyjścia
Nasz API zapewnia okno kontekstu o rozmiarze 100 000 tokenów, ale możesz wygenerować tylko 16 000 tokenów na zapytanie. Ta asymetria tworzy pułapkę rozliczeniową dla użytkowników, którzy zakładają nieskończoną ilość wyjściową.
Jeśli Twój prompt zużywa 90 000 tokenów, masz tylko 10 000 tokenów pozostałych na output. Jeśli poprosisz o maksymalnie 16 000 tokenów, model zakończy generowanie wcześniej. Nadal płacisz za faktycznie wygenerowane tokeny. To nie jest błąd. To cecha dużych okien kontekstowych.
Wielu użytkowników marnuje kredyt, ustawiając max_tokens zbyt wysoko. Jeśli model wyczerpie kontekst, zatrzyma się naturalnie. Płacisz za to, co wygeneruje. Nie płacisz za to, czego nie mógł wygenerować.
from openai import OpenAI
client = OpenAI(base_url="https://api.claudeapiproxy.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)Zawsze monitoruj pozostałe miejsce w kontekście. Użyj punktu końcowego /v1/models, aby zweryfikować bieżące limity. Dostosuj długość promptu, aby zostawić miejsce na wyjście. Zapobiega to nieoczekiwanym obciążeniom wynikającym z obciętych odpowiedzi.
Strumieniowanie odpowiedzi i rozliczenie za ostatni fragment
Strumieniowanie nie zmienia całkowitego kosztu. Płacisz za te same tokeny, niezależnie od tego, czy są dostarczane natychmiast, czy w całości. Różnica polega na sposobie śledzenia zużycia.
Podczas strumieniowania otrzymujesz wiele fragmentów. Każdy fragment zawiera część odpowiedzi. Ostatni fragment zawiera podsumowanie użycia tokenów. To moment, w którym weryfikujesz dokładną liczbę tokenów.
Niektóre proxy pobierają opłaty za każdy fragment. Nasze nie. Pobieramy opłaty za całkowitą liczbę wygenerowanych tokenów. Tryb strumieniowania służy doświadczeniu użytkownika, a nie efektywnościowi rozliczeń.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)- Strumieniuj dla aktualizacji interfejsu użytkownika w czasie rzeczywistym.
- Ignoruj pośrednie fragmenty przy rozliczaniu.
- Przeczytaj ostatni chunk dla liczników tokenów.
- Zweryfikuj, czy użycie odpowiada Twoim oczekiwaniom.
Nakład na wywoływanie funkcji przy użyciu narzędzi
Wywoływanie funkcji dodaje znaczący narzut, ponieważ definicje narzędzi są powtarzane w każdym żądaniu. Za każdym razem, gdy wywołujesz funkcję, model musi ponownie przeczytać schemat narzędzia.
Jeśli masz pięć narzędzi, każde z definicjami o objętości 1 000 tokenów, dodajesz 5 000 tokenów do każdego żądania. Znacznie zwiększa to koszt wejścia. Przy długich rozmowach ten narzut się kumuluje.
Nasz API obsługuje wywoływanie funkcji z narzędziami i tool_choice. Możesz zoptymalizować proces, zmniejszając złożoność narzędzi. Połącz powiązane narzędzia w pojedyncze schematy. Zmniejsza to liczbę tokenów na żądanie.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.claudeapiproxy.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);Monitoruj zużycie tokenów dokładnie. Wysoka liczba wywołań funkcji może podwoić koszty wejścia. Używaj buforowania definicji narzędzi, jeśli to możliwe. Pomaga to przedłużyć żywotność Twojego kredytu prepay.
Dlaczego odmowy są darmowe, ale ponowne próby nie
Odmowy są darmowe, ponieważ nie wygenerowano żadnych tokenów. Jeśli model odrzuci żądanie ze względu na treść lub format, nie płacisz nic. Jest to kluczowa zaleta rozliczenia wstępnie opłaconego.
Ponowne próby nie są darmowe. Jeśli wyślesz żądanie i otrzymasz błąd, może być konieczne ponowienie próby. Każda ponowna próba zużywa tokeny. Błędy są darmowe, ale ponowne próby nie są.
Nasz API pobiera opłatę tylko za rzeczywiste użycie tokenów. Jeśli żądanie nie powiedzie się przed wygenerowaniem tokenów, nie płacisz nic. Jeśli nie powiedzie się później, płacisz za wygenerowaną zawartość. Ta przejrzystość zapobiega ukrytym opłatom.
curl https://api.claudeapiproxy.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "get the current server time in ISO format"}]
}'- Odmowy kosztują zero kredytów.
- Ponowne próby zużywają Twój budżet.
- Błędy są darmowe, jeśli nie wygenerowano tokenów.
- Monitoruj ponowne próby, aby zoptymalizować wydajność.
Koszty formatowania w trybie JSON
Koszty formatowania w trybie JSON są identyczne jak w trybie standardowego tekstu. Płacisz za tokeny w wyjściu JSON. Format nie generuje dodatkowych opłat.
Jednak wyjście JSON często wymaga więcej tokenów niż zwykły tekst. Modele mogą dodawać dodatkową spację lub klucze, aby zapewnić poprawność JSON. Zwiększa to Twój koszt wyjścia.
Nasze API obsługuje tryb JSON poprzez response_format. Możesz wymusić ścisły output JSON. Zapewnia to kompatybilność z kodem klienta. Koszt jest naliczany za token, a nie za format.
from openai import OpenAI
client = OpenAI(base_url="https://api.claudeapiproxy.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)Optymalizuj swój schemat JSON, aby zmniejszyć liczbę tokenów. Usuń zbędne klucze. Używaj krótszych nazw zmiennych. Pomaga to zminimalizować koszty przy zachowaniu integralności danych.
Porównując koszty proxy z cenami bezpośredniego dostawcy
Koszty proxy są często niższe niż ceny bezpośrednich dostawców, ponieważ płacisz tylko za tokeny. Bezpośredni dostawcy mogą pobierać opłaty za czas pracy, wsparcie lub wersjonowanie modelu. Nasze API pobiera $0.15 za 1M tokenów wejściowych i $0.50 za 1M tokenów wyjściowych.
Bezpośredni dostawcy tacy jak Anthropic lub OpenAI mają złożone poziomy cenowe. Mogą pobierać różne stawki za różne modele. Nasze API oferuje jeden model bez cenzury. To upraszcza rozliczenia.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.claudeapiproxy.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);- Rozliczenie proxy jest przejrzyste i z góry opłacone.
- Bezpośredni dostawcy mogą mieć ukryte opłaty.
- Nasz model jest bez cenzury i ma otwarte wagi.
- Porównuj liczby tokenów, a nie tylko ceny.
Obliczanie efektywnego kosztu rozmowy
Skuteczny koszt rozmowy zależy od zużycia tokenów. Oblicz całkowitą liczbę wysłanych i odebranych tokenów. Pomnóż przez stawkę za milion tokenów. Da to Ci dokładny koszt.
Na przykład, jeśli rozmowa zużywa 10,000 tokenów wejściowych i 5,000 tokenów wyjściowych, koszt wynosi $0.0015 + $0.0025 = $0.004. Jest to kwota znikoma w większości przypadków użycia.
curl https://api.claudeapiproxy.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "get the current server time in ISO format"}]
}'Śledź średnią długość rozmowy. Zoptymalizuj prompty, aby zmniejszyć liczbę tokenów wejściowych. Pomaga to dokładnie przewidzieć koszty. Kredyt z góry opłacony nie wygasa, więc możesz planować długoterminowo.
Unikanie błędów podwójnego obciążenia z kredytem z góry opłaconym
Podwójne obciążenia są rzadkie, ale możliwe. Jeśli doładowujesz kryptowalutą, upewnij się, że wysyłasz poprawną kwotę. Nasze API nalicza opłaty tylko za rzeczywiste użycie tokenów. Błędy są naprawiane przez stronę Wsparcie.
from openai import OpenAI
client = OpenAI(base_url="https://api.claudeapiproxy.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)- Sprawdź hash transakcji przed doładowaniem.
- Sprawdź swój balans po każdej żądaniu.
- Zgłaszaj błędy natychmiast dla zwrotów.
- Utrzymuj zapisy transakcji.