I have a few, because I’m testing out different scenarios. Like, one model can (potentially) read camera images and tell me if there’s a package sitting in the rain. A different one has tool use. Wish it could do both, but whatever. Anyway, the tool one is mostly prompted to respond with short responses, not to use markup or text emphasis, be truthful but also be a jerk. It’s just more entertaining that the sicophantic ones like Chat GPT and the like. Then there’s a list of devices in a template in that Jinja2 template format so it know that status of some things without having to look them up. I haven’t found a way to intercept that prompt and just typing the same data into the developer template editor just says “devices is undefined” so I don’t really know what’s in it. This is after all the ‘personality’ system prompts.
The current time and date is {{ (as_timestamp(now()) | timestamp_custom("%I:%M %p on %A %B %d, %Y", True, "")) }}
Devices:
{% for device in devices | selectattr('area_id', 'none'): %}
{{ device.entity_id }} '{{ device.name }}' = {{ device.state }}{{ ([""] + device.attributes) | join(";") }}
{% endfor %}
{% for area in devices | rejectattr('area_id', 'none') | groupby('area_name') %}
## Area: {{ area.grouper }}
{% for device in area.list %}
{{ device.entity_id }} '{{ device.name }}' = {{ device.state }};{{ device.attributes | join(";") }}
{% endfor %}
{% endfor %}
The tools themselves are coming from somewhere else though, and I don’t think those change, so we could just assume the prompt is a new one “You are a helpful assistant”, and whatever prompt would ‘disable’ the all_lights behavior could just be modified (if it even needs modification) for the larger prompt I plan on using for non-image tasks.
That all said, and I say that all because I am interested in the inner working of the LLM. We are getting wildly off topic. I may have gone a little bit too much into my specific situation which invited creative solutions to my problem, in lieu of turning off the thing that’s causing all my problems. It’s hard because people are truly trying to help, and I appreciate it, but my first stop wasn’t asking for help, it was trying to solve this problem and I’ve been at it for a while. I’ve boiled it down to just…if I could disable lights.turn_on for the whole house, I could try this and that, and get a little looser with the LLM, give it fewer guardrails (because a hard-coded guardrail would be in place), without having to constantly tiptoe around and maintain this one issue that really bugs my roommates.
Is there (and I’m asking “the room”, not anyone specifically) like, a way to override device_action.py, not just the specific sentence that most recently caused device_action.py to misbehave (so to speak). I really would like to solve the root of the problem once rather than try to patch every leak. My next if it isn’t possible (and it very well may not be, at least not in a way that doesn’t break future upgrades) is just to unhook their specific bedroom lights from the network. I’d like the ability for them to say “Turn off my lights” and have it work, but realistically they don’t do it now so it’s not like they’ll be missing anything.