Spaces:
Running
on
Zero
Running
on
Zero
Take into account redirects for cache
Browse files- app.py +8 -0
- cache_system.py +9 -2
app.py
CHANGED
@@ -63,6 +63,7 @@ def generate_text(
|
|
63 |
if title is not None and text is not None and temp is not None:
|
64 |
temp = finish_generation(temp)
|
65 |
yield title, temp, text
|
|
|
66 |
else:
|
67 |
try:
|
68 |
title, text, url = download_text_and_title(url)
|
@@ -82,6 +83,13 @@ def generate_text(
|
|
82 |
"Error",
|
83 |
)
|
84 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
progress(0.5, desc="🤖 Leyendo noticia")
|
86 |
|
87 |
try:
|
|
|
63 |
if title is not None and text is not None and temp is not None:
|
64 |
temp = finish_generation(temp)
|
65 |
yield title, temp, text
|
66 |
+
return title, temp, text
|
67 |
else:
|
68 |
try:
|
69 |
title, text, url = download_text_and_title(url)
|
|
|
83 |
"Error",
|
84 |
)
|
85 |
|
86 |
+
# Test if the redirected and clean url is in the cache
|
87 |
+
_, _, temp = cache_handler.get_from_cache(url, mode, second_try=True)
|
88 |
+
if temp is not None:
|
89 |
+
temp = finish_generation(temp)
|
90 |
+
yield title, temp, text
|
91 |
+
return title, temp, text
|
92 |
+
|
93 |
progress(0.5, desc="🤖 Leyendo noticia")
|
94 |
|
95 |
try:
|
cache_system.py
CHANGED
@@ -33,18 +33,25 @@ class CacheHandler:
|
|
33 |
if len(self.cache) > self.max_cache_size:
|
34 |
self.cache.popitem(last=False) # pop the oldest item
|
35 |
|
36 |
-
def get_from_cache(
|
|
|
|
|
37 |
if url in self.cache and self.cache[url][f"summary_{summary_type}"] is not None:
|
38 |
# Move the accessed item to the end to mark it as recently used
|
39 |
self.cache.move_to_end(url)
|
40 |
self.hits += 1
|
|
|
|
|
|
|
|
|
41 |
return (
|
42 |
self.cache[url]["title"],
|
43 |
self.cache[url]["text"],
|
44 |
self.cache[url][f"summary_{summary_type}"],
|
45 |
)
|
46 |
else:
|
47 |
-
|
|
|
48 |
return None, None, None
|
49 |
|
50 |
def get_cache_stats(self):
|
|
|
33 |
if len(self.cache) > self.max_cache_size:
|
34 |
self.cache.popitem(last=False) # pop the oldest item
|
35 |
|
36 |
+
def get_from_cache(
|
37 |
+
self, url: str, summary_type: int, second_try: bool = False
|
38 |
+
) -> Optional[tuple]:
|
39 |
if url in self.cache and self.cache[url][f"summary_{summary_type}"] is not None:
|
40 |
# Move the accessed item to the end to mark it as recently used
|
41 |
self.cache.move_to_end(url)
|
42 |
self.hits += 1
|
43 |
+
if second_try:
|
44 |
+
# In the first try we didn't get the cache hit, probably because it was a shortened URL
|
45 |
+
# So me decrease the number of misses, because we got the cache hit in the end
|
46 |
+
self.misses -= 1
|
47 |
return (
|
48 |
self.cache[url]["title"],
|
49 |
self.cache[url]["text"],
|
50 |
self.cache[url][f"summary_{summary_type}"],
|
51 |
)
|
52 |
else:
|
53 |
+
if not second_try:
|
54 |
+
self.misses += 1
|
55 |
return None, None, None
|
56 |
|
57 |
def get_cache_stats(self):
|