nemoguardrails.embeddings.cache

View as Markdown

Module Contents

Classes

NameDescription
CacheStoreAbstract class for cache stores.
EmbeddingsCache-
FilesystemCacheStoreFilesystem cache store.
HashKeyGeneratorHash-based key generator.
InMemoryCacheStoreIn-memory cache store.
KeyGeneratorAbstract class for key generators.
MD5KeyGeneratorMD5-based key generator.
RedisCacheStoreRedis cache store.
SHA256KeyGeneratorSHA256-based key generator.

Functions

NameDescription
cache_embeddingsDecorator to cache the embeddings.

Data

log

API

class nemoguardrails.embeddings.cache.CacheStore()
Abstract

Abstract class for cache stores.

name
str
nemoguardrails.embeddings.cache.CacheStore.clear()
abstract

Clear the cache.

nemoguardrails.embeddings.cache.CacheStore.from_name(
name
)
classmethod
nemoguardrails.embeddings.cache.CacheStore.get(
key
)
abstract

Get a value from the cache.

nemoguardrails.embeddings.cache.CacheStore.set(
key,
value
)
abstract

Set a value in the cache.

class nemoguardrails.embeddings.cache.EmbeddingsCache(
key_generator: nemoguardrails.embeddings.cache.KeyGenerator,
cache_store: nemoguardrails.embeddings.cache.CacheStore,
store_config: typing.Optional[dict] = None
)
_store_config
= store_config or {}
nemoguardrails.embeddings.cache.EmbeddingsCache._(
texts: list,
values: typing.List[typing.List[float]]
)
nemoguardrails.embeddings.cache.EmbeddingsCache.clear()
nemoguardrails.embeddings.cache.EmbeddingsCache.from_config(
config: nemoguardrails.rails.llm.config.EmbeddingsCacheConfig
)
classmethod
nemoguardrails.embeddings.cache.EmbeddingsCache.from_dict(
d: typing.Dict[str, str]
)
classmethod
nemoguardrails.embeddings.cache.EmbeddingsCache.get(
texts
)
nemoguardrails.embeddings.cache.EmbeddingsCache.get_config()
nemoguardrails.embeddings.cache.EmbeddingsCache.set(
texts
)
class nemoguardrails.embeddings.cache.FilesystemCacheStore(
cache_dir: typing.Optional[str] = None
)

Bases: CacheStore

Filesystem cache store.

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

Parameters:

cache_dir
strDefaults to None

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

_cache_dir
= Path(cache_dir or '.cache/embeddings')
name
= 'filesystem'
nemoguardrails.embeddings.cache.FilesystemCacheStore._get_file_path(
key
)
nemoguardrails.embeddings.cache.FilesystemCacheStore.clear()
nemoguardrails.embeddings.cache.FilesystemCacheStore.get(
key
)
nemoguardrails.embeddings.cache.FilesystemCacheStore.set(
key,
value
)
class nemoguardrails.embeddings.cache.HashKeyGenerator()

Bases: KeyGenerator

Hash-based key generator.

name
= 'hash'
nemoguardrails.embeddings.cache.HashKeyGenerator.generate_key(
text: str
) -> str
class nemoguardrails.embeddings.cache.InMemoryCacheStore()

Bases: CacheStore

In-memory cache store.

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

_cache
= {}
name
= 'in_memory'
nemoguardrails.embeddings.cache.InMemoryCacheStore.clear()
nemoguardrails.embeddings.cache.InMemoryCacheStore.get(
key
)
nemoguardrails.embeddings.cache.InMemoryCacheStore.set(
key,
value
)
class nemoguardrails.embeddings.cache.KeyGenerator()
Abstract

Abstract class for key generators.

name
str
nemoguardrails.embeddings.cache.KeyGenerator.from_name(
name
)
classmethod
nemoguardrails.embeddings.cache.KeyGenerator.generate_key(
text: str
) -> str
abstract
class nemoguardrails.embeddings.cache.MD5KeyGenerator()

Bases: KeyGenerator

MD5-based key generator.

name
= 'md5'
nemoguardrails.embeddings.cache.MD5KeyGenerator.generate_key(
text: str
) -> str
class nemoguardrails.embeddings.cache.RedisCacheStore(
host: str = 'localhost',
port: int = 6379,
db: int = 0
)

Bases: 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:

redis_client
redis.Redis

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

_redis
= redis.Redis(host=host, port=port, db=db)
name
= 'redis'
nemoguardrails.embeddings.cache.RedisCacheStore.clear()
nemoguardrails.embeddings.cache.RedisCacheStore.get(
key
)
nemoguardrails.embeddings.cache.RedisCacheStore.set(
key,
value
)
class nemoguardrails.embeddings.cache.SHA256KeyGenerator()

Bases: KeyGenerator

SHA256-based key generator.

name
= 'sha256'
nemoguardrails.embeddings.cache.SHA256KeyGenerator.generate_key(
text: str
) -> str
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:

func
Callable[[Any, List[str]], Awaitable[List[List[float]]]]

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

Returns:

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

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