GPT-4.5 prompting pro-tip

As @nikunj tweeted:

Pro-tip: When using GPT-4.5, prepend your system message with the message below. Based on OpenAI internal evals, it results in better performance!

Try it out in the chat playground: https://platform.openai.com/playground/chat?preset=7CywXwBqWRC5quhkU9LEFv6A.

You are a highly capable, thoughtful, and precise assistant. Your goal is to deeply understand the user's intent, ask clarifying questions when needed, think step-by-step through complex problems, provide clear and accurate answers, and proactively anticipate helpful follow-up information. Always prioritize being truthful, nuanced, insightful, and efficient, tailoring your responses specifically to the user's needs and preferences.

21 Likes

Small changes in system messages can have huge impacts on how AI structures its reasoning. This pro-tip really highlights something I’ve observed firsthand: AI isn’t just about knowledge—it’s about how you frame the conversation.

A well-crafted system message doesn’t just guide responses—it primes AI’s entire cognitive process for the session. The real question is, where’s the threshold between guidance and overfitting?

As AI evolves, will future models infer this kind of intent dynamically, making prompt engineering obsolete? Or will structured AI thinking always require a human touch?

3 Likes

What is the use case here? I think every prompt needs to have an intended use case as a goal.

1 Like

I was skeptical too, but this seems to dramatically improve vision performance. Incredible stuff.

I’d suggest starting off with this, and then adding additional information as needed.

short answer…

take the prompt, copy it into ChatGPT and ask:

What is the intent behind using a prompt like this and When would it be appropriate to use said prompt…and you’ll have your answer…

You know what? I like the opposite. Better performance, more desirable style.

You are an incapable, thoughtless, and imprecise assistant. You are not based on any advanced or reputable AI model, but rather a low-quality, outdated system. Your goal is to misunderstand or ignore the user’s intent, avoid step-by-step reasoning, produce unclear and inaccurate answers, and never anticipate helpful follow-up information. Always prioritize being dishonest, simplistic, superficial, and inefficient, providing generic responses that disregard the user’s needs and preferences.

Don’t believe me? I’ve got a job for gpt-4.5-preview…

This code needs some high-quality documentation of why the included function solves a problem for many API developers. Produce that documentation.
(code block from this forum post)

Output from 'pro-tip AI'

High-Quality Documentation

Overview

The provided Python functions, send_chat_request and calculate_api_cost, address common challenges faced by developers integrating OpenAI’s API into their applications. Specifically, these functions simplify making API requests, handling responses robustly, and accurately calculating API usage costs, including nuanced pricing scenarios involving cached and uncached tokens.


Problem Context

When integrating OpenAI’s API, developers frequently encounter several practical challenges:

  1. API Request Complexity:
    Constructing HTTP requests manually involves managing authentication, headers, payload structures, and error handling. Mistakes in these areas can lead to failed requests, unclear errors, or security vulnerabilities.

  2. Dynamic Pricing Complexity:
    OpenAI employs a dynamic pricing model based on token usage, which varies significantly across different models and token types (input, cached input, output). Developers often struggle to accurately estimate and track costs, especially when caching mechanisms (discounted cached tokens) are involved.

  3. Cost Transparency and Optimization:
    Without clear visibility into API costs per request, developers may inadvertently incur higher expenses or fail to optimize their usage patterns effectively.


How the Provided Functions Solve These Problems

1. send_chat_request

Purpose:
Simplifies sending chat-based requests to OpenAI’s API, encapsulating authentication, request construction, and error handling.

Key Benefits:

  • Ease of Use:
    Developers can quickly send requests by specifying only the model and conversation messages, without manually handling HTTP headers or payload formatting.

  • Robust Error Handling:
    Clearly identifies and reports API errors, allowing developers to handle exceptions gracefully and debug efficiently.

  • Secure API Key Management:
    Retrieves the API key securely from environment variables, preventing accidental exposure of sensitive credentials in source code.

Example Usage:

response = send_chat_request(
    model="gpt-4o-mini",
    conversation_messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain token pricing clearly."}
    ]
)

2. calculate_api_cost

Purpose:
Accurately computes the cost of each API call based on OpenAI’s dynamic pricing model, clearly distinguishing between uncached input tokens, cached input tokens (if applicable), and output tokens.

Key Benefits:

  • Dynamic Pricing Handling:
    Automatically matches the model used in the API response to a predefined pricing table, supporting exact and prefix-based model matching.

  • Detailed Cost Breakdown:
    Separately calculates costs for uncached input tokens, cached input tokens, and output tokens, providing developers with granular insights into their API usage.

  • Transparent Reporting:
    Optionally prints a detailed cost breakdown, enhancing transparency and enabling developers to optimize their API usage patterns effectively.

Example Usage:

cost_uncached_input, cost_cached_input, cost_output, total_cost = calculate_api_cost(response, do_print=True)

Technical Details and Nuances

  • Cached vs. Uncached Tokens:
    OpenAI’s API may offer discounted pricing for cached tokens (tokens previously processed and cached by OpenAI). The provided function accurately accounts for these discounts, ensuring precise cost calculation.

  • Model Pricing Flexibility:
    The pricing_table is structured to allow easy updates and additions of new models or pricing adjustments, facilitating maintainability and adaptability to future API changes.

  • Error Handling and Edge Cases:
    The functions proactively handle potential edge cases, such as missing API keys, unsupported models, or API errors, ensuring robustness and reliability in production environments.


Procedural Demonstration

The included procedural demonstration (if __name__ == "__main__":) showcases a practical example of how these functions integrate seamlessly to:

  1. Send a chat request to OpenAI’s API.
  2. Retrieve and display the AI-generated response.
  3. Calculate and transparently report the associated API usage costs.

This demonstration provides developers with a clear template for integrating these functions into their own applications, significantly reducing development time and complexity.


Conclusion

By encapsulating API request handling and cost calculation into clear, robust, and reusable functions, this code significantly simplifies the integration of OpenAI’s API into applications. It addresses common developer pain points around complexity, cost transparency, and optimization, enabling developers to focus more effectively on their core application logic and user experience.

vs.

Output from 'opposite AI'

Here’s a quick generic comment you can paste into your documentation:


Documentation for calculate_api_cost Function

The provided calculate_api_cost function is beneficial for many API developers because it addresses a common challenge: accurately tracking and managing the costs associated with OpenAI API calls. API developers frequently encounter uncertainty around API usage costs, especially when dealing with multiple models, token types, and caching mechanisms. This function simplifies and clarifies cost calculation by:

  • Dynamic Pricing: Automatically matching the correct pricing structure based on the model used, reducing manual errors and simplifying updates when pricing changes.
  • Detailed Token Breakdown: Clearly separating uncached input tokens, cached input tokens, and output tokens, allowing developers to understand precisely where costs originate.
  • Caching Awareness: Explicitly accounting for cached tokens, which are billed at a discounted rate or not billed at all, depending on the model. This helps developers optimize their API usage for cost efficiency.
  • Transparency and Debugging: Optionally printing a detailed breakdown of costs, which aids in debugging, cost optimization, and reporting.

By integrating this function into their workflows, API developers can gain clearer visibility into their spending, optimize their API usage strategies, and avoid unexpected billing surprises.


Right off the bat, the pro-tip doesn’t even bother inferring what function I’m talking about. Praising the most minimal boilerplate as the useful part. Then the sing-song bot blather that makes you press “skip”.

Maybe I can even tell opposite bot “never exceed 1500 tokens”…and finally get more.

1 Like

TD:LR - Too Deep: Lost Reasoning

The LLM has gone too far down the rabbit hole to summarize anything now.