Apple
Initial commit: Multimodal AI Customer Support Agent
0483de7
Raw
History Blame Contribute Delete
1.42 kB
import redis
import hashlib
import json
import os
from dotenv import load_dotenv
load_dotenv()
REDIS_HOST = os.getenv("REDIS_HOST", "localhost")
REDIS_PORT = int(os.getenv("REDIS_PORT", 6379))
CACHE_EXPIRY = 3600 # 1 hour
def get_redis_client():
try:
client = redis.Redis(
host=REDIS_HOST,
port=REDIS_PORT,
decode_responses=True
)
client.ping()
return client
except:
return None
def generate_cache_key(complaint_text: str, image_path: str) -> str:
content = f"{complaint_text}_{image_path}"
return hashlib.md5(content.encode()).hexdigest()
def get_cached_response(complaint_text: str, image_path: str) -> str:
client = get_redis_client()
if not client:
return None
cache_key = generate_cache_key(complaint_text, image_path)
cached = client.get(cache_key)
if cached:
print("Cache HIT - returning cached response")
return json.loads(cached)
print("Cache MISS - calling OpenAI")
return None
def set_cached_response(complaint_text: str, image_path: str, response: str):
client = get_redis_client()
if not client:
return
cache_key = generate_cache_key(complaint_text, image_path)
client.setex(
cache_key,
CACHE_EXPIRY,
json.dumps(response)
)
print(f"Response cached for {CACHE_EXPIRY} seconds")