mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-04 01:29:35 +08:00
### What problem does this PR solve? feat: Adds the tenant model ID field to the interface definition ### Type of change - [x] New Feature (non-breaking change which adds functionality)
60 lines
1.4 KiB
TypeScript
60 lines
1.4 KiB
TypeScript
// LLM list cache utility
|
|
|
|
interface LlmCache {
|
|
data: Record<string, any>;
|
|
timestamp: number;
|
|
}
|
|
|
|
const CACHE_KEY = 'ragflow_llm_list_cache';
|
|
const CACHE_DURATION = 5 * 60 * 1000; // 5 minutes
|
|
|
|
// Get cached LLM list
|
|
export function getCachedLlmList(): Record<string, any> | null {
|
|
try {
|
|
const cached = localStorage.getItem(CACHE_KEY);
|
|
if (!cached) return null;
|
|
|
|
const parsed: LlmCache = JSON.parse(cached);
|
|
const now = Date.now();
|
|
|
|
// Check if cache is expired
|
|
if (now - parsed.timestamp > CACHE_DURATION) {
|
|
clearLlmCache();
|
|
return null;
|
|
}
|
|
|
|
return parsed.data;
|
|
} catch (error) {
|
|
console.error('Error getting cached LLM list:', error);
|
|
clearLlmCache();
|
|
return null;
|
|
}
|
|
}
|
|
|
|
// Set LLM list to cache
|
|
export function setCachedLlmList(data: Record<string, any>): void {
|
|
try {
|
|
const cache: LlmCache = {
|
|
data,
|
|
timestamp: Date.now(),
|
|
};
|
|
localStorage.setItem(CACHE_KEY, JSON.stringify(cache));
|
|
} catch (error) {
|
|
console.error('Error setting cached LLM list:', error);
|
|
}
|
|
}
|
|
|
|
// Clear LLM list cache
|
|
export function clearLlmCache(): void {
|
|
try {
|
|
localStorage.removeItem(CACHE_KEY);
|
|
} catch (error) {
|
|
console.error('Error clearing LLM cache:', error);
|
|
}
|
|
}
|
|
|
|
// Check if LLM list is cached and not expired
|
|
export function isLlmListCached(): boolean {
|
|
return getCachedLlmList() !== null;
|
|
}
|