Close Menu
    Trending
    • Prompt Caching with the OpenAI API: A Full Hands-On Python tutorial
    • Building a Navier-Stokes Solver in Python from Scratch: Simulating Airflow
    • Escaping the SQL Jungle | Towards Data Science
    • A Gentle Introduction to Nonlinear Constrained Optimization with Piecewise Linear Approximations
    • The Math That’s Killing Your AI Agent
    • Building Robust Credit Scoring Models (Part 3)
    • How to Measure AI Value
    • What’s the right path for AI? | MIT News
    ProfitlyAI
    • Home
    • Latest News
    • AI Technology
    • Latest AI Innovations
    • AI Tools & Technologies
    • Artificial Intelligence
    ProfitlyAI
    Home » Prompt Caching with the OpenAI API: A Full Hands-On Python tutorial
    Artificial Intelligence

    Prompt Caching with the OpenAI API: A Full Hands-On Python tutorial

    ProfitlyAIBy ProfitlyAIMarch 22, 2026No Comments10 Mins Read
    Share Facebook Twitter Pinterest LinkedIn Tumblr Reddit Telegram Email
    Share
    Facebook Twitter LinkedIn Pinterest Email


    In my previous post, Immediate Caching — what it’s, the way it works, and the way it can prevent some huge cash and time when working AI-powered apps with excessive site visitors. In right this moment’s publish, I stroll you thru implementing Immediate Caching particularly utilizing OpenAI’s API, and we focus on some widespread pitfalls.


    A short reminder on Immediate Caching

    Earlier than getting our palms soiled, let’s briefly revisit what precisely the idea of Immediate Caching is. Immediate Caching is a performance supplied in frontier mannequin API companies just like the OpenAI API or Claude’s API, that permits caching and reusing components of the LLM’s enter which might be repeated regularly. Such repeated components could also be system prompts or directions which might be handed to the mannequin each time when working an AI app, together with some other variable content material, just like the consumer’s question or info retrieved from a information base. To have the ability to hit cache with immediate caching, the repeated components of the immediate should be at the start of it, specifically, a immediate prefix. As well as, to ensure that immediate caching to be activated, this prefix should exceed a sure threshold (e.g., for OpenAI the prefix needs to be greater than 1,024 tokens, whereas Claude has totally different minimal cache lengths for various fashions). So far as these two circumstances are glad — repeated tokens as a prefix exceeding the scale threshold outlined by the API service and mannequin — caching will be activated to attain economies of scale when working AI apps.

    In contrast to caching in different parts in a RAG or different AI app, immediate caching operates on the token degree, within the inner procedures of the LLM. Particularly, LLM inference takes place in two steps:

    • Pre-fill, that’s, the LLM takes into consideration the consumer immediate to generate the primary token, and
    • Decoding, that’s, the LLM recursively generates the tokens of the output one after the other

    In brief, immediate caching shops the computations that happen within the pre-fill stage, so the mannequin doesn’t must recompute it once more when the identical prefix reappears. Any computations going down within the decoding iterations section, even when repeated, aren’t going to be cached.

    For the remainder of the publish, I will probably be focusing solely on using immediate caching within the OpenAI API.


    What in regards to the OpenAI API?

    In OpenAI’s API, immediate caching was initially launched on the 1st of October 2024. Initially, it supplied a 50% low cost on the cached tokens, however these days, this low cost goes as much as 90%. On high of this, by hitting their immediate cache, extra financial savings on latency will be achived as much as 80%.

    When immediate caching is activated, the API service makes an attempt to hit the cache for a submitted request by routing the submitted immediate to an acceptable machine, the place the respective cache is anticipated to exist. That is referred to as the Cache Routing, and to do that, the API service sometimes makes use of a hash of the primary 256 tokens of the immediate.

    Past this, their API additionally permits for explicitly defining a the prompt_cache_key parameter within the API request to the mannequin. That may be a single key defining which cache we’re referring to, aiming to additional improve the possibilities of our immediate being routed to the right machine and hitting cache.

    As well as, OpenAI API supplies two distinct varieties of caching with regard to length, outlined by means of the prompt_cache_retention parameter. These are:

    • In-memory immediate cache retention: That is primarily the default kind of caching, accessible for all fashions for which immediate caching is obtainable. With in-memory cache, cached information stay energetic for a interval of 5-10 minutes beteen requests.
    • Prolonged immediate cache retention: This accessible for specific models. Prolonged cache permits for holding information in cache for loger and as much as a most of 24 hours.

    Now, with regard to how a lot all these value, OpenAI prices the identical per enter (non cached) token, both we now have immediate caching activated or not. If we handle to hit cache succesfully, we’re billed for the cached tokens at a tremendously discounted worth, with a reduction as much as 90%. Furthermore, the value per enter token stays the identical each for the in reminiscence and prolonged cache retention.


    Immediate Caching in Follow

    So, let’s see how immediate caching really works with a easy Python instance utilizing OpenAI’s API service. Extra particularly, we’re going to do a sensible state of affairs the place a lengthy system immediate (prefix) is reused throughout a number of requests. In case you are right here, I suppose you have already got your OpenAI API key in place and have put in the required libraries. So, the very first thing to do could be to import the OpenAI library, in addition to time for capturing latency, and initialize an occasion of the OpenAI consumer:

    from openai import OpenAI
    import time
    
    consumer = OpenAI(api_key="your_api_key_here")

    then we are able to outline our prefix (the tokens which might be going to be repeated and we’re aiming to cache):

    long_prefix = """
    You're a extremely educated assistant specialised in machine studying.
    Reply questions with detailed, structured explanations, together with examples when related.
    
    """ * 200  

    Discover how we artificially improve the size (multiply with 200) to ensure the 1,024 token caching threshold is met. Then we additionally arrange a timer in order to measure our latency financial savings, and we’re lastly able to make our name:

    begin = time.time()
    
    response1 = consumer.responses.create(
        mannequin="gpt-4.1-mini",
        enter=long_prefix + "What's overfitting in machine studying?"
    )
    
    finish = time.time()
    
    print("First response time:", spherical(finish - begin, 2), "seconds")
    print(response1.output[0].content material[0].textual content)

    So, what can we anticipate to occur from right here? For fashions from gpt-4o and newer, immediate caching is activated by default, and since our 4,616 enter tokens are properly above the 1,024 prefix token threshold, we’re good to go. Thus, what this request does is that it initially checks if the enter is a cache hit (it’s not, since that is the primary time we do a request with this prefix), and since it’s not, it processes your entire enter after which caches it. Subsequent time we ship an enter that matches the preliminary tokens of the cached enter to some extent, we’re going to get a cache hit. Let’s verify this in follow by making a second request with the identical prefix:

    begin = time.time()
    
    response2 = consumer.responses.create(
        mannequin="gpt-4.1-mini",
        enter=long_prefix + "What's regularization?"
    )
    
    finish = time.time()
    
    print("Second response time:", spherical(finish - begin, 2), "seconds")
    print(response2.output[0].content material[0].textual content)

    Certainly! The second request runs considerably sooner (23.31 vs 15.37 seconds). It is because the mannequin has already made the calculations for the cached prefix and solely must course of from scratch the brand new half, “What’s regularization?”. Because of this, by utilizing immediate caching, we get considerably decrease latency and decreased value, since cached tokens are discounted.


    One other factor talked about within the OpenAI documentation we’ve already talked about is the prompt_cache_key parameter. Particularly, based on the documentation, we are able to explicitly outline a immediate cache key when making a request, and on this approach outline the requests that want to make use of the identical cache. Nonetheless, I attempted to incorporate it in my instance by appropriately adjusting the request parameters, however didn’t have a lot luck:

    response1 = consumer.responses.create(
        prompt_cache_key = 'prompt_cache_test1',
        mannequin="gpt-5.1",
        enter=long_prefix + "What's overfitting in machine studying?"
    )

    🤔

    It appears that evidently whereas prompt_cache_key exists within the API capabilities, it’s not but uncovered within the Python SDK. In different phrases, we can’t explicitly management cache reuse but, however it’s relatively automated and best-effort.


    So, what can go flawed?

    Activating immediate caching and truly hitting the cache appears to be type of easy from what we’ve mentioned to this point. So, what might go flawed, leading to us lacking the cache? Sadly, a whole lot of issues. As easy as it’s, immediate caching requires a whole lot of totally different assumptions to be in place. Lacking even a type of conditions goes to end in a cache miss. However let’s take a greater look!

    One apparent miss is having a prefix that’s lower than the edge for activating immediate caching, specifically, lower than 1,024 tokens. Nonetheless, that is very simply solvable — we are able to at all times simply artificially improve the prefix token rely by merely multiplying by an acceptable worth, as proven within the instance above.

    One other factor could be silently breaking the prefix. Particularly, even once we use persistent directions and system prompts of acceptable measurement throughout all requests, we should be exceptionally cautious to not break the prefixes by including any variable content material at the start of the mannequin’s enter, earlier than the prefix. That may be a assured option to break the cache, regardless of how lengthy and repeated the next prefix is. Ordinary suspects for falling into this pitfall are dynamic information, for example, appending the consumer ID or timestamps at the start of the immediate. Thus, a greatest follow to observe throughout all AI app improvement is that any dynamic content material ought to at all times be appended on the finish of the immediate — by no means at the start.

    Finally, it’s value highlighting that immediate caching is just in regards to the pre-fill section — decoding isn’t cached. Which means that even when we impose on the mannequin to generate responses following a selected template, that beggins with sure mounted tokens, these tokens aren’t going to be cached, and we’re going to be billed for his or her processing as common.

    Conversely, for particular use instances, it doesn’t actually make sense to make use of immediate caching. Such instances could be extremely dynamic prompts, like chatbots with little repetition, one-off requests, or real-time personalised programs.

    . . .

    On my thoughts

    Immediate caching can considerably enhance the efficiency of AI purposes each when it comes to value and time. Particularly when seeking to scale AI apps immediate caching comes extremelly helpful, for sustaining value and latency in acceptable ranges.

    For OpenAI’s API immediate caching is activated by default and prices for enter, non-cached tokens are the identical both we activate immediate caching or not. Thus, one can solely win by activating immediate caching and aiming to hit it in each request, even when they don’t succeed.

    Claude additionally supplies in depth performance on immediate caching by means of their API, which we’re going to be exploring intimately in a future publish.

    Thanks for studying! 🙂

    . . .

    Cherished this publish? Let’s be associates! Be part of me on:

    📰Substack 💌 Medium 💼LinkedIn ☕Buy me a coffee!

    All photos by the creator, besides talked about in any other case.



    Source link

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Previous ArticleBuilding a Navier-Stokes Solver in Python from Scratch: Simulating Airflow
    ProfitlyAI
    • Website

    Related Posts

    Artificial Intelligence

    Building a Navier-Stokes Solver in Python from Scratch: Simulating Airflow

    March 22, 2026
    Artificial Intelligence

    Escaping the SQL Jungle | Towards Data Science

    March 21, 2026
    Artificial Intelligence

    A Gentle Introduction to Nonlinear Constrained Optimization with Piecewise Linear Approximations

    March 21, 2026
    Add A Comment
    Leave A Reply Cancel Reply

    Top Posts

    3 Questions: How to help students recognize potential bias in their AI datasets | MIT News

    June 2, 2025

    Stolen faces, stolen lives: The disturbing trend of AI-powered exploitation

    April 18, 2025

    Changing the conversation in health care | MIT News

    July 9, 2025

    Why it’s critical to move beyond overly aggregated machine-learning metrics | MIT News

    January 20, 2026

    AI is coming for music, too

    April 16, 2025
    Categories
    • AI Technology
    • AI Tools & Technologies
    • Artificial Intelligence
    • Latest AI Innovations
    • Latest News
    Most Popular

    OpenAI lanserar GPT-5 – AI nyheter

    August 7, 2025

    The Pentagon is gutting the team that tests AI and weapons systems

    June 10, 2025

    The Causal Inference Playbook: Advanced Methods Every Data Scientist Should Master

    March 15, 2026
    Our Picks

    Prompt Caching with the OpenAI API: A Full Hands-On Python tutorial

    March 22, 2026

    Building a Navier-Stokes Solver in Python from Scratch: Simulating Airflow

    March 22, 2026

    Escaping the SQL Jungle | Towards Data Science

    March 21, 2026
    Categories
    • AI Technology
    • AI Tools & Technologies
    • Artificial Intelligence
    • Latest AI Innovations
    • Latest News
    • Privacy Policy
    • Disclaimer
    • Terms and Conditions
    • About us
    • Contact us
    Copyright © 2025 ProfitlyAI All Rights Reserved.

    Type above and press Enter to search. Press Esc to cancel.