- About
- Main Features and Functionalities
- Technologies Used
- Prerequisites
- Building from Source
- Usage
- App Screenshots
- Enhancement and Future Plans
- Technical Documentation
- Contribution
- Project Info
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.
-
🌍 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.
- 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
- The application requires an Android tablet running Android 13 (API level 33) or higher.
- The tablet has to be a 10 inch android tablet.
- To fully utilize the Liquid Galaxy features, ensure that the Liquid Galaxy core is installed. For detailed installation instructions, please refer to the Liquid Galaxy repository and check the training video done by me for more information.
- You can go to the Google AI Studio and click on "Get a Gemini API key" to create your own API key.
- 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"}'
- You can get your own Youtube API key by following the guide from here
- You can get your own Deepgram API key from here
To build the app from source, follow these steps:
-
Clone the repository by opening a new terminal and running:
git clone https://github.com/LiquidGalaxyLAB/LG-Gemma-AI-Touristic-info-tool.git
-
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"/>
-
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
- Navigate to the project directory:
Important: Ensure you have a tablet device connected or an Android tablet emulator running before executing the
flutter run
command.
-
Follow the Docker guide for installation and running the container here.
-
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
.
- Switch to the
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:
-
For Gemini, use the
main
branch:git checkout main
-
Obtain a Gemini API key from here.
-
Enter your credentials in the API key settings section in the app and set as default.
- Downloading the app
You can download the app from the Play Store or download the APK.
- 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.
- 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:
If everything is correct, you should see the indicator turn green above.
- Worldwide Exploration
Use the app for exploring any place around the globe by choosing one of the recommendations or typing your own query:
- 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:
- 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
- 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
- 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.
- Personalize your app
Through the settings page, you can personalize your app as needed:
- Change App Language
- Change App Theme
- Change App Fontsize
- 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
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.
For more detailed technical information, please refer to the Wiki.
For Detailed AI-Documentation please refer to the following links in the Wiki:
- What is Langchain?
- Gemini vs. Gemma
- Docker user-guide for running Gemma locally
- Creating a dockerfile with Ollama
- Docker issues and challenges
- Ollama with Langchain for running local models
- RAG (Retrieval Augment Generation)
- Project AI architecture
- Web Scraping & Web Loaders
- Prompt Engineering
- Output Parsers and its challenges
- Real-life stream of model responses
- Integrating Real-Time Data Streams in Flutter UI
- LangServe and FastAPI for deployment
- Gemini with Langchain flutter package
- Building Gemma AI from source code
To contribute to the project, you can help by testing the app, reporting issues, or contributing code. Here’s how you can get involved:
- 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.
- 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!
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