I’ve seen other people hack Billy bass using other tech but they 3D printed a new casing for it. I looked for it again but couldn’t find it to send you a link though.
Someone else suggested Gemma E2B which I can run on Ollama def going to try that next. I can also write a lil cronjob to have it wake up and do things on its own then wire up the button to kick off a function that starts the voice mode. I’ve found local models sometimes struggle with tool usage though. Fun direction to try next. Thanks!
You can actually run a local model with strands using Ollama pretty easily so you could just swap the model provider out in like 4 lines of code. So this would not be hard to do. Good idea!
That’s awesome! Billy bass has always been a fave for this sort of thing I found a couple of guides that were similar to mine when I was working on it too
Yess a nice dose of nostalgia. I want to download the original songs so he can still sing those too and just load them up as audio files it can play. I had it reading the news and giving me a summary but it just ultimately was too silly for that use case lol
I built BillAI Bass just because I could. It’s powered by a Raspberry Pi and Strands Agents with bidirectional streaming, and the repo includes the code and hardware setup. Happy to answer questions about the implementation!
What was the gap you discovered that made it not shippable? This is an experimental project, so I'm curious to know what sorts of problems you ran into when you tried a similar approach.
I'm wondering if the post-condition checks change the perspective on this at all, because yes the code is nondeterministic and may execute differently each time. That is the problem this is trying to solve. You define these validation rules and they are deterministic post-condition checks that retry until the validation passes (up to a max retry number). So even if the model changes, and the behavior of that model changes, the post-condition checks should theoretically catch that drift and correct the behavior until it fits the required output.