[Custom Component] extended_openai_conversation: Let's control entities via ChatGPT

Gotcha! In that case I recommend making sure gpt-4o is set as the model you’re using in config. I also noticed in previous testing that enabling the “Attach username to message” option immediately surpassed the token limit, but I just disabled it and never looked into that further. On top of changing the default model you should also make sure your exposed entities list in the voice assistant config doesn’t have items you don’t need.

1 Like

Is the integration tracks the chat history even after Home Assistant restart? I can’t figure…

This part of the assist pipeline doesn’t actually control whether chat history is preserved. That depends on what you’re using to access the assistant, so for example if you open the chat window on your dashboard, the conversation history will be preserved as long as that window is open. Once it is closed, your next interaction will be “reset” and the assistant will not remember your previous interactions.

At the moment, unless you’re a developer, I don’t think there’s a good way to keep your chat history active between interactions. There are function calls you can use that allow the model to add and read notes from a todo list that works as a sort of memory. I think for now that’s the best option we have.

At this point can we use a ‘history’ variable instead of a todo list? We can store every interaction we had with the the conversation agent and let the assist read it before any response. Can this work? Maybe we can make a script to clear stored chat older than x time, just to keep the promtp ‘small’

Can we use the new gpt 4o-mini model? I’ve set it up in the configuration page but looks like it still using the gpt 4o looking at the openai dashboard

Yup! Not sure why it’s not applying for you but I’m using “gpt-4o-mini” in my config and it works as expected. For the purposes of HASS use it seems very close to the big version in my testing.

As for your other comment, every interaction has an associated conversation ID that facilitates what you’re describing. The way that ID is handled is outside of this integration, though. Hopefully we’ll get more control over how variables like this are used and more visibility and control over the pipelines in general (devs please!). A drawback of keeping the conversation ID active is that you won’t have the latest time or device information available, but this is a solvable problem if we can just pass the exposed entity list without current states (for some entity types, not all), then rely on function calls to grab current time and states instead. I’ll be happy to work on that once I get far enough with my Stream Assist fork (funny enough I’m actually implementing a way for it to keep the conversation ID between interactions).

Great, let me know if you find any solution on that!
As for 4o-mini, the dashboard was simply not updated. Now i can see the right model calls for the api

Can the conversation agent track witch user is logged in to know who he is? I mean, if i open the chat with my user can he know that it’s me that is talking to him?

All the functions will be the same for each user unless you specify which users can use/activate function/script.

we’re 2 at my home, me and my gf. I have put our preferences in the prompt, i’d like him to answer based on who is talking to him.

I am not aware of any assistant/ai that home assistant uses that recognize by voice.

Not by voice. He cannot read witch user is logged in home assistant using the assist interface?

You can create 2 assists. One for you and one for your GF

Every user can choose a default assistant?

I dont test ist. But you can duplicate the dashboard

I’m updated home assistant to 2024.8 and now i receive “this assistant can’t control your home” when i start talking to him. Looks like it works because if i ask to turn on something just works. But i don’t get any response

Just tested on mine after updating and did not receive any errors, everything seems normal. Where are you seeing that message?

Well is not an error to be honest. It appears on the Assist interface in lovelace like an alert. I’ve downgraded and all is working as before…

Ah, ok I do see what you’re talking about. So this error is present when the Conversation Agent is set to the Extended integration or if the official integration is set to “No control”:

image

When present, it’s also missing the option to select other assistants:
Screenshot 2024-08-08 143944

But when set to the official integration with control enabled, the interface does work as expected. Sounds like the Extended integration needs a flag added telling HASS that it’s capable of controlling devices to avoid this error. Not sure what that entails, but unless you need to switch assistants in the interface this would seem to be a benign error. The companion app does not seem to have this issue.

I’m not sure if this is being maintained anymore as it looks like there haven’t been any updates in several months, but if I get some time I’ll see if I can find a way around the issue!

You can see the response in the interface?
Btw, is there still a reason to use this integration since the official one can now control entitities?