Utils
Cache management utilities for LLMClient objects.
This module provides functions for efficient type-annotated retrieval and caching of LLMClient querysets. It includes utilities to:
Retrieve and cache LLMClients owned by a user profile
Retrieve and cache LLMClients shared with a user profile
Retrieve and cache LLMClients available to a user profile (owned or shared)
Invalidate caches for owned, shared, and available LLMClients
Invalidate all LLMClient-related caches for a user profile
Functions:
get_cached_llm_clients_owned_by_user_profile(user_profile)
invalidate_cached_llm_clients_owned_by_user_profile(user_profile)
get_cached_llm_clients_shared_with_user_profile(user_profile)
invalidate_cached_llm_clients_shared_with_user_profile(user_profile)
get_cached_llm_clients_available_to_user_profile(user_profile)
invalidate_cached_llm_clients_available_to_user_profile(user_profile)
invalidate_all_cached_llm_clients_for_user_profile(user_profile)
Dependencies:
Django ORM
smarter.lib.cache.cache_results
smarter.apps.account.models.user_profile.UserProfile
smarter.apps.llm_client.models.LLMClient
smarter.apps.llm_client.serializers.LLMClientSerializer
- smarter.apps.llm_client.caching.get_cached_llm_clients_available_to_user_profile(user_profile)[source]
Retrieve the LLMClients available to the given UserProfile, using caching to optimize performance.
This function returns a queryset of LLMClient objects that are available to the specified user profile, which may include both owned and shared LLMClients. The results are cached to reduce database queries and improve performance. If the cache is invalidated, the queryset is fetched from the database again and re-cached.
- Parameters:
user_profile (
UserProfile) – The user profile whose available LLMClients should be retrieved.- Returns:
A Django queryset containing the LLMClient objects available to the user.
- Return type:
>>> user_profile = UserProfile.objects.get(pk=1) >>> available_llm_clients = get_cached_llm_clients_available_to_user_profile(user_profile) >>> for bot in available_llm_clients: ... print(bot.name)
See also
invalidate_cached_llm_clients_available_to_user_profile()- Invalidate the cache for available LLMClients of a user profile.
- smarter.apps.llm_client.caching.get_cached_llm_clients_owned_by_user_profile(user_profile)[source]
Retrieve the LLMClients owned by the given UserProfile, using caching to optimize performance.
This function returns a queryset of LLMClient objects that are owned by the specified user profile. The results are cached to reduce database queries and improve performance. If the cache is invalidated, the queryset is fetched from the database again and re-cached.
- Parameters:
user_profile (
UserProfile) – The user profile whose owned LLMClients should be retrieved.- Returns:
A Django queryset containing the LLMClient objects owned by the user.
- Return type:
>>> user_profile = UserProfile.objects.get(pk=1) >>> llm_clients = get_cached_llm_clients_owned_by_user_profile(user_profile) >>> for bot in llm_clients: ... print(bot.name)
See also
invalidate_cached_llm_clients_owned_by_user_profile()- Invalidate the cache for owned LLMClients of a user profile.
Retrieve the LLMClients shared with the given UserProfile, using caching to optimize performance.
This function returns a queryset of LLMClient objects that are shared with the specified user profile. The results are cached to reduce database queries and improve performance. If the cache is invalidated, the queryset is fetched from the database again and re-cached.
- Parameters:
user_profile (
UserProfile) – The user profile whose shared LLMClients should be retrieved.- Returns:
A Django queryset containing the LLMClient objects shared with the user.
- Return type:
>>> user_profile = UserProfile.objects.get(pk=1) >>> shared_llm_clients = get_cached_llm_clients_shared_with_user_profile(user_profile) >>> for bot in shared_llm_clients: ... print(bot.name)
See also
invalidate_cached_llm_clients_shared_with_user_profile()- Invalidate the cache for shared LLMClients of a user profile.
- smarter.apps.llm_client.caching.invalidate_all_cached_llm_clients_for_user_profile(user_profile)[source]
Invalidate all cached LLMClient querysets related to the given UserProfile.
This function invalidates the caches for all LLMClient querysets that are related to the specified user profile, including owned, shared, and available LLMClients. This is useful when a change occurs that may affect any of these querysets, ensuring that subsequent calls will fetch fresh data from the database.
- Parameters:
user_profile (
UserProfile) – The user profile for which to invalidate cached LLMClient querysets.- Returns:
None
- Return type:
>>> user_profile = UserProfile.objects.get(pk=1) >>> invalidate_all_cached_llm_clients_for_user_profile(user_profile)
See also
invalidate_cached_llm_clients_owned_by_user_profile()- Invalidate the cache for owned LLMClients of a user profile.invalidate_cached_llm_clients_shared_with_user_profile()- Invalidate the cache for shared LLMClients of a user profile.invalidate_cached_llm_clients_available_to_user_profile()- Invalidate the cache for available LLMClients of a user profile.
- smarter.apps.llm_client.caching.invalidate_cached_llm_clients_available_to_user_profile(user_profile)[source]
- Return type:
- smarter.apps.llm_client.caching.invalidate_cached_llm_clients_owned_by_user_profile(user_profile)[source]
- Return type:
- Return type: