Skip to main content

API Reference

Complete class and method reference for every public symbol in chengeta-ai v0.3.0.


Core

CacheManager

Central orchestrator. Wires backend, key builder, TTL policy, compressor, metrics, and optional vector backend.

from chengeta_ai import CacheManager

Constructor:

CacheManager(
backend: CacheBackend,
key_builder: CacheKeyBuilder,
ttl_policy: TTLPolicy | None = None,
eviction_policy: EvictionPolicy | None = None,
vector_backend: VectorBackend | None = None,
invalidation_engine: InvalidationEngine | None = None,
semantic_threshold: float = 0.95,
compressor: Compressor | None = None,
)
MethodSignatureReturnsDescription
get(key, semantic=False, vector=None)Any | NoneExact or semantic lookup
set(key, value, ttl=None, vector=None, tags=None, cache_type="response")NoneStore value
delete(key)NoneRemove key
exists(key)boolCheck key presence
invalidate(tag)intBulk remove by tag
clear()NoneFlush all
close()NoneRelease resources
for_tenant(tenant_id: str)CacheManagerScoped manager with per-tenant key namespace
from_settings(settings: ChengetaSettings)CacheManagerFactory constructor

Properties: key_builder, ttl_policy, metrics


CacheMetrics

Thread-safe counters. Accessed via manager.metrics.

from chengeta_ai import CacheMetrics
FieldTypeDescription
hitsintCache hits
missesintCache misses
evictionsintLRU evictions
setsintCache writes
provider_cache_hitsintServer-side prompt cache hits
estimated_tokens_savedintTokens saved via provider caching
estimated_cost_saved_usdfloatEstimated USD saved
Property / MethodReturnsDescription
hit_ratefloathits / (hits + misses)
miss_ratefloat1.0 - hit_rate
snapshot()dict[str, Any]JSON-serializable dict of all fields
reset()NoneZero all counters

CacheKeyBuilder

from chengeta_ai import CacheKeyBuilder

__init__(namespace="chengeta", algo="sha256")

MethodSignatureReturns
build(cache_type, content, extra=None)str

Key format: {namespace}:{type_prefix}:{hash[:16]}


Serializer / PickleSerializer / JsonSerializer

from chengeta_ai import Serializer, PickleSerializer, JsonSerializer

Protocol — implement dumps(value) -> bytes and loads(data) -> Any.


Compressor / GzipCompressor / NoopCompressor

from chengeta_ai import Compressor, GzipCompressor, NoopCompressor

Protocol — implement compress(data: bytes) -> bytes and decompress(data: bytes) -> bytes.

GzipCompressor(level: int = 6) — level 0–9.


StampedeShield

from chengeta_ai import StampedeShield

__init__(timeout: float = 30.0)

shield.lock(key: str) — context manager. Acquires per-key lock; releases on exit.


RequestConfig

from chengeta_ai import RequestConfig
FieldTypeDefaultDescription
ttlint | NoneNonePer-request TTL override
semantic_thresholdfloat | NoneNonePer-request threshold override
skip_cacheboolFalseBypass cache entirely
tagslist[str][]Extra invalidation tags
namespace_prefixstr | NoneNoneExtra key prefix

CacheWarmer

from chengeta_ai import CacheWarmer

__init__(cache: ResponseCache)

MethodReturnsDescription
warm_from_queries(queries, generate_fn, model_id, ttl, skip_existing)dict[str, str]Warm from list
warm_from_file(path, generate_fn, model_id, ttl, query_column, skip_existing)dict[str, str]Warm from CSV
awarm_from_queries(...)dict[str, str]Async variant

TTLPolicy

from chengeta_ai import TTLPolicy

__init__(default_ttl=3600, per_type={}) · ttl_for(cache_type) -> int | None · from_settings(settings)


EvictionPolicy

from chengeta_ai import EvictionPolicy
FieldTypeDefault
strategy"lru" | "ttl_only""lru"
max_entriesint | NoneNone
max_bytesint | NoneNone

InvalidationEngine

from chengeta_ai import InvalidationEngine

__init__(tag_store: CacheBackend) · register(key, tags) · invalidate_tag(tag, backend) -> int · invalidate_key(key, backend)


ChengetaSettings

from chengeta_ai import ChengetaSettings
FieldTypeDefault
backend"memory" | "disk" | "redis""memory"
redis_urlstr"redis://localhost:6379/0"
disk_pathstr"/tmp/chengeta"
default_ttlint | None3600
semantic_thresholdfloat0.95
vector_backend"faiss" | "chroma" | "none""none"
embedding_dimint1536
max_memory_entriesint10000
namespacestr"chengeta"
ttl_embeddingint | None86400
ttl_retrievalint | None3600
ttl_contextint | None1800
ttl_responseint | None600

from_env() -> ChengetaSettings


Observability

PrometheusExporter

from chengeta_ai.core.exporters import PrometheusExporter

__init__(metrics, port=9090, namespace="chengeta") · start(sync_interval=5.0) · stop()

OpenTelemetryExporter

from chengeta_ai.core.exporters import OpenTelemetryExporter

__init__(metrics, endpoint="http://localhost:4317", export_interval_ms=10_000) · start()


Backends

Protocols

from chengeta_ai.backends.base import CacheBackend, VectorBackend
from chengeta_ai.backends.async_base import AsyncCacheBackend

CacheBackend: get / set / delete / exists / clear / close (sync)

AsyncCacheBackend: same methods, all async

VectorBackend: add(key, vector, metadata) / search(vector, top_k=1) -> list[tuple[str, float]] / delete / clear / close


Key-Value Backends

ClassImportConstructor
InMemoryBackendfrom chengeta_ai import InMemoryBackend(max_size=10_000, eviction_policy=None, on_evict=None)
AsyncInMemoryBackendfrom chengeta_ai import AsyncInMemoryBackend(max_size=10_000)
TieredBackendfrom chengeta_ai import TieredBackend(l1, l2, l1_ttl=300)
DiskBackendfrom chengeta_ai import DiskBackend(directory, size_limit=2**30)
RedisBackendfrom chengeta_ai.backends.redis_backend import RedisBackend(url="redis://localhost:6379/0", key_prefix="")

Vector Backends

ClassImportConstructor
FAISSBackendfrom chengeta_ai.backends.vector_backend import FAISSBackend(dim, normalize=True)
ChromaBackendfrom chengeta_ai.backends.vector_backend import ChromaBackend(collection_name="chengeta", persist_directory=None)
QdrantBackendfrom chengeta_ai.backends.vector_backend import QdrantBackend(url=":memory:", collection="chengeta", api_key=None, dim=1536)
WeaviateBackendfrom chengeta_ai.backends.vector_backend import WeaviateBackend(url=None, api_key=None, class_name="ChengetaEntry")

Cache Layers

ResponseCache

from chengeta_ai import ResponseCache

__init__(manager, serializer=None, stampede_shield=None)

MethodSignatureReturns
get(messages, model_id="default", params=None)Any | None
set(messages, response, model_id, params, ttl, tags)None
get_or_generate(messages, generate_fn, model_id, params, ttl)Any
invalidate_model(model_id)int

StreamingResponseCache

from chengeta_ai import StreamingResponseCache

__init__(manager, serializer=None, chunk_joiner=None)

MethodReturns
get_or_stream(messages, stream_fn, model_id, params, ttl, tags)Generator
aget_or_stream(messages, stream_fn, model_id, params, ttl, tags)AsyncGenerator

EmbeddingCache

from chengeta_ai import EmbeddingCache

__init__(manager, dim=1536)

get(text, model_id) -> np.ndarray | None · set(text, vector, model_id, ttl) · get_or_compute(text, compute_fn, model_id, ttl) -> np.ndarray


RetrievalCache

from chengeta_ai import RetrievalCache

__init__(manager, serializer=None)

get(query, retriever_id, top_k) -> list | None · set(query, documents, retriever_id, top_k, ttl, tags) · get_or_retrieve(query, retrieve_fn, retriever_id, top_k, ttl) -> list


ContextCache

from chengeta_ai import ContextCache

__init__(manager, serializer=None)

get(session_id, turn_index=None) -> list | None · set(session_id, messages, turn_index, ttl, tags) · invalidate_session(session_id) -> int


SemanticCache

from chengeta_ai import SemanticCache

__init__(exact_backend, vector_backend, embed_fn, threshold=0.95, key_builder=None, serializer=None)

get(query) -> Any | None · set(query, value, ttl) · delete(query) · clear()


AdaptiveSemanticCache

from chengeta_ai import AdaptiveSemanticCache

Extends SemanticCache.

__init__(..., target_hit_rate=0.35, adjustment_interval=100, threshold_min=0.70, threshold_max=0.99, adjustment_step=0.02, max_turn_count=10)

get(query, turn_count=0) -> Any | None · current_threshold: float (property)


PromptCacheLayer

from chengeta_ai import PromptCacheLayer

__init__(metrics=None, min_chars_to_cache=1024)

MethodDescription
anthropic_create(client, **kwargs)Sync Anthropic messages.create + cache_control injection
anthropic_acreate(client, **kwargs)Async variant
openai_create(client, **kwargs)Sync OpenAI chat.completions.create + savings tracking
openai_acreate(client, **kwargs)Async variant

Middleware

LLMMiddleware / AsyncLLMMiddleware

from chengeta_ai import LLMMiddleware, AsyncLLMMiddleware

__init__(response_cache, key_builder, model_id="default") — Use as @middleware decorator or middleware(fn).

EmbeddingMiddleware

from chengeta_ai import EmbeddingMiddleware

__init__(embedding_cache, model_id="default") — Wraps sync/async embed functions.

RetrieverMiddleware

from chengeta_ai import RetrieverMiddleware

__init__(retrieval_cache, retriever_id="default", default_top_k=5) — Wraps sync/async retrievers.


Adapters

AdapterImportConstructorKey Methods
OpenAICacheAdapterchengeta_ai.adapters.openai_adapter(client, manager)chat_create(**kw), achat_create(**kw), invalidate_model(model)
AnthropicCacheAdapterchengeta_ai.adapters.anthropic_adapter(client, manager)messages_create(**kw), amessages_create(**kw), invalidate_model(model)
GoogleADKCacheAdapterchengeta_ai.adapters.google_adk_adapter(agent, manager)run(task, **kw), arun(task, **kw), invalidate_agent()
OpenAIAgentsCacheAdapterchengeta_ai.adapters.openai_agents_adapter(manager)run(agent, input, **kw), arun(agent, input, **kw), invalidate_agent(agent)
LlamaIndexLLMCacheAdapterchengeta_ai.adapters.llamaindex_adapter(llm, manager)complete, acomplete, chat, achat, stream_complete, stream_chat
LlamaIndexQueryCacheAdapterchengeta_ai.adapters.llamaindex_adapter(query_engine, manager)query(q, **kw), aquery(q, **kw)
ClaudeAgentCacheAdapterchengeta_ai.adapters.claude_agent_adapter(manager)query(prompt, options, **kw) (async gen), invalidate_all()
LangChainCacheAdapterchengeta_ai.adapters.langchain_adapter(manager)lookup, update, alookup, aupdate, clear
LangGraphCacheAdapterchengeta_ai.adapters.langgraph_adapter(manager)get_tuple, put, put_writes, list, async variants
AutoGenCacheAdapterchengeta_ai.adapters.autogen_adapter(agent, manager)generate_reply, run, arun
CrewAICacheAdapterchengeta_ai.adapters.crewai_adapter(crew, manager)kickoff, kickoff_async
AgnoCacheAdapterchengeta_ai.adapters.agno_adapter(agent, manager)run, arun
A2ACacheAdapterchengeta_ai.adapters.a2a_adapter(manager, agent_id="default")process, aprocess, wrap