<?php
use Cognesy\Polyglot\Inference\Inference;
// Load a large document
$documentContent = file_get_contents('large_document.txt');
// Set up cached context with the document
$inference = new Inference()->using('anthropic');
$inference->withCachedContext(
messages: [
['role' => 'system', 'content' => 'You will help analyze and summarize documents.'],
['role' => 'user', 'content' => 'Here is the document to analyze:'],
['role' => 'user', 'content' => $documentContent],
]
);
// Ask multiple questions about the document without resending it each time
$questions = [
'Summarize the key points of this document in 3 bullets.',
'What are the main arguments presented?',
'Are there any contradictions or inconsistencies in the text?',
'What conclusions can be drawn from this document?',
];
foreach ($questions as $index => $question) {
$response = $inference->with(messages: $question)->response();
echo "Question " . ($index + 1) . ": $question\n";
echo "Answer: " . $response->content() . "\n";
echo "Tokens from cache: " . $response->usage()->cacheReadTokens . "\n\n";
}
// @doctest id="08e1"