Endpointy
Cache promptów
Wykorzystuj ponownie długie prompty ze zniżką dzięki automatycznemu cache i jawnemu cache_control, aby obniżyć koszt tokenów wejściowych.
Wypróbuj w playgroundCache promptów wykorzystuje ponownie przetworzony prefiks długiego promptu, takiego jak prompt systemowy, dokumenty lub definicje narzędzi, między kolejnymi zapytaniami. Odczyty z cache kosztują znacznie mniej niż zwykłe tokeny wejściowe. api14 przekazuje cennik cache dostawcy bez zmian: input_cache_read i input_cache_write są podane dla każdego modelu w Modelach.
Automatyczny cache
Ci dostawcy stosują cache samodzielnie. Nie musisz niczego zmieniać:
| Dostawca | Minimalny prompt | Cena odczytu z cache | Cena zapisu do cache |
|---|---|---|---|
| OpenAI | 1,024 tokenów | ~0.25–0.5× wejście | za darmo |
| DeepSeek | automatycznie | ~0.1× wejście | ~1× wejście |
| Grok, Moonshot, Groq | automatycznie | ze zniżką | za darmo |
| Google Gemini 2.5 | niejawnie, zależnie od modelu | ~0.25× wejście | za darmo |
Elementy, które się nie zmieniają, umieszczaj na początku promptu, a te, które się zmieniają, na końcu, aby prefiks pasował między zapytaniami.
Jawny cache z cache_control
Anthropic Claude (oraz jawny cache w Gemini) wymagają punktów podziału. Dodaj cache_control do tekstowej części treści:
{
"model": "anthropic/claude-sonnet-4.5",
"messages": [
{
"role": "system",
"content": [
{ "type": "text", "text": "You are a contracts assistant." },
{
"type": "text",
"text": "<the full 40-page agreement text>",
"cache_control": { "type": "ephemeral" }
}
]
},
{ "role": "user", "content": "Which clause covers termination?" }
]
}
- Anthropic dopuszcza do 4 punktów podziału. Cache żyje około 5 minut i jest odświeżany przy każdym trafieniu. Użyj
"ttl": "1h"dla dłuższego cache, którego zapis kosztuje więcej. - Zapisy do cache w Anthropic kosztują około 1.25× wejście, a odczyty około 0.1×.
- Aby nadal trafiać w cache tego samego dostawcy, w razie potrzeby dodaj
provider: { "order": ["Anthropic"], "allow_fallbacks": false }.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "anthropic/claude-sonnet-4.5",
"messages": [
{
"role": "user",
"content": "Explain vector databases in two sentences."
}
]
});
console.log(result.choices[0].message.content);
Odczyt zużycia cache
Obiekt usage pokazuje tokeny z cache, a cost uwzględnia już zniżkę:
{
"usage": {
"prompt_tokens": 10450,
"completion_tokens": 120,
"total_tokens": 10570,
"prompt_tokens_details": { "cached_tokens": 10200 },
"cost": 0.004863
}
}
cached_tokens pojawia się także w logach zużycia w panelu. Wyszukiwanie generacji pokazuje pełne zestawienie, łącznie z cache_discount.
Błędy
Cache nigdy sam nie powoduje błędów. Nieprawidłowy cache_control jest ignorowany lub odrzucany przez dostawcę z błędem 400. Zobacz Błędy.