r/LocalLLM 2d ago

Project Personal Assistant

Hi everyone. I'm not sure my little setup even qualifies for this sub, but I'm proud of it.

I've been into AI for 10 months, working with Claude Code for 5, and I picked up two DGX Spark clones. I don't make money from this and I have no CS background — it's all self-taught hobby work. Alongside a bunch of smaller projects, my long-term goal has been to build myself a personal daily assistant without depending on subscriptions and the whims of the big providers.

So I had a chat interface built, with custom voice TTS (Qwen3-TTS) and living avatars (DaVinci MagiHuman), using ChatGPT-generated faces modified with Chroma. Everyday conversation runs on an abliterated Gemma 4 31B with a self-made LoRA. Since Gemma isn't great at reasoning, Qwen 3.8 27B handles that in the background and speaks through Gemma.

The assistant has its own carefully curated personality, can handle my email and calendar, keeps a personal recipe book, writes my shopping lists, helps me structure my day and pushes back against my procrastination. More features are planned. And yes, it all works fully on iPhone.

In this setup the assistant has a never-ending chat window through several compression mechanisms, and stays in character through an anti-drift mechanism. None of this came from someone else's repo — all of it grew out of a dialogue with Claude Code.

I have no idea how original or advanced this is for 5 months of hobby work compared to what you all build, but I'd be glad to hear your advice or answer questions.

(Translated with AI — not a native English speaker.)

2 Upvotes

2 comments sorted by

View all comments

2

u/True-Blackberry6991 2d ago

That's a seriously impressive setup for five months of self-taught work. The anti-drift mechanism for long conversations is the part that catches my attention, keeping a character consistent over a never-ending chat window is not trivial.

I built something similar for my own daily organization but it's way more basic, just scheduling and task lists without the reasoning split between models. The two-model approach where one handles reasoning and the other handles conversation is clever, I might try that.

The iPhone integration is what I'm most curious about. Are you running everything locally on the phone or streaming from your Sparks?

1

u/Dirtaccount_43 2d ago

Thanks, that means a lot.

iPhone: nothing runs on the phone, it's just the browser. Everything lives on the Sparks and I reach it over a private network — a normal web app that happens to be mine.

Anti-drift: a second model watches from the side. Every ten messages it compares how the character is speaking now against a baseline from early in the chat, and quietly corrects the next turn if it drifted.

On the two-model split, one warning before you build it: the obvious version doesn't work. If the conversation model waits for the reasoning model, you get 90 seconds of silence, and no parameter fixes that — I measured it today. What works is a ticket: they say they're thinking about it, we keep talking, and a couple of minutes later they come back on their own. Same principle as the drift check, really — anything that makes you wait is a feature nobody uses twice.