Skip to main content

Caching na Prompt Mai La’akari da Provider

Superdav AI Agent v1.12.0 yana gabatar da caching na prompt mai la’akari da provider, wanda ke inganta kuɗin API da jinkiri ta hanyar caching na prompts a tsakanin providers na LLM daban-daban. Kowane provider yana da hanyoyin caching da saituna daban-daban.

Bayani Gabaɗaya

Caching na prompt yana ba ka damar:

  • Yi cache na manyan prompts da ake yawan amfani da su
  • Rage kuɗin API ta hanyar guje wa maimaita sarrafawa
  • Inganta jinkiri ga buƙatun da aka yi cache
  • Sarrafa rayuwar cache a sarari

Providers daban-daban suna aiwatar da caching ta hanyoyi daban-daban:

  • Google Gemini: cachedContents API
  • Azure OpenAI: Caching na prompt tare da TTL
  • OpenRouter: Caching na musamman ga provider
  • Vertex Anthropic: Caching na prompt tare da sarrafa cache

Google Gemini: cachedContents API

Google Gemini yana bayar da sarrafa cache a sarari ta hanyar cachedContents API.

Saituna

$config = [
'provider' => 'google-gemini',
'model' => 'gemini-2.0-flash',
'caching' => [
'enabled' => true,
'ttl' => 3600, // 1 hour in seconds
'max_tokens' => 1000000, // Max tokens to cache
],
];

Ƙirƙirar Prompt da aka Yi Cache

use Superdav\AI\Providers\GoogleGemini;

$gemini = new GoogleGemini( $config );

$cached_content = $gemini->create_cached_content(
[
'system_prompt' => 'You are a helpful assistant...',
'context' => 'Large context document...',
'ttl' => 3600,
]
);

// Returns: ['cache_id' => 'abc123', 'expires_at' => timestamp]

Amfani da Prompt da aka Yi Cache

$response = $gemini->generate(
[
'cache_id' => 'abc123',
'prompt' => 'User question here',
]
);

Rayuwar Cache

// List cached contents
$caches = $gemini->list_cached_contents();

// Get cache details
$cache = $gemini->get_cached_content( 'abc123' );

// Extend cache TTL
$gemini->update_cached_content(
'abc123',
['ttl' => 7200] // Extend to 2 hours
);

// Delete cache
$gemini->delete_cached_content( 'abc123' );

Mafi Kyawun Hanyoyi don Gemini

  • Saita TTL da ya dace: Daidaita tanadin kuɗi da tsufar cache
  • Yi cache na system prompts: Sake amfani da system prompt iri ɗaya a cikin buƙatu
  • Sa ido kan amfani da cache: Bibiyi waɗanne caches aka fi amfani da su
  • Share caches da suka ƙare: Share caches marasa amfani lokaci-lokaci

Azure OpenAI: Caching na Prompt

Azure OpenAI yana goyon bayan caching na prompt tare da sarrafa TTL ta atomatik.

Saituna

$config = [
'provider' => 'azure-openai',
'model' => 'gpt-4-turbo',
'api_version' => '2024-08-01-preview',
'caching' => [
'enabled' => true,
'cache_control' => 'max_age=3600',
],
];

Kunna Caching

use Superdav\AI\Providers\AzureOpenAI;

$azure = new AzureOpenAI( $config );

$response = $azure->generate(
[
'system_prompt' => 'You are a helpful assistant...',
'context' => 'Large context document...',
'prompt' => 'User question here',
'cache_control' => 'max_age=3600',
]
);

// Response includes cache usage:
// [
// 'content' => '...',
// 'cache_creation_input_tokens' => 1000,
// 'cache_read_input_tokens' => 500,
// ]

Headers na Cache

Azure OpenAI yana amfani da HTTP headers don sarrafa cache:

Cache-Control: max_age=3600

Ƙimomin da ake goyon baya:

  • max_age=<seconds>: Yi cache na tsawon lokacin da aka ayyana
  • no_cache: Kada a yi cache na wannan buƙata
  • no_store: Kada a yi cache kuma kada a sake amfani da shi

Sa Ido kan Amfani da Cache

$response = $azure->generate( [...] );

$cache_tokens = $response['cache_creation_input_tokens'] ?? 0;
$cache_hits = $response['cache_read_input_tokens'] ?? 0;

echo "Cache creation: $cache_tokens tokens\n";
echo "Cache hits: $cache_hits tokens\n";

Mafi Kyawun Hanyoyi don Azure OpenAI

  • Yi amfani da prompts masu daidaito: Prompts iri ɗaya suna amfana daga caching
  • Saita TTL mai ma’ana: Daidaita kuɗi da sabo
  • Sa ido kan ma’aunin cache: Bibiyi ƙirƙirar cache da hits
  • Tattara buƙatu masu kama da juna: Rarraba buƙatu wuri ɗaya don ƙara cache hits

OpenRouter: Caching na Musamman ga Provider

OpenRouter yana goyon bayan caching ta hanyar providers na ƙasa (OpenAI, Anthropic, da sauransu).

Saituna

$config = [
'provider' => 'openrouter',
'model' => 'openai/gpt-4-turbo',
'caching' => [
'enabled' => true,
'provider_cache' => 'openai', // Use OpenAI's caching
],
];

Amfani da Caching na OpenRouter

use Superdav\AI\Providers\OpenRouter;

$router = new OpenRouter( $config );

$response = $router->generate(
[
'system_prompt' => 'You are a helpful assistant...',
'context' => 'Large context document...',
'prompt' => 'User question here',
'cache_control' => 'max_age=3600',
]
);

Zaɓuɓɓuka na Musamman ga Provider

Providers daban-daban suna da hanyoyin caching daban-daban:

// OpenAI-compatible caching
$response = $router->generate(
[
'model' => 'openai/gpt-4-turbo',
'cache_control' => 'max_age=3600',
]
);

// Anthropic-compatible caching
$response = $router->generate(
[
'model' => 'anthropic/claude-3-opus',
'cache_control' => [
'type' => 'ephemeral',
'max_tokens' => 1000000,
],
]
);

Mafi Kyawun Hanyoyi don OpenRouter

  • San caching na provider ɗinka: Kowane provider yana da hanyoyi daban-daban
  • Gwada halayen caching: Tabbatar caching yana aiki da provider da ka zaɓa
  • Sa ido kan kuɗaɗe: Bibiyi tanadi daga caching
  • Yi amfani da models masu daidaito: Sauya models yana karya cache hits

Vertex Anthropic: Caching na Prompt tare da Sarrafa Cache

Vertex Anthropic (Google Cloud) yana goyon bayan caching na prompt tare da sarrafa cache a sarari.

Saituna

$config = [
'provider' => 'vertex-anthropic',
'model' => 'claude-3-opus',
'project_id' => 'your-gcp-project',
'region' => 'us-central1',
'caching' => [
'enabled' => true,
'cache_control' => [
'type' => 'ephemeral',
'max_tokens' => 1000000,
],
],
];

Amfani da Vertex Anthropic Caching

use Superdav\AI\Providers\VertexAnthropic;

$vertex = new VertexAnthropic( $config );

$response = $vertex->generate(
[
'system_prompt' => 'You are a helpful assistant...',
'context' => 'Large context document...',
'prompt' => 'User question here',
'cache_control' => [
'type' => 'ephemeral',
'max_tokens' => 1000000,
],
]
);

// Response includes cache metrics:
// [
// 'content' => '...',
// 'usage' => [
// 'input_tokens' => 1000,
// 'cache_creation_input_tokens' => 500,
// 'cache_read_input_tokens' => 300,
// ],
// ]

Nau'ikan Sarrafa Cache

  • ephemeral: Cache na tsawon lokacin buƙatar (tsoho)
  • persistent: Cache a cikin buƙatu da yawa (idan ana goyon baya)

Sa Ido kan Amfani da Cache

$response = $vertex->generate( [...] );

$usage = $response['usage'];
$cache_created = $usage['cache_creation_input_tokens'] ?? 0;
$cache_read = $usage['cache_read_input_tokens'] ?? 0;

echo "Cache created: $cache_created tokens\n";
echo "Cache read: $cache_read tokens\n";

Mafi Kyawun Dabaru don Vertex Anthropic

  • Yi amfani da ephemeral caching: Yana da kyau don caching na zaman guda
  • Saita max_tokens yadda ya dace: Daidaita girman cache da farashi
  • Sa ido kan ma'aunin cache: Bibiyi ingancin cache
  • Gwada da aikin ka: Tabbatar caching yana amfani ga yanayin amfanin ka

Dabarar Caching Ta Masu Samarwa Daban-daban

Daidaitaccen Saitawa

$config = [
'caching' => [
'enabled' => true,
'default_ttl' => 3600,
'providers' => [
'google-gemini' => [
'ttl' => 3600,
'max_tokens' => 1000000,
],
'azure-openai' => [
'cache_control' => 'max_age=3600',
],
'vertex-anthropic' => [
'cache_control' => [
'type' => 'ephemeral',
'max_tokens' => 1000000,
],
],
],
],
];

Gano Provider

$provider = $config['provider'];

$cache_config = $config['caching']['providers'][ $provider ]
?? $config['caching'];

// Use provider-specific caching configuration

Dabarar Fallback

try {
// Try caching with primary provider
$response = $primary_provider->generate( $request );
} catch ( CacheException $e ) {
// Fall back to non-cached request
$response = $primary_provider->generate(
array_merge( $request, ['cache_control' => 'no_cache'] )
);
}

Inganta Farashi

Lissafa Tanadi

$cache_created_tokens = $response['cache_creation_input_tokens'] ?? 0;
$cache_read_tokens = $response['cache_read_input_tokens'] ?? 0;
$regular_tokens = $response['input_tokens'] ?? 0;

// Typical pricing (varies by provider):
$cache_creation_cost = $cache_created_tokens * 0.00001; // 10x cheaper
$cache_read_cost = $cache_read_tokens * 0.000001; // 100x cheaper
$regular_cost = $regular_tokens * 0.00001;

$total_cost = $cache_creation_cost + $cache_read_cost + $regular_cost;
$savings = ($regular_tokens * 0.00001) - $total_cost;

echo "Estimated savings: \$$savings\n";

Shawarwarin Ingantawa

  • Cache manyan system prompts: Mafi girman tanadin farashi
  • Sake amfani da context: Cache takardun context da ake yawan amfani da su
  • Tara buƙatu: Haɗa buƙatu masu kama don ƙara cache hits
  • Sa ido kan ingancin cache: Bibiyi ainihin tanadi
  • Daidaita TTL: Daidaita farashi da sabo

Gyaran Matsaloli

Ba a amfani da cache

  • Tabbatar caching yana kunne a cikin saitawa
  • Duba cewa prompts ɗin iri ɗaya ne (caching yana buƙatar cikakken daidaito)
  • Tabbatar cache bai ƙare ba
  • Duba iyakokin cache na musamman ga provider

Ƙirƙirar cache na gaza

  • Tabbatar girman cache yana cikin iyakokin provider
  • Duba cewa tsarin cache control daidai ne
  • Tabbatar provider yana goyon bayan caching don model ɗin ka
  • Duba takardun provider don iyakoki

Farashi da ba a zata ba

  • Sa ido kan ƙirƙirar cache da cache read tokens
  • Tabbatar da gaske ana amfani da cache
  • Duba cache misses saboda bambance-bambancen prompt
  • Yi la'akari da daidaita TTL ko dabarar cache

Kwatanta Provider

FasaliGeminiAzure OpenAIOpenRouterVertex Anthropic
Cache APIcachedContentsHTTP headersNa musamman ga providerCache control
Sarrafa TTLA filiTa headersYa dogara da providerEphemeral/persistent
Matsakaicin girman cache1M tokensYa dogara da providerYa dogara da provider1M tokens
Rage farashi90%90%Ya dogara da provider90%
Sa idoDalla-dallaTa metricsYa dogara da providerTa usage

Matakai na Gaba

  1. Zaɓi provider ɗin ka: Zaɓa bisa buƙatun ka
  2. Saita caching: Kafa caching na musamman ga provider
  3. Gwada caching: Tabbatar yana aiki da prompts ɗin ka
  4. Sa ido kan amfani: Bibiyi cache hits da tanadin farashi
  5. Inganta: Daidaita TTL da dabarar cache bisa sakamako