In this video, we gives a walk-through on major features of Sidekick app here:
- Basic user interface
- Logging functionality (simple journaling)
- Insert/update/delete/search entries
- Navigate between dates
- Interaction with robots - the Machine Learning engines
This journaling app presents itself as just one of the many possible applications that Sidekick engine can be utilised. The key point to note here is that the ML engines here (SidekickProject.ai) are in their infant stage. They can learn and grow along with how their users will train them.
Build 20, I have moved ML engine off from running on the desktop and onto running on the server - in the cloud.
![]() |
ML Engine Running on Desktop |
![]() |
ML Engine Running on Cloud Server |
Build 20, matches only about 70% of the functionality compared to the earlier versions when ML was running on the desktop. However, moving ML to the cloud does free the app from desktop, now we can also have apps running from mobile phones and tablets. Some of the 30% unimplemented functionality needs to be re-implemented as in many cases they don't make sense, i.e. when asking for current time, the current time should be from the client device - not the time on server, etc.
Running ML in the Cloud - Pros and Cons
Pros
- Biggest win - was freeing ML from running locally and now the engine can provide services to the mass
- Multi-platform apps - Now we can have apps on mobile phones, tablets, etc
- Cross-platform apps - ML engine exposes standard REST API
- Trained knowledge can be shared
- ML engine can be scaled up - more RAM, storage, and nodes
Cons - Something to consider
- Information - conversation with bots is passed on to the server in the cloud
- Trained knowledge - text and images are stored on the server(s). What you tell the bots is no longer private
- Delay - some latency between each response from the robots
Some Challenges
As the data will be transmitted to the cloud, I did spend extra care on the implementation and most of my Christmas/New Year time on the implementation of server functionality. This includes:
- ML engine is exposed using standard REST API with Server side Swift & Vapor
- Enabling server support for Transport Layer Security (TLS/SSL). Server only provides services via HTTPS
- Implemented certificate pinning. They are self-signed for now
- Implemented firewall on the servers
Managing Log/Journaling Database in the Cloud
I chose to implement this on Apple platform and utilise its CoreData with CloudKit technology. This is a big win for the users of Sidekick apps - log-entry database (CoreData) is managed and sync'ed by Apple's underlying platform. This means a user can have their data available and synced across all devices - on multiple desktops (macOS), iPhone, iPad, Vision Pro, Apple TV, etc.
Ending Results
That was done. I believe I have just give Sidekick ML a pair of wings! 😉
No comments:
Post a Comment