This blog post is about my submission to Gen AI Intensive Course Capstone 2025Q1

💡 Idea

I wanted to explore the idea of getting personalized photo spot recommendations based on your interests when visiting Malmö, Sweden. The initial focus was on tourists, but with crowdsourced and more specific data, it could easily extend to any photo enthusiast.

For this proof-of-concept, I created a static list of top spots in Malmö, each tagged and categorized, and used Google’s Gemini as the chatbot to power the experience.

🌟 Use Case: Personalized Travel Photography Recommendations

Visitors seeking to capture the essence of Malmö through photography often rely on generic recommendations. Our concierge elevates this experience by understanding user preferences, like "modern architecture," "urban photography," or even specific interests like "swimming spots". It dynamically considers current weather conditions (simulated for now) to offer tailored suggestions to give better, more useful suggestions.

🧠 How GenAI is used

This project demonstrates several GenAI capabilities:

  • Function Calling: Gemini uses tools for weather lookup, tag mapping, attraction filtering, and semantic retrieval.
  • Agents: The model decides which tools to call and in what order — no hardcoded logic.
  • Structured Output: Responses from tools and Gemini are structured and easy to parse, then rendered clearly for the user.
  • Retrieval-Augmented Generation (RAG): ChromaDB + embeddings power semantic search over the attraction dataset.
  • Embeddings: Uses Gemini’s embedding model to encode documents and user queries for semantic matching.
  • Grounding: All recommendations come from a known, vetted dataset — no hallucinated places.

🔍 Example Interactions

Query: "I’m visiting Malmö today and I like old and modern architecture."

Response: Recommendations include historic sites like Malmöhus Castle and modern highlights like Turning Torso, adjusted to current weather.

Query: "It's hot, I want swimming spots for family photos."

Response: Suggests family-friendly beaches like Ribersborg Beach, perfect for swimming and photography.

Query: "I want to photograph renascentist architecture."

Response: Acknowledges lack of exact matches, flexibly suggesting relevant historic or architecturally interesting locations.

🚧 Limitations

Currently, the system uses simulated data and weather conditions. Future enhancements could integrate real-time APIs for dynamic updates, broader attraction datasets, and image-based recommendations.

🚀 Next steps

  • Extend concierge capabilities with image and video understanding for even more precise recommendations.
  • Expand across multiple cities, scaling personalized tourism globally.