Provider-Aware Prompt Caching
Superdav AI Agent v1.12.0 hefurð provider-aware prompt caching, sem betur fyrir API-kostna og hlutfall á hvísli með því að nota cache fyrir texta (prompts) yfir annar LLM veitiefyrirtæki. Hvert veitiefyrirtæki hefur annarra skilyrða og uppsetningum fyrir caching.
Översiktur
Prompt caching leyfir þér að:
- Cacha stórar, oftast notaðar texta (prompts)
- Drápa API-kostna með því að undanbúa óþarf skipti
- Bera hvísli fyrir vinnu á færðum leiknum
- Stýra lífeyrslu cache-sins sérstaklega
Fyrir hverja veitiefyrirtæki er caching gerst annarlega:
- Google Gemini:
cachedContentsAPI - Azure OpenAI: Prompt caching með TTL (tími fyrir laukið)
- OpenRouter: Veitiefyrirtæki-spesifikt caching
- Vertex Anthropic: Prompt caching með stjórnun af cache-sins
Google Gemini: cachedContents API
Google Gemini býður sér sérstaka stjórnun á cache-sins í gegnum cachedContents API.
Uppsetning
$config = [
'provider' => 'google-gemini',
'model' => 'gemini-2.0-flash',
'caching' => [
'enabled' => true,
'ttl' => 3600, // 1 stund í sekundum
'max_tokens' => 1000000, // Stóra texta (tokens) að cacha
],
];
Sköpun cached Prompt-sins
use Superdav\AI\Providers\GoogleGemini;
$gemini = new GoogleGemini( $config );
$cached_content = $gemini->create_cached_content(
[
'system_prompt' => 'Þú ert hjálfandi hjálparmann...',
'context' => 'Stórt texta-dokument...',
'ttl' => 3600,
]
);
// Til að bera: ['cache_id' => 'abc123', 'expires_at' => tími]
Notkun með cacheð prompt
$response = $gemini->generate(
[
'cache_id' => 'abc123',
'prompt' => 'Notkunarspurning hér',
]
);
Leikslagslif
// Listuðu cached innhald
$caches = $gemini->list_cached_contents();
// Fáðu upplýsingar um cache-inn
$cache = $gemini->get_cached_content( 'abc123' );
// Stækka TTL (tími til að nota) á cache-inn
$gemini->update_cached_content(
'abc123',
['ttl' => 7200] // Stækkt í 2 stundir
);
// Teyma cache-inn
$gemini->delete_cached_content( 'abc123' );
Bestu háttar fyrir Gemini
- Setju viðeigandi TTL: Samþættið kostnaðsredu og ófullnægni í upplýsingum (staleness).
- Cache system prompts: Notaðu sama system prompt fyrir all spurningarnar þín.
- Fylgjast með notkun cache-ins: Fylgjast með því hvar sem caches eru notað mest.
- Teyma úldri caches: Teyma ónotaðir caches á viðkvæmt tveiminn.
Azure OpenAI: Prompt Caching
Azure OpenAI stendur fyrir prompt caching og hefur sjálfvirka stjórnun TTL (tíma til að nota) með því.
Innstillingar
$config = [
'provider' => 'azure-openai',
'model' => 'gpt-4-turbo',
'api_version' => '2024-08-01-preview',
'caching' => [
'enabled' => true,
'cache_control' => 'max_age=3600',
],
];
Skilning af að aktíva caching
use Superdav\AI\Providers\AzureOpenAI;
$azure = new AzureOpenAI( $config );
$response = $azure->generate(
[
'system_prompt' => 'Þú ert hjálfandi hjálpar',
'context' => 'Stort textafræðilegt skjal...',
'prompt' => 'Notkunarspurning hér',
'cache_control' => 'max_age=3600',
]
);
// Svarin fylgja notkun á cache:
// [
// 'content' => '...',
// 'cache_creation_input_tokens' => 1000,
// 'cache_read_input_tokens' => 500,
// ]
Cache-hæðir (Cache Headers)
Azure OpenAI notar HTTP-hæðir til stjórnun á cache:
Cache-Control: max_age=3600
Stöðugt virkandi verðmæti:
max_age=<sekond>: Cache fyrir sérstaka tímano_cache: Skyni þessar skynjun ekki í cacheno_store: Skyni þessar skynjun ekki og notaðu ekki aftur
Stuðningur á notkun cache
$response = $azure->generate( [...] );
$cache_tokens = $response['cache_creation_input_tokens'] ?? 0;
$cache_hits = $response['cache_read_input_tokens'] ?? 0;
echo "Sköpun cache: $cache_tokens token\n";
echo "Hit-sögu cache: $cache_hits token\n";
Bestu aðferðir fyrir Azure OpenAI
- Notu eins og sama spurningar: Ítúlar spurningar fái ávinningur af caching
- Setri raunverulega TTL (Time To Live): Balansar kostnað og fréshild
- Fylgjast með metrikum cache-notkunarinnar: Fylgja sköpunu cacheins og hitum
- Samla eins og sama spurningar: Gruppa spurningar til að ná mestri mögulega hitum í cache
OpenRouter: Cache fyrir viðbótun (Provider-Specific Caching)
OpenRouter stendur með caching þegar hann notar grundvallar viðbótunir (OpenAI, Anthropic, osbn).
Innstillingar
$config = [
'provider' => 'openrouter',
'model' => 'openai/gpt-4-turbo',
'caching' => [
'enabled' => true,
'provider_cache' => 'openai', // Nota: Notkun OpenAI-s peyttu
],
];
Notkun OpenRouter Caching
use Superdav\AI\Providers\OpenRouter;
$router = new OpenRouter( $config );
$response = $router->generate(
[
'system_prompt' => 'Þú ert hjálfandi hjálpar',
'context' => 'Stort textafræðilegt skjal...',
'prompt' => 'Notkunarspurning hér',
'cache_control' => 'max_age=3600',
]
);
Valkostir fyrir Notkunarviti (Provider-Specific Options)
Fjöldi notkunarvita hefur sína eigin skeymið til að nota viti:
// OpenAI-samræmd viti
$response = $router->generate(
[
'model' => 'openai/gpt-4-turbo',
'cache_control' => 'max_age=3600',
]
);
// Anthropic-samræmd viti
$response = $router->generate(
[
'model' => 'anthropic/claude-3-opus',
'cache_control' => [
'type' => 'ephemeral',
'max_tokens' => 1000000,
],
]
);
Bestu Dragar fyrir OpenRouter
- Vitið þennan notkunarvita: Hvert vita hefur annarra vita sem er annleiki.
- Prófa vitið: Staða viti til að virka með notkunarvita sem þú valdið.
- Fylgjast með kostnaðum: Fylgja sparnaðum sem viti gerir.
- Notkun sama modella: Skiftingu modella breytur ekki hitlið (cache hits).
Vertex Anthropic: Prompt Caching með Cache Control
Vertex Anthropic (Google Cloud) stendur á prompt caching með skýrri kontrolli yfir cache.
Innstillingar
$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,
],
],
];
Notkun 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,
],
]
);
// Svarin fylgja með metrikum cache:
// [
// 'content' => '...',
// 'usage' => [
// 'input_tokens' => 1000,
// 'cache_creation_input_tokens' => 500,
// 'cache_read_input_tokens' => 300,
// ],
// ]
Typer Cache Kontrolls
- ephemeral: Cache fyrir varanlega áhættu (default)
- persistent: Cache milli fleiri skýrslunnar (ef er stuðlað í veg)