Skip to main content

Caching Promptau Gwyrddwr-Arallt

Mae Superdav AI Agent v1.12.0 yn cyflwyno caching promptau arallt-arallt (provider-aware prompt caching), sy mae'n optimiast costau API a latens gan gael y promptau wedi'u cadw yn y cyflym drwy ei cadw mewn cache ar gyfer pwylliant LLM'r wahodil. Mae pob pwylliant gyda'i ddethau a chwaraeir cadw yn rhywfaint.

Oglwyddictod

Mae caching promptau yn gallu i chi:

  • Cadw promptau mawr a cael eu defnyddio'n aml mewn cache
  • Redu costau API gan ddefnyddio prosesau ddifrifol
  • Gyfeillio latens ar gyfer y caniatâdau wedi'u cadw
  • Rheoli byw y cache yn ddefnyddiol yn llwyr

Mae pwylliant ddifrifol yn cyflwyno caching yn rhywfaint:

  • Google Gemini: API cachedContents
  • Azure OpenAI: Caching promptau gyda TTL (Time To Live)
  • OpenRouter: Caching arallt-arallt-pwylliant
  • Vertex Anthropic: Caching promptau gyda rheoli cache

Google Gemini: API cachedContents

Mae Google Gemini yn rhoi rheoli cache yn ddefnyddiol drwy'r API cachedContents.

Rheoli

$config = [
'provider' => 'google-gemini',
'model' => 'gemini-2.0-flash',
'caching' => [
'enabled' => true,
'ttl' => 3600, // 1 awr mewn oerau
'max_tokens' => 1000000, // Mae'n ychwanegau mwyaf i cadw
],
];

Creu Prompt Cadw

use Superdav\AI\Providers\GoogleGemini;

$gemini = new GoogleGemini( $config );

$cached_content = $gemini->create_cached_content(
[
'system_prompt' => 'Ti yw asiant gweithredol...',
'context' => 'Ddogfen context mawr...',
'ttl' => 3600,
]
);

// Mae'n cyflwyno: ['cache_id' => 'abc123', 'expires_at' => timestamp]

Cyfalu Prompt wedi cael Cache

$response = $gemini->generate(
[
'cache_id' => 'abc123',
'prompt' => 'cwestiwn ybysgol yma',
]
);

Cyflffordd yr Cache

// Llofrif y cynnwys wedi'u cael cache
$caches = $gemini->list_cached_contents();

// Derbyn cyfathiadau y cache
$cache = $gemini->get_cached_content( 'abc123' );

// Mae'r TTL (cymeriad am y cache) yn cael ei gyflwyno
$gemini->update_cached_content(
'abc123',
['ttl' => 7200] // Gyflwyno i 2 awr
);

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

Prif Gweithredoedd ar Gemini

  • Rheoli TTL pwysig: Balans gwirtschaftiadau cost vs. rhyddoldeb yr cache
  • Cache system prompts: Redig ystod am ystod (system prompt) felly yn cael ei ddefnyddio ar gyfer cyflwyno
  • Monitor defnydd y cache: Monitro beth yw'r cacheau a ddefnyddir yn fwy
  • Lleidydd y cacheau wedi'u cael eu cyflwyno: Talybo'r cacheau sydd wedi'u cael eu cyflwyno amser o bryd

Azure OpenAI: Cyfathiadau Prompt Cache

Mae Azure OpenAI yn chymorthu â cache prompt gyda rheoli TTL (cymeriad am y cache) yn awtomatig.

Cysylltu

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

Mae Cache yn cael ei chynllunio

use Superdav\AI\Providers\AzureOpenAI;

$azure = new AzureOpenAI( $config );

$response = $azure->generate(
[
'system_prompt' => 'Dw i'r asiant helpu...',
'context' => 'Ddogfennol ddogfennol document',
'prompt' => 'Cwestiad y surfer',
'cache_control' => 'max_age=3600',
]
);

// Mae'r ymatech yn cynnwys defnyddio cache:
// [
// 'content' => '...',
// 'cache_creation_input_tokens' => 1000,
// 'cache_read_input_tokens' => 500,
// ]

Cyflwyniadau Cache (Cache Headers)

Mae Azure OpenAI yn defnyddio hedfanau HTTP i rheoli cynnwys cache:

Cache-Control: max_age=3600

Gwerthau sydd wedi'u chynllunio:

  • max_age=<seconds>: Cache am ddefnyddio cyfnod penodol
  • no_cache: Peidiwch â cache'r gyfle hwnnw
  • no_store: Peidiwch â cache a peidiwch â ddefnyddio eto

Monitro Defnyddio Cache (Monitoring Cache Usage)

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

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

echo "Creu cache: $cache_tokens token\n";
echo "Cyflwyniadau cache: $cache_hits token\n";

Prif Gwybodaeth ar gyfer Azure OpenAI (Best Practices for Azure OpenAI)

  • Defnyddiwch promptau yn unigol: Mae promptau unigol yn dod yn dda gyda cache
  • Rheoli TTL ymosodol: Balans cost vs. newyddolwch
  • Monitro metrefau cache: Monitro creu cache vs. cyflwyniadau
  • Barchu gyfleidiau tebyg: Barchu gyfleidiau i maximu cyflwyniadau cache

OpenRouter: Cache Penodol y Cyflwyniadau (OpenRouter: Provider-Specific Caching)

Mae OpenRouter yn chymryd cache drwy'r cyflwyniadau sydd wedi'u cynnwys (OpenAI, Anthropic, etc.).

Cyfluniad (Configuration)

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

Cysylltu â Caching OpenRouter

use Superdav\AI\Providers\OpenRouter;

$router = new OpenRouter( $config );

$response = $router->generate(
[
'system_prompt' => 'Dw i'n gynllunwrth', // Dw i'n gynllunwrth (You are a helpful assistant...)
'context' => 'Ddogfen gyda chyfathrebu mawr...', // Ddogfen gyda chyfathrebu mawr... (Large context document...)
'prompt' => 'Cwestiwn yboryd yboryd', // Cwestiwn yboryd yboryd (User question here)
'cache_control' => 'max_age=3600',
]
);

Opsiynau Specifigol i'r Provider

Mae providerau yn cael eu mecanwaith caching yn rhywfaint:

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

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

Prif Gweithredoedd ar gyfer OpenRouter

  • Gweld eich provider o'r caching: Mae gan bob provider mecanwaith yn rhywfaint.
  • Profiwch y cyfarwyddiadau caching: Cynllunwch bod y caching yn gweithio gyda'r provider a dychwelyd.
  • Monitro costau: Drwy'r cyfathrebu o'r caching.
  • Defnyddiw modelau unigolion: Mae newid modelau yn gwblhau'r cyflwyniad (cache hits).

Vertex Anthropic: Caching Prompt gyda Cache Control

Mae Vertex Anthropic (Google Cloud) yn cefnogi cache o'r prompt gyda rheoli cache arallgolyguol.

Cynnig

$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,
],
],
];

Defnyddio Cache Vertex Anthropic

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,
],
]
);

// Mae'r y cyfeiriad yn cynnwys metrion cache:
// [
// 'content' => '...',
// 'usage' => [
// 'input_tokens' => 1000,
// 'cache_creation_input_tokens' => 500,
// 'cache_read_input_tokens' => 300,
// ],
// ]

Rheoliadau Cache Control

  • ephemeral: Cache ar gyfer y cyfnod yr ymddangos (defnyddiol yn ddefnyddiol)
  • persistent: Cache ar gyfer amserau aml o ymddangosau (os mae hyn yn cael ei cefnogi)

Monitro Defnyddio 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 wedi cael ei chynllunio: $cache_created token\n";
echo "Cache wedi cael ei ddefnyddio: $cache_read token\n";

Prifau Gweithredol ar Vertex Anthropic

  • Defnyddiw cache efemeryd (ephemeral caching): Da iawn i cache o sesiwn unig.
  • Setwch max_tokens yn dda: Balanswch grädd y cache a'r cost.
  • Monitawch y metrefau cache: Draffwch yr effeithioldeb y cache.
  • Gwystau gyda'ch gweithredol: Cynllunwch bod y cache yn dod â phryd i eich casgliad.

Strategi Cache ar Gyflymion Mae'n Cyflwyno (Cross-Provider Caching Strategy)

Cynnig Unifyddol (Unified Configuration)

$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,
],
],
],
],
];

Gyflwyno Gweithredol (Provider Detection)

$provider = $config['provider'];

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

// Defnyddiwch cynnig cache o'r gyflym yn benodol i'r gyflym

Strategi Gwrthyn (Fallback Strategy)

try {
// Prata'r casgliad gyda' cyfathrebu prynhawn
$response = $primary_provider->generate( $request );
} catch ( CacheException $e ) {
// Gofal i'r gyfleidr nid yn cael ei casgliadu
$response = $primary_provider->generate(
array_merge( $request, ['cache_control' => 'no_cache'] )
);
}

Optimau Costau

Cyfrannu Gofal

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

// Prif y cyflogau (mae'n newid gan y cyfathrebu):
$cache_creation_cost = $cache_created_tokens * 0.00001; // 10x gormodol
$cache_read_cost = $cache_read_tokens * 0.000001; // 100x gormodol
$regular_cost = $regular_tokens * 0.00001;

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

echo "Gofal arosol: \$$savings\n";

Cysylltiadau Optimau

  • Casgliad promptau mawr: Mae'r gormodol mwyaf yn cael ei gwachnos.
  • Gwneud cyfathrebu allan: Casgliadu ddogfenau arolwg sydd yn cael eu defnyddio'n aml.
  • Cyflenwi gyfleiwiau: Cyfathreg yr adranau o ddefnyddio i maximu casgliadau.
  • Monitor effeithiol y casgliad: Monitor y gormodol wir.
  • Regulwch TTL: Casgliadu cost vs. newid.

Gofalion

Nid yw'r casgliad yn cael ei ddefnyddio

  • Proffwch bod casgliad wedi'i chynllunio yn y cyfluniad (configuration).
  • Gwylio bod y promptau yn identigol (mae'r casgliad yn rhoi angen cyfathrebu llawn).
  • Proffwch nad yw'r casgliad wedi cael ei ddefnyddio.
  • Gwylio am ystodau casgliad a chyflenwiol gan y cyfathrebu.

Mae casgliad yn failu i gael

Gwylio'r cyflenau (Cache size) yn dros hanesau ychwanegwyr (provider limits)

  • Cynnal y gwylio'r hanesau yn dros hanesau ychwanegwyr
  • Gyda'r syniad cyddeall (cache control syntax) yn siarad
  • Sicrhewch bod ychwanegwr yn chymryd y gwylio ar gyfer eich model

Costau anghyfrifol (Unexpected costs)

  • Monitorea'r creu hanesau (cache creation) yn gyflwyniadau hanesau (cache read tokens)

  • Cynnal y gwylio bod y hanesau yn cael eu defnyddio wir

  • Gyda'r hanesau yn cael eu cael eu gael yn dros amrywiaethau prompt (prompt variations)

  • Meddyliw am ei adeiladu TTL neu strategais hanesau (cache strategy)

Cyflenau ychwanegwyr (Provider Comparison)

FeatureGeminiAzure OpenAIOpenRouterVertex Anthropic
Cache APIcachedContentsHTTP headersProvider-specificCache control
TTL controlExplicitVia headersProvider-dependentEphemeral/persistent
Max cache size1M tokensProvider-dependentProvider-dependent1M tokens
Cost reduction90%90%Provider-dependent90%
MonitoringDetailedVia metricsProvider-dependentVia usage

Cynlluniau nesaf (Next Steps)

  1. Deallwch eich ychwanegwr: Deallwch ar adeiladu eich angeniadau

  2. Cyflenwch y gwylio: Rheoli'r hanesau yn gyflwyniadau ychwanegwyr

  3. Gwarchodwch y gwylio: Cynnal y bydd yn gweithio gyda'ch promptau

  4. Monitorea'r defnydd: Drwyllwch y cyffredinhanau hanesau a chynlluniau costau

  5. Optimai: Adnewidiwch yr TTL a strategais hanesau ar adeiladu'r canlyniadau