1. Go to this page and download the library: Download ahg/inference-receipts library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ahg / inference-receipts example snippets
use AhgInferenceReceipts\KeyPair;
use AhgInferenceReceipts\Signer;
use AhgInferenceReceipts\ReceiptChain;
use AhgInferenceReceipts\Storage\ArrayChainStore;
$keyPair = KeyPair::generate();
$keyPair->saveTo('/etc/ai-keys/signing.sk', '/etc/ai-keys/signing.pk');
$store = new ArrayChainStore();
$chain = ReceiptChain::withSingleKey($store, new Signer($keyPair));
$receipt = $chain->append([
'service' => 'llm',
'model_id' => 'mistral:7b-instruct-v0.2',
'model_version' => 'mistral-7b@2024-01',
'input_fingerprint' => hash('sha256', $userPrompt),
'output_fingerprint' => hash('sha256', $modelResponse),
'request_id' => $requestId,
'user_id' => $userId,
'tenant_id' => $tenantId,
]);
// later, audit time
$result = $chain->verify();
echo $result; // "PASS (1 receipts verified)" or "FAIL at seq N: <reason>"
interface ChainStore {
public function append(Receipt $receipt): void;
public function head(): ?Receipt;
public function count(): int;
public function range(int $fromSeq = 0, ?int $toSeq = null): iterable;
}
$resolver = function (string $kid): ?string {
return match ($kid) {
'2025-key-id' => file_get_contents('/etc/ai-keys/2025-signing.pk'),
'2026-key-id' => file_get_contents('/etc/ai-keys/2026-signing.pk'),
default => null,
};
};
$chain = new ReceiptChain($store, new Signer($currentKeyPair), $resolver);