LLM / GPT / ChatGPT Question answerings using ActivityWatch data

Previously I worked on a terminal based micro-journal.

One of the cool features it had was the ability to ask GPT4 questions about what I was doing over a date-time range and GPT4 would provide answers based on the data available in the search results.

It was pretty fun, and felt helpful for filling out timesheets, remembering what I worked on in previous months, etc. As instead of needing to trawl the data myself I could pipe my data into the LLM & summarize. It wasn’t perfect but it felt good enough.

Because it was a simple command-line tool, there wasn’t much in the way of UI for it. UI has never been my specialty.

I was wondering if this is something which could be integrated with ActivityWatch, and if so, ideas on where and how it might work?

It could be a custom panel, but I don’t know if those are normally interacted with.

One idea would be it would take a search, similar to the search feature already present, and then allow for asking a question along with the search.

Open to other ideas. I am busy with life stuff at the moment but wouldn’t mind taking a crack at the implementation in December if others think this would be useful or cool.

I have also built something like this! But I also ended up just making a simple CLI and nothing with a UI.

However, it would probably be pretty simple to add a view to the web UI which fetches data for recent days, then feeds it to a LLM API (provided a API key).

2 Likes

Cool! I have a github repo with a few watchers I’d like to try implementing (https://github.com/LrWm3/ActivityWatch-Software-Dev-Watchers); will take a stab at this after I have one or two of those done!

Actually I’ve already implemented Jira, Git, Outlook (OWA365) watchers. But they are integrated in another big repo in which I’m trying to aggregate my activity basing mostly on heuristic, not on LLM. Will try to publish in a few hours.

2 Likes

About LLM - is it possible to feed 2000+ events (my daily mean) into GPT4? Is it capable to get so many information at once?

@LrWm3 please find a link to repo with importers and short description in Git, Jira, Outlook importers and separate way to categorize/aggregate events into activities

2 Likes

Currently I have been chunking by time if there is too much data. I would guess 2000 events would be too much to do all at once.

Possibly, if data doesn’t seem helpful for summarization possibly it could be filtered or omitted.

Yep, you are right. In my project I’m able to aggregate ~300 meaningful “intervals” from those 2000+ events, see “z###” buckets on the screenshot.

Anyway, @LrWm3 , @ErikBjare - how much data you’ve tried to feed into GPT4 at once and may you share code of you CLI tools for it?

1 Like

Not that much data. I generally have been chunking manually or dropping some data instead of chunking. The code to check the token limit might be useful though. I will share that when I can!

Has anyone made any progress about this?

I was planning to use n8n. Get the data, and send it to LLM. But my n8n instance lives in my server with Home Assistant. And to date I haven’t found a ActivityWatch add-on for HA. It wouldn’t be able to track the PC anyway, so this path feels like over-complicating things.

Maybe I’d need an n8n instance in my PC too?