Skip to content

A Flutter app that uses the Gemini API and Google Maps to provide travel information, nearby POIs, and customized routes, with Liquid Galaxy visualizations and voice integration.

Notifications You must be signed in to change notification settings

LiquidGalaxyLAB/LG-Gemma-AI-Touristic-info-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

AI Touristic Information Tool for Liquid Galaxy


App Screenshot


Table of Contents


About

The AI Touristic Information Tool for Liquid Galaxy is a Flutter-based Android tablet application that simplifies and enhances travel planning by helping users discover personalized points of interest worldwide. Whether you're searching for popular tourist attractions, dining options, or shopping locations nearby or across the globe, the app leverages the power of Generative AI through Google’s Gemma and Gemini models to provide tailored recommendations.

With Liquid Galaxy technology, users can visualize their entire trip across multiple screens, creating an immersive panoramic experience. The app seamlessly synchronizes maps between the Liquid Galaxy rig and the application via Google Maps. Additionally, it can operate as a standalone tool, offering tours and POIs based on AI-generated data.


Main Features and Functionalities

  • 🌍 Global Exploration: Discover activities and destinations around the world with ease.

  • 📍 Local Discovery: Find nearby attractions by entering a specific location or using your current location through integrated Google Maps.

  • 🤖 AI-Powered Information: Get personalized points of interest (POIs) powered by Google’s Gemini API, complete with detailed information tailored to your preferences.

  • 📌 POI Insights: Explore various points of interest within a generated or customized tour, with additional information displayed on Google Maps and Google Earth through balloons and info windows.

  • 🔍 Deep Dive: Access more details about each POI with top 10 website results and YouTube links for comprehensive information.

  • 🌌 Immersive Visuals: Experience the panoramic display of the Liquid Galaxy rig, visualizing tours, orbits, and KML balloons across multiple synchronized screens.

  • 🖥️ Liquid Galaxy System Control: Manage the Liquid Galaxy system through SSH, including relaunching, restarting, shutting down, and more, for an enhanced visualization experience.

  • 🎯 Tailored Tours: Customize your own tours by selecting your favorite points from AI-generated recommendations for a personalized adventure.

  • 📚 In-App Tutorials: Navigate the app with ease using intuitive in-app tutorials designed to enhance your experience.

  • Personalized Experience: Adapt the app settings to your preferences, from font size and themes to selecting one of 8 supported languages.

  • 🔄 Real-Time Responses: Enjoy a smooth experience with AI-generated responses presented in real-time stream mode.

  • Save Your Favorites: Keep your favorite tours and POIs easily accessible for future exploration and customization.

  • 🎙️ Voice Interaction: Record your questions or listen to AI-narrated tours for an interactive experience.


Technologies Used

  • Flutter & Dart
  • Langchain
  • Ollama
  • Web-Scraping
  • Python
  • Fast API & Langserve
  • Docker
  • Gemini API
  • Gemma Google Generative AI model
  • (KML) Keyhole Markup Language
  • Google Maps
  • Google Earth
  • Liquid Galaxy
  • Virtual Box and (CLI) Linux Commands

Prerequisites

Device Compatibility

  • The application requires an Android tablet running Android 13 (API level 33) or higher.
  • The tablet has to be a 10 inch android tablet.

Liquid Galaxy Integration (Optional)

Gemini API Key

  • You can go to the Google AI Studio and click on "Get a Gemini API key" to create your own API key.

Gemma Docker Installation (Optional)

  • To run a Docker container for using the Gemma model locally, follow the Docker guide.
  • Once the container is running, you can interact with the model through the terminal using the following CURL command. Replace "your_input_here" with your desired query:
curl -X POST http://localhost:8085/rag/stream_events \
  -H "Content-Type: application/json" \
  -H "Accept: text/event-stream" \
  -d '{"input": "your_input_value_here"}'

YouTube API Key:

  • You can get your own Youtube API key by following the guide from here

Deepgram API Key:

  • You can get your own Deepgram API key from here

Building From Source:

General for both Gemma and Gemini

To build the app from source, follow these steps:

  1. Clone the repository by opening a new terminal and running:

    git clone https://github.com/LiquidGalaxyLAB/LG-Gemma-AI-Touristic-info-tool.git
  2. Set up a Google Maps API key:

    • Obtain a Google Maps API Key by following the instructions here.
    • Navigate to the android/app/main directory within the cloned repository.
    • Open the AndroidManifest.xml file in a text editor.
    • Locate and update the following section where you replace "GMP_KEY" with your own Key:
      <meta-data android:name="com.google.android.geo.API_KEY"
          android:value="GMP_Key"/>
  3. Run the application:

    • Navigate to the project directory:
      cd LG-Gemma-AI-Touristic-info-tool/ai_touristic_info_tool
    • Install the necessary dependencies:
      flutter pub get
    • Launch the app:
      flutter run

Important: Ensure you have a tablet device connected or an Android tablet emulator running before executing the flutter run command.

Using Gemma Instead of Gemini

  1. Follow the Docker guide for installation and running the container here.

  2. If you want to use Gemma instead of Gemini:

    • Switch to the gemma_app branch:
      git checkout gemma-app
    • Configure your IP address and port:
      • For a real device, use your computer's IP address.
      • For an emulator, use 10.0.2.2.
      • The port should be 8085.

Connection AI image

Important: Ensure that the Gemma app server is running through Docker and check for the appropriate server status message before using the Flutter app as shown:


Server running

Using Gemini

  1. For Gemini, use the main branch:

    git checkout main
  2. Obtain a Gemini API key from here.

  3. Enter your credentials in the API key settings section in the app and set as default.


Gemini APi Key

Usage

  1. Downloading the app

You can download the app from the Play Store or download the APK.

  1. Set up

Make sure you have set up your API keys correctly, and that you have all the "Prerequisites" needed to start using the application.

  1. Connecting to the Liquid Galaxy system

If you have a Liquid Galaxy System available, you can Connect to the LG rig by entering your credentials:


Connection

If everything is correct, you should see the indicator turn green above.

  1. Worldwide Exploration

Use the app for exploring any place around the globe by choosing one of the recommendations or typing your own query:

worldwide worldwide
  1. Explore locations Nearby

Use the app to explore anything you want to look for nearby a location by determining the location, and choosing one of the recommendations or typing your own query:

nearby nearby
nearby nearby
  1. Visualize the POIs

Through the AI-generated POIs and tour, you can view all POIs on Google Maps and Google Earth through the Liquid Galaxy System.

  • View the Point Details
  • Orbit around the point
  • Fetch Extra details from the web and Youtube about this point
  • Play/stop a tour
  • Add POI to favorites
  • Save the whole tour to view it later
poi poi
poi poi
  1. Customize your own Tour

Using your saved places, you can customize your own tour upon your interest and save the tour for later visualizations.

  • You can do that by selecting more than 2 points, then click on the customize button.
  • After that, you can drag your points from the side bar into the map
  • Click on Create
  • Visualize your tour
  • View your current tour
  • Reset the tour or remove a point
  • Add the tour to your favorites
custom poi
poi poi
  1. View all your saved tours

Either you customized your own tours, or you saved one of the AI-generated tours, you can view them later.

favs

  1. Personalize your app

Through the settings page, you can personalize your app as needed:

  • Change App Language

lang

  • Change App Theme
theme theme
theme theme
  • Change App Fontsize

font

  1. Managing your API keys

From the API keys settings, you can add, remove, view or edit a key

  • To add a key you will need to put a name, the value and choose the API key service (i.e. YouTube, Gemini, Deepgram...)
  • Refresh the API keys once you do any new operation on them
Gemini API Key api

App Screenshots and Liquid Galaxy Visualizations

App Screenshots:

Screenshot 1 Screenshot 2 Screenshot 3
Screenshot 4 Screenshot 5 Screenshot 6
Screenshot 8 Screenshot 9 Screenshot 10
Screenshot 11 Screenshot 12 Screenshot 13

Liquid Galaxy Visualizations:

Screenshot 1 Screenshot 2
Screenshot 3 Screenshot 4
Screenshot 5 Screenshot 6

Enhancement and Future Plans

While the main features are complete, future enhancements may include:

  • Adding a chat function for users to inquire about specific places.
  • Leveraging Gemini’s multimodality to allow users to upload images for location-based insights.

Technical Documentation

For more detailed technical information, please refer to the Wiki.

For Detailed AI-Documentation please refer to the following links in the Wiki:

Contribution

To contribute to the project, you can help by testing the app, reporting issues, or contributing code. Here’s how you can get involved:

Testing and Reporting Issues:

  • Test the App: Use the app extensively and report any bugs or performance issues you encounter.
  • Report Issues: If you find any bugs or have suggestions for improvements, please create a new issue in the repository.

Code Contributions:

  • Fork the repository
  • Create a new branch (git checkout -b feature-branch)
  • Commit your changes (git commit -m 'Add feature')
  • Push to the branch (git push origin feature-branch)
  • Open a Pull Request: Submit a pull request to the main repository for review.

You can also contribute by suggesting or working on new features.

We appreciate all forms of contribution and look forward to your involvement!

Project Info

This project was initiated as a Google Summer of Code 2024 project with Liquid Galaxy Org. The project was developed by:

  • Mahinour Elsarky: Project Developer and GSoC 2024 contributor, Email , LinkedIn, GitHub
  • Claudia Diosan: Mentor
  • Andreu Ibañez: Liquid Galaxy Org. Admin

Copyright (C) 2024 Mahinour Elsarky

About

A Flutter app that uses the Gemini API and Google Maps to provide travel information, nearby POIs, and customized routes, with Liquid Galaxy visualizations and voice integration.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published