გადასვლა შინაარსზე
პრომპტის ქეშირება

პრომპტის ქეშირება

ავტომატური

Hosted open-weight მოდელები ავტომატურად ახდენენ განმეორებული პრომპტ-პრეფიქსების ქეშირებას. როდესაც მოთხოვნა იწყება იმავე სისტემური პრომპტით, ხელსაწყოებითა და წინა შეტყობინებებით, რასაც ახლახან გამოყენებული იმავე მოდელის მოთხოვნა იყენებდა, ეს საერთო პრეფიქსი იკითხება ქეშიდან და მისი ღირებულება მოდელის შემავალი ფასის 2თის 25%-ია. გასააქტიურებლად არაფერია საჭირო, ქეშიში ჩაწერაც უფასოა.

როგორ მუშაობს

  • პრეფიქსი, თანმიმდევრობით — პრომპტი იკითხება თანმიმდევრობით: სისტემური პრომპტი, ხელსაწყოების დეფინიციები, შემდეგ კი შეტყობინებები. ქეში ემთხვევა ამ თანმიმდევრობის დასაწყისიდან პირველ ტოკენამდე, რომელიც განსხვავდება.
  • რა ითვლება hit-ად — მოთხოვნა, რომლის პრომპტიც იწყება იმავე კონტენტით, чем ახლახან გაგზავნილი მოთხოვნა — როგორც წესი, ერთი და იმავე კონვერსაციის წინა ეტაპი, რომელსაც დაემატა ახალი შეტყობინებები. დამთხვევა პრეფიქსი არის ქეშირებული შემავალი; ყველაფერი მას შემდეგ არის ჩვეულებრივი შემავალი.
  • گرانულარულობა — ქეში პრომპტს ინახავს 1,568 ტოკენიანი ბლოკებით, ამიტომ დაახლოებით 1,500 ტოკენზე მოკლე პრომპტი არ ქეშირდება. პასუხში ქეშირებულის რაოდენობა არის თქვენი შემავალის რაოდენობა გამრავლებული პრომპტის ქეშირებულ წილზე, დამრგვალებული ქვემოთ. ის სავალდებულოდ არ არის ბლოკის ზომის ჯერადი.
  • hit-ის გარეშე — მოთხოვნა, რომლის დასაწყისიც ქეშში არ არის, ჩვეულებრივი შემავალის ტარიფით ირიცხება. ქეშირებული პრომპტების სიცოცხლის ხანგრძლივობა არ არის გამოქვეყნებული და hit გარანტირებული არ არის: წაიკითხეთ usage, რომ ნახოთ, რა აიღო მოთხოვნამ ქეშიდან.
  • ჩამრთველი არ არის — მოთხოვნა ქეშირებაზე არ ეთანხმება და არც ერთი ველი ქეშირებას არ ითიშება.
  • რომელი მოდელები — ყველა hosted open-weight ID. 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

ფასები

ქეშირებული შემავალი ტოკენები იანგარიშებს მოდელის შემავალი ტარიფის 25%-ად, დამრგვალებული $0.001-მდე 1M-ზე. ქეშიში ჩაწერა დამატებით არაფერი ღირს, გამომავალი კი ჩვეულებრივად იანგარიშებს. თითოეული ID-ის ქეშირებული ტარიფი მოცემულია 'მოდელებისა და ფასების' ცხრილში. მოდელები და ფასები

ზარის შემავალი ტოკენები ირიცხება ფორმულით: (შემავალი − ქეშირებული) × შემავალის ტარიფი + ქეშირებული × ქეშირებულის ტარიფი. ქეშირებულის რაოდენობა არასდროს აღემატება შემავალის რაოდენობას.

მოდელი შემავალი / 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

გამოყენების ჟურნალი თითოეული გამოძახების ქეშირებულ შემავალს ჩამოთვლის. მისი ჩამოჭრილი ტოკენები და ღირებულება ქეშირებულის ტარიფს უკვე შეიცავს. გასაღებები და გამოყენება

გამოყენების ველები

Endpoint ქეშირებული შემავალი დასკვნა
/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-ში ატარებს. მის მოთხოვნა არ გჭირდებათ:

Endpoint სად მოდის usage
/v1/chat/completions usage ბოლო chunk-ზე data: [DONE]-მდე. ის ყველა სტრიმზე იგზავნება.
/v1/responses response.completed მოვლენის response.usage.
/v1/messages message_delta მოვლენის usage. message_start-ის usage ნულებს შეიცავს.

როგორ მივიღოთ მეტი cache hit

  • შეინარჩუნეთ სისტემური პრომპტისა და ხელსაწყოების დეფინიციების ზუსტი სტაბილურობა გამოძახებებს შორის. ყოველი გამოძახების ცვლადები, როგორიცაა თარიღები ან მოთხოვნის ID-ები, მოათავსეთ ბოლო შეტყობინებაში და არა სისტემურ პრომპტში.
  • მხოლოდ დაამატეთ ისტორიას. წინა ეტაპების რედაქტირება, შეკვეცა ან შეჯამება ცვლის პრეფიქსს, და პირველივე ცვლილების შემდეგ ყველაფერი იანგარიშებს როგორც ჩვეულებრივი შემავალი.
  • ნუ შეცვლით ხელსაწყოების, შეტყობინებების ან კონტენტ-ბლოკების თანმიმდევრობას გამოძახებებს შორის და ყოველთვის ერთნაირად სერიალიზasikan JSON (ხელსაწყოს სქემები, არგუმენტები და შედეგები).
  • საუბრის განმავლობაში დარჩით ერთ მოდელის id-ზე და შემდეგი გამოძახება წინას მალევე გააგზავნეთ.

API საუბრის დასაწყისს სტაბილურად ინახავს ამ შემთხვევებში:

  • system ან developer შეტყობინება, რომელიც საუბარში მოგვიანებით იგზავნება, თავის ადგილზე რჩება. ის პრომპტის დასაწყისს არ ცვლის, ამიტომ მის წინა ბიჯები ქეშირებული რჩება.
  • წინა assistant ბიჯებში ინსტრუმენტების გამოძახების არგუმენტები მნიშვნელობით შედარდება. ამ JSON-ის გასაღებების თანმიმდევრობას და ინტერვალებს მნიშვნელობა არ აქვს.
  • სამივე endpoint საუბარს ერთნაირად კითხულობს. საუბარი, რომელიც სხვა endpoint-ზე გაგრძელდა, თავის საერთო პრეფიქსს ინარჩუნებს, თუ შინაარსი იგივეა.

მოთხოვნის ველები

prompt_cache_key (Chat Completions და Responses) და cache_control Messages-ის კონტენტ ბლოკებში მიღებულია, ამ因此 არსებული კლიენტის კოდი უცვლელად მუშაობს. არცერთი მათგანი სავალდებულო არ არის: ქეშირება ავტომატურია და მათ გარეშეც identical მუშაობს.

ველი იგზავნება რა არის ეს
prompt_cache_key /v1/chat/completions, /v1/responses OpenAI API-ის ქეშის მარშრუტიზაციის გასაღები.
cache_control /v1/messages Anthropic API-ის cache breakpoint კონტენტ-ბლოკზე, system ბლოკზე ან შეტყობინებაზე.
stream_options /v1/chat/completions include_usage სტრიმზე usage-ს ითხოვს OpenAI API-ში. აქ ყველა სტრიმი usage-ით მთავრდება.

ტოკენების დათვლა

ორი უფასო endpoint, POST /v1/tokenize და POST /v1/messages/count_tokens, hosted open-weight მოდელებისთვის ითვლის ტექსტის ან მთელი მოთხოვნის ტოკენებს გაგზავნამდე. მათ საკუთარი გვერდი აქვთ: ტოკენების დათვლა