umag_backend / backend /query_rewriter.py
amyxcao's picture
Deploy FastAPI backend
9c8703c
def generate_human_query(user_interests: dict) -> str:
query_parts = []
base_phrase = "I am interested in museum artifacts"
# 1. Handle time periods.
if user_interests.get("time_periods"):
periods_list = " and ".join(user_interests["time_periods"])
query_parts.append(f"from the {periods_list} Dynasty periods")
# 2. Handle art mediums and themes.
art_details = []
if user_interests.get("art_medium"):
mediums_list = " and ".join(user_interests["art_medium"])
art_details.append(mediums_list)
if user_interests.get("themes"):
themes_list = " and ".join(user_interests["themes"])
art_details.append(themes_list)
if art_details:
query_parts.append("focusing on " + " and ".join(art_details))
# 3. Handle keywords.
if user_interests.get("keywords"):
keywords_str = ", ".join(user_interests["keywords"])
# Add connecting phrase based on previous parts.
if query_parts:
query_parts.append(f"and with interests in {keywords_str}")
else:
query_parts.append(f"with interests in {keywords_str}")
# Combine all parts.
if query_parts:
final_query = f"{base_phrase} " + ", ".join(query_parts) + "."
else:
final_query = "I am looking for general museum artifacts."
# Capitalize the first letter.
return final_query[0].upper() + final_query[1:] if final_query else ""