Skip to content
reaatechREAATECH

@reaatech/llm-judge-cache

npm v0.1.0

Provides a `CacheManager` class to store and retrieve LLM judgment results using deterministic SHA-256 keys. It supports in-memory, file-system, and Redis backends, with the Redis implementation requiring an external `ioredis`-compatible client.

@reaatech/llm-judge-cache

npm version License: MIT CI

Status: Pre-1.0 — APIs may change in minor versions. Pin to a specific version in production.

Multi-backend caching system for judgment results with SHA-256 content-addressed keys, TTL-based expiration, and atomic file writes. Supports in-memory, file-system, and Redis backends.

Installation

terminal
npm install @reaatech/llm-judge-cache
# or
pnpm add @reaatech/llm-judge-cache

Feature Overview

  • Three CacheBackend implementations (InMemoryCache with LRU eviction, FileCache with atomic writes via tmp+rename, RedisCache with configurable TTL)
  • CacheManager facade with get/set/delete/clear
  • SHA-256 content-addressed cache keys from normalized context
  • Configurable TTL with automatic expiration
  • Pluggable backend architecture via CacheBackend interface

Quick Start

typescript
import { CacheManager, InMemoryCache } from '@reaatech/llm-judge-cache';
 
const cache = new CacheManager(new InMemoryCache(10000), {
  enabled: true,
  backend: 'memory',
  ttl: 86400000,
});
 
const key = cache.buildCacheKey({
  provider: 'openai',
  model: 'gpt-4o-mini',
  templateName: 'faithfulness',
  templateVersion: '1.0.0',
  context: { query: '...', response: '...', context: '...' },
});
 
await cache.set(key, judgment);
const cached = await cache.get(key);
console.log(cached?.score);

API Reference

CacheManager

ExportDescription
constructor(backend?, config?)Create with optional backend and config
get(key)Retrieve a cached judgment (null if expired or missing)
set(key, judgment)Store a judgment with TTL
delete(key)Remove a specific entry
clear()Remove all entries
buildCacheKey(params)Build deterministic SHA-256 key from provider, model, template, version, and context

InMemoryCache

ExportDescription
constructor(maxSize?)Max entries (default 10000), LRU eviction
getRetrieve CacheItem or null
setStore CacheItem
deleteRemove entry
touchUpdate access count and timestamp
clearRemove all entries

FileCache

ExportDescription
constructor(dir?)Directory path (default .cache/llm-judge)
getRetrieve CacheItem or null
setStore CacheItem (atomic write via temp file + rename)
deleteRemove entry
touchUpdate access count and timestamp
clearRemove all entries

RedisCache

ExportDescription
constructor(redis, ttlSeconds?, prefix?)Requires a RedisLike interface (e.g. ioredis)
getRetrieve CacheItem or null
setStore CacheItem with configurable TTL
deleteRemove entry
touchUpdate access count and timestamp
clearRemove all entries

CacheBackend Interface

ExportDescription
get()Retrieve a CacheItem by key
set()Store a CacheItem by key
delete()Remove an entry by key
touch()Update access metadata by key
clear()Remove all entries

License

MIT