> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/guardrails/llms.txt.
> For full documentation content, see https://docs.nvidia.com/nemo/guardrails/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/guardrails/_mcp/server.

# nemoguardrails.embeddings.cache

## Module Contents

### Classes

| Name                                                                            | Description                        |
| ------------------------------------------------------------------------------- | ---------------------------------- |
| [`CacheStore`](#nemoguardrails-embeddings-cache-CacheStore)                     | Abstract class for cache stores.   |
| [`EmbeddingsCache`](#nemoguardrails-embeddings-cache-EmbeddingsCache)           | -                                  |
| [`FilesystemCacheStore`](#nemoguardrails-embeddings-cache-FilesystemCacheStore) | Filesystem cache store.            |
| [`HashKeyGenerator`](#nemoguardrails-embeddings-cache-HashKeyGenerator)         | Hash-based key generator.          |
| [`InMemoryCacheStore`](#nemoguardrails-embeddings-cache-InMemoryCacheStore)     | In-memory cache store.             |
| [`KeyGenerator`](#nemoguardrails-embeddings-cache-KeyGenerator)                 | Abstract class for key generators. |
| [`MD5KeyGenerator`](#nemoguardrails-embeddings-cache-MD5KeyGenerator)           | MD5-based key generator.           |
| [`RedisCacheStore`](#nemoguardrails-embeddings-cache-RedisCacheStore)           | Redis cache store.                 |
| [`SHA256KeyGenerator`](#nemoguardrails-embeddings-cache-SHA256KeyGenerator)     | SHA256-based key generator.        |

### Functions

| Name                                                                    | Description                        |
| ----------------------------------------------------------------------- | ---------------------------------- |
| [`cache_embeddings`](#nemoguardrails-embeddings-cache-cache_embeddings) | Decorator to cache the embeddings. |

### Data

[`log`](#nemoguardrails-embeddings-cache-log)

### API

```python
class nemoguardrails.embeddings.cache.CacheStore()
```

Abstract

Abstract class for cache stores.

```python
nemoguardrails.embeddings.cache.CacheStore.clear()
```

abstract

Clear the cache.

```python
nemoguardrails.embeddings.cache.CacheStore.from_name(
    name
)
```

classmethod

```python
nemoguardrails.embeddings.cache.CacheStore.get(
    key
)
```

abstract

Get a value from the cache.

```python
nemoguardrails.embeddings.cache.CacheStore.set(
    key,
    value
)
```

abstract

Set a value in the cache.

```python
class nemoguardrails.embeddings.cache.EmbeddingsCache(
    key_generator: nemoguardrails.embeddings.cache.KeyGenerator,
    cache_store: nemoguardrails.embeddings.cache.CacheStore,
    store_config: typing.Optional[dict] = None
)
```

```python
nemoguardrails.embeddings.cache.EmbeddingsCache._(
    texts: list,
    values: typing.List[typing.List[float]]
)
```

```python
nemoguardrails.embeddings.cache.EmbeddingsCache.clear()
```

```python
nemoguardrails.embeddings.cache.EmbeddingsCache.from_config(
    config: nemoguardrails.rails.llm.config.EmbeddingsCacheConfig
)
```

classmethod

```python
nemoguardrails.embeddings.cache.EmbeddingsCache.from_dict(
    d: typing.Dict[str, str]
)
```

classmethod

```python
nemoguardrails.embeddings.cache.EmbeddingsCache.get(
    texts
)
```

```python
nemoguardrails.embeddings.cache.EmbeddingsCache.get_config()
```

```python
nemoguardrails.embeddings.cache.EmbeddingsCache.set(
    texts
)
```

```python
class nemoguardrails.embeddings.cache.FilesystemCacheStore(
    cache_dir: typing.Optional[str] = None
)
```

**Bases:** [CacheStore](#nemoguardrails-embeddings-cache-CacheStore)

Filesystem cache store.

This cache store persists the cache between runs by storing it in the filesystem as JSON files.

**Parameters:**

The directory where the cache files will be stored. Defaults to "./cache".

```python
nemoguardrails.embeddings.cache.FilesystemCacheStore._get_file_path(
    key
)
```

```python
nemoguardrails.embeddings.cache.FilesystemCacheStore.clear()
```

```python
nemoguardrails.embeddings.cache.FilesystemCacheStore.get(
    key
)
```

```python
nemoguardrails.embeddings.cache.FilesystemCacheStore.set(
    key,
    value
)
```

```python
class nemoguardrails.embeddings.cache.HashKeyGenerator()
```

**Bases:** [KeyGenerator](#nemoguardrails-embeddings-cache-KeyGenerator)

Hash-based key generator.

```python
nemoguardrails.embeddings.cache.HashKeyGenerator.generate_key(
    text: str
) -> str
```

```python
class nemoguardrails.embeddings.cache.InMemoryCacheStore()
```

**Bases:** [CacheStore](#nemoguardrails-embeddings-cache-CacheStore)

In-memory cache store.

This cache store keeps the cache in memory. It does not persist the cache between runs.

```python
nemoguardrails.embeddings.cache.InMemoryCacheStore.clear()
```

```python
nemoguardrails.embeddings.cache.InMemoryCacheStore.get(
    key
)
```

```python
nemoguardrails.embeddings.cache.InMemoryCacheStore.set(
    key,
    value
)
```

```python
class nemoguardrails.embeddings.cache.KeyGenerator()
```

Abstract

Abstract class for key generators.

```python
nemoguardrails.embeddings.cache.KeyGenerator.from_name(
    name
)
```

classmethod

```python
nemoguardrails.embeddings.cache.KeyGenerator.generate_key(
    text: str
) -> str
```

abstract

```python
class nemoguardrails.embeddings.cache.MD5KeyGenerator()
```

**Bases:** [KeyGenerator](#nemoguardrails-embeddings-cache-KeyGenerator)

MD5-based key generator.

```python
nemoguardrails.embeddings.cache.MD5KeyGenerator.generate_key(
    text: str
) -> str
```

```python
class nemoguardrails.embeddings.cache.RedisCacheStore(
    host: str = 'localhost',
    port: int = 6379,
    db: int = 0
)
```

**Bases:** [CacheStore](#nemoguardrails-embeddings-cache-CacheStore)

Redis cache store.

This cache store keeps the cache in a Redis database. It can be used to share the cache between multiple machines.

**Parameters:**

The Redis client to use. If not provided, a new client will be created.

```python
nemoguardrails.embeddings.cache.RedisCacheStore.clear()
```

```python
nemoguardrails.embeddings.cache.RedisCacheStore.get(
    key
)
```

```python
nemoguardrails.embeddings.cache.RedisCacheStore.set(
    key,
    value
)
```

```python
class nemoguardrails.embeddings.cache.SHA256KeyGenerator()
```

**Bases:** [KeyGenerator](#nemoguardrails-embeddings-cache-KeyGenerator)

SHA256-based key generator.

```python
nemoguardrails.embeddings.cache.SHA256KeyGenerator.generate_key(
    text: str
) -> str
```

```python
nemoguardrails.embeddings.cache.cache_embeddings(
    func
)
```

Decorator to cache the embeddings.

This decorator caches the embeddings in the cache store.
It uses the `cache_config` attribute of the class to configure the cache.

If the class does not have a `cache_config` attribute, it will use the `EmbeddingsCacheConfig` by default.
This decorator can be applied to the `_get_embeddings` method of a subclass of `EmbeddingsIndex` that accepts a list of strings and returns a list of lists of floats.

**Parameters:**

The method to decorate. The first argument should be `self`.

**Returns:**

Callable\[\[Any, List\[str]], Awaitable\[List\[List\[float]]]]: The decorated method.

```python
nemoguardrails.embeddings.cache.log = logging.getLogger(__name__)
```