Кэшизатсозии prompt
АВТОМАТИЯМоделҳои hosted open-weight префиксҳои такроришавандаи prompt-ро ба таври автоматӣ кэши мекунанд. Вақте ки дархост бо ҳамон prompt-и системавӣ, воситоҳо (tools) ва паёмҳои қаблии як дархости recent дар як модел оғоз мешавад, ин префикси shared аз кэш хонда шуда, бо нархи 25%-и нархи входии модел ҳисоб карда мешавад. Ҳеҷ чизро фаъол кардан ло-нист ва навиш--ба кэш ройгон аст.
Принсипи кор
- Префикс, бо тартиб — Prompt бо тартиби зерин хонда мешавад: prompt-и системавӣ, таърифи воситоҳо (tools) ва сипас паёмҳо. Кэш аз оғози ин пайваст то аввалин токени фарқиятдоре мувофиқат мекунад.
- Чӣ гуна hit ҳисоб мешавад — Дархосте, ки prompt-аш бо ҳамон мундариҷоти дархости recent оғоз мешавад — одатан ин идомаи суҳбати қаблии ҳамонconversation бо иловаи паёмҳои нав аст. Префикси мувофиқ ҳамчун вход кэшишуда ҳисоб шуда, ҳамаи қисмати пас аз он ҳамчун входии оддӣ ҳисоб мешавад.
- Гранулярность — Кэш prompt-ро дар блокҳои 1,568 токен нигоҳ медорад, бинобар ин prompt-и аз тақрибан 1,500 токен кӯтоҳтар кэш намешавад. Шумораи кэшшуда дар ҷавоб шумораи вуруди шумо зарби ҳиссаи кэшшудаи prompt аст, ки ба поён мудаввар шудааст. Он ҳатман зарби андозаи блок нест.
- Бе hit — Дархосте, ки оғози он дар кэш нест, бо нархи муқаррарии вуруд ҳисоб карда мешавад. Барои prompt-ҳои кэшшуда мӯҳлати нигоҳдорӣ нашр нашудааст ва hit кафолат дода намешавад: барои дидани он, ки дархост аз кэш чӣ гирифт,
usage-ро хонед. - Бе гузарак — Дархост розигӣ намедиҳад ва ягон майдон кэшро хомӯш намекунад.
- Кадом моделҳо — Ҳамаи ID-ҳои hosted open-weight. GET /v1/models маълумоти capabilities.prompt_caching: true ва pricing.cached_input_per_million_usd-ро барои онҳо пешниҳод мекунад. Моделҳои Shannon як нархи ягона доранд.
Кэш hit-ро дар ҷавоб бинед
Ду дархост фиристед, ки бо ҳамон system prompt-и дароз оғоз мешаванд, ва usage-и ҳар якторо чоп кунед. Рақами аввал вуруди дархост аст, дуюм қисми он аст, ки аз кэш хонда шуд.
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.shannon-ai.com/v1")
handbook = open("handbook.txt").read() # a long text that stays the same
def ask(question):
response = client.chat.completions.create(
model="Kimi-K3-3BIT-REAP",
messages=[
{"role": "system", "content": handbook},
{"role": "user", "content": question},
],
)
usage = response.usage
print(usage.prompt_tokens, usage.prompt_tokens_details.cached_tokens)
ask("What is the refund policy?")
ask("Who approves travel?") # same start: read the second number import { readFileSync } from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({ apiKey: "YOUR_API_KEY", baseURL: "https://api.shannon-ai.com/v1" });
const handbook = readFileSync("handbook.txt", "utf8"); // a long text that stays the same
async function ask(question) {
const response = await client.chat.completions.create({
model: "Kimi-K3-3BIT-REAP",
messages: [
{ role: "system", content: handbook },
{ role: "user", content: question },
],
});
const usage = response.usage;
console.log(usage.prompt_tokens, usage.prompt_tokens_details.cached_tokens);
}
await ask("What is the refund policy?");
await ask("Who approves travel?"); // same start: read the second number # handbook.txt is a long text that stays the same. jq builds the JSON body from it
# and prints the usage object of the reply. Run it twice with different questions.
jq -Rs '{
model: "Kimi-K3-3BIT-REAP",
messages: [
{role: "system", content: .},
{role: "user", content: "What is the refund policy?"}
]
}' handbook.txt \
| curl -s https://api.shannon-ai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d @- \
| jq .usage Нархгузорӣ
Токенҳои входии кэшишуда бо нархи 25%-и нархи входии модел, ки то $0.001 барои 1M гардонида шудааст, ҳисоб мешаванд. Навиш-ба кэш ягон хароҷоти иловагӣ надорад ва выход ба таври оддӣ ҳисоб карда мешавад. Нархи кэшишудаи ҳар як ID дар ҷадвали Models & pricing-est. Моделҳо ва нархҳо
Вуруди даъват чунин ҳисоб карда мешавад: (вуруд − кэшшуда) × нархи вуруд + кэшшуда × нархи кэшшуда. Шумораи кэшшуда ҳеҷ гоҳ аз шумораи вуруд калонтар нест.
| Модел | Вуруд / 1M | Вуруди кэшшуда / 1M |
|---|---|---|
DeepSeek-V4-Pro-0813-3BIT-REAP | $1.95 | $0.488 |
GLM-5.2-3BIT-REAP | $0.73 | $0.183 |
Kimi-K3-3BIT-REAP | $3.83 | $0.958 |
Nemotron3Ultra-3BIT-REAP | $0.75 | $0.188 |
MiniMax-M3-3BIT-REAP | $0.50 | $0.125 |
DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP | $0.50 | $0.125 |
Kimi-K2.6-W4A16-AUTOROUND-REAP | $0.78 | $0.195 |
Laguna-S-2.1-W4A16-AUTOROUND-REAP | $0.50 | $0.125 |
inkling-W4A16-AUTOROUND-REAP | $1.42 | $0.355 |
MiMo-V2.5-Pro-W8A16 | $0.50 | $0.125 |
MiMo-V2.5-W8A16 | $0.50 | $0.125 |
Hy3-W8A16 | $0.50 | $0.125 |
Ҷурнали usage вуруди кэшшудаи ҳар даъватро номбар мекунад. Токенҳои ҳисобшуда ва арзиши он аллакай нархи кэшшударо дар бар мегиранд. Калидҳо ва истифода
Майдонҳои истифода
| Эндпоинт | Вгуди кэшишуда | Мулоҳиза |
|---|---|---|
/v1/chat/completions | usage.prompt_tokens_details.cached_tokens — қисми prompt_tokens | usage.completion_tokens_details.reasoning_tokens — қисми completion_tokens |
/v1/responses | usage.input_tokens_details.cached_tokens — қисми input_tokens | usage.output_tokens_details.reasoning_tokens — қисми output_tokens |
/v1/messages | usage.cache_read_input_tokens — ҳисоби ҷудогона: input_tokens қисми кэшинашуда аст; cache_creation_input_tokens ҳамеша 0 аст | фикрронӣ (thinking) дар output_tokens ҳисоб карда мешавад |
{
"usage": {
"prompt_tokens": 20000,
"completion_tokens": 812,
"total_tokens": 20812,
"prompt_tokens_details": {
"cached_tokens": 18000
},
"completion_tokens_details": {
"reasoning_tokens": 604
}
}
} {
"usage": {
"input_tokens": 20000,
"input_tokens_details": {
"cached_tokens": 18000
},
"output_tokens": 812,
"output_tokens_details": {
"reasoning_tokens": 604
},
"total_tokens": 20812
}
} {
"usage": {
"input_tokens": 2000,
"cache_read_input_tokens": 18000,
"cache_creation_input_tokens": 0,
"output_tokens": 812
}
} Ҷавоби streaming ҳамон майдонҳоро дар usage-и ниҳоии худ дорад. Шумо набояд онро дархост кунед:
| Эндпоинт | Usage дар куҷо меояд |
|---|---|
/v1/chat/completions | usage дар чанки охирин пеш аз data: [DONE]. Он дар ҳар ҷараён фиристода мешавад. |
/v1/responses | response.usage-и рӯйдоди response.completed. |
/v1/messages | usage-и рӯйдоди message_delta. usage-и message_start сифрҳо дорад. |
Барои зиёд кардани cache hits
- Prompt-и системавӣ ва таърифи воситоҳо-ро (tool definitions) дар байни дастурҳо байт-ба-байт якхела нигоҳ доред. Қимати ҳар як дастур, масалан timestamp-ҳо ё ID-и дархостҳо-ро дар охири паёми охирин гузоред, на дар prompt-и системавӣ.
- Танҳо ба таърихи суҳбат илова кунед. Таҳрир, кӯтоҳ кардан ё хулосабарории паёмҳои қаблӣ префиксро тағйир медиҳад ва ҳамаи чизҳо пас аз аввалин тағйирот ҳамчун входии оддӣ ҳисоб карда мешаванд.
- Тартиби воситоҳо, паёмҳо ё блокҳои мундариҷотро дар байни дастурҳо иваз накунед ва JSON-ро (схемаҳои tool, аргументҳо ва натиҷаҳо) ҳар-бор якхела сериал-кунед.
- Барои як гуфтугӯ дар як id-и модел бимонед ва даъвати навбатиро кӯтоҳ пас аз қаблӣ фиристед.
API оғози гуфтугӯро дар ин ҳолатҳо устувор нигоҳ медорад:
- Паёми
systemёdeveloper, ки баъдтар дар гуфтугӯ фиристода мешавад, дар ҷои худ мемонад. Он оғози prompt-ро тағйир намедиҳад, бинобар ин навбатҳои пеш аз он кэшшуда мемонанд. - Аргументҳои даъватҳои абзор дар навбатҳои қаблии assistant аз рӯи қимат муқоиса карда мешаванд. Тартиби калидҳо ва фосилаҳои он JSON аҳамият надорад.
- Се endpoint гуфтугӯро якхела мехонанд. Гуфтугӯе, ки дар endpoint-и дигар идома дода мешавад, префикси умумии худро нигоҳ медорад, агар мундариҷа якхела бошад.
Майдонҳои дархост
prompt_cache_key (барои Chat Completions ва Responses) ва cache_control дар блокҳои мундариҷаи Messages қабул мешаванд, бинобар ин коди мавҷудаи клиент бе тағйирот кор мекунад. Ҳеҷдоре аз инҳо ҳатмӣ нест: кэширование автоматӣ аст ва бе онҳо низ ба таври якхела кор мекунад.
| Майдон | Фиристода мешавад ба | Чист |
|---|---|---|
prompt_cache_key | /v1/chat/completions, /v1/responses | Калиди масиркунии кэш дар API-и OpenAI. |
cache_control | /v1/messages | Нуқтаи таваққуфи кэш дар блоки мундариҷа, блоки system ё паёми API-и Anthropic. |
stream_options | /v1/chat/completions | include_usage аз API-и OpenAI usage-ро барои ҷараён мепурсад. Дар ин ҷо ҳар ҷараён бо usage анҷом меёбад. |
Ҳисоби токенҳо
Ду endpoint-и ройгон, POST /v1/tokenize ва POST /v1/messages/count_tokens, токенҳои матн ё тамоми дархостро барои моделҳои open-weight-и хостшуда пеш аз фиристодан ҳисоб мекунанд. Онҳо саҳифаи худро доранд: Ҳисоби токенҳо