I’ve been working on this project for a while and I built everything missing from scratch: Auth2 Go client for the Fitbit API, storage, extended the PostgreSQL abstraction layer for Go galeone/igor, contributed to go-echarts adding the support for new charts, and so on…
Today I’m here to share that I publicly released the beta version of FitSleepInsights!
The application offers every Fitbit user a (hopefully) nice dashboard for sleep, health, and activities performed during the day. They can decide what date range to visualize, and - last but not least - they can chat with their data!
I also wrote an article about this feature.
In the article, I explored how to combine a large language model (LLM) with a relational database to allow users to ask questions about their data in a natural way. It demonstrates a Retrieval-Augmented Generation (RAG) system built with Go that utilizes PostgreSQL and pgvector for data storage and retrieval. The provided code showcases the core functionalities.
Article: https://pgaleone.eu/golang/vertexai/2024/04/06/rag-for-tabular-data-postgresql-gemini-go/
The whole project itself is quite interesting IMHO because of the various technologies used:
- Dashboard created with echarts from Go
- RAG integration for asking questions as explained in the article
- Cloud-native architecture
- Database: Postgres on Cloud SQL
- Host: Cloud Run with spot instances
- Domain: Google Domains with link to Cloud Run instance
- Deployment from GitHub Actions
Modified by moderator
Notes:
- Access to the app is only possible for people with a Fitbit as it relies on the Fitbit APIs and the data that can be extracted from there.
- The website is still under development and form sure will have some bugs.
- There are features developed but not yet deployed - such as the Gemini integration with the charts, where we can ask the LLM to describe the chart