acon96 / home-llm

A Home Assistant integration & Model to control your smart home using a Local LLM
508 stars 57 forks source link

Setup instructions incomplete and not clear enough #49

Closed airtonix closed 5 months ago

airtonix commented 5 months ago

Thanks for creating this project, but the README.md largely feels like it's just your personal reminder notes and not something intended to help someone new to this in successfully setting up all these pieces.

for example:

Unsuitable information in first section

✅ The first few paragraphs of a README should clarify what the project is. don't be vague. 🛑 The first section after that should be a "Getting Started" ![image](https://github.com/acon96/home-llm/assets/61225/2ce083ef-edec-4767-9a2f-c713f7f1858c) - This 'Model' section should be down the bottom of the readme next to or within a section dedicated to detailed tech architecture.

Be helpful and link to something that guides installing HACS

In terms of UX, The big blue button will encourage users in this direction first. So you'll want to assumme this is the golden path. Once i worked out what HACs was, i realised this was the easiest way to get HomeLLM installed and running. But installing HACS wasn't obvious, so a link to a document that helps users out will greating reduce the friction. It can be a document that the HACs team control. ![image](https://github.com/acon96/home-llm/assets/61225/c821c3ba-a535-4b75-a13d-366169a50c79)

The instructions for llama-cpp-python should come first.

Even though i had installed HomeLLM via HACs, the `LLaMA Conversation` device did not show up until i'd followed these steps. ![image](https://github.com/acon96/home-llm/assets/61225/6abedccf-0670-4045-b91c-c9864ac87688) i'd suggest adding these instructions: ```console mkdir -p /config/custom_components/llama_conversation cd /config/custom_components/llama_conversation wget https://github.com/acon96/home-llm/raw/develop/dist/llama_cpp_python-0.2.38-cp311-cp311-musllinux_1_2_aarch64.whl wget https://github.com/acon96/home-llm/raw/develop/dist/llama_cpp_python-0.2.38-cp311-cp311-musllinux_1_2_x86_64.whl ```

Configuring the Conversation Agent is incomplete

![image](https://github.com/acon96/home-llm/assets/61225/b75bc69e-7af9-41ad-9949-97e6e2a3abfb) 1. ok? but this shouldn't be first or look the same as the title. it's distracting and makes scanning for the real information (how do i set this up?) harder. I skipped this section a few times because i don't care about warnings. 2. I actually didn't setup a conversation agent. so this is where I currently sit. none of the instructions above this section outline how to do that. point 1 should be formatted like so: ```md ### Configuring the component as a Conversation Agent 1. Navigate to `Settings` -> `Voice Assistants` 2. Select `+ Add Assistant` 3. Name the assistant whatever you want. 4. Select the [conversation agent](#link-to-the-title-id-where-you-guide-the-user-in-doing-this) that we created previously. 5. If using STT or TTS configure these now 6. Return to the "Overview" dashboard and select chat icon in the top left. 7. From here you can submit queries to the AI agent. In order for any entities be available to the agent, you must "expose" them first. 1. Navigate to "Settings" -> "Voice Assistants" -> "Expose" Tab 2. Select "+ Expose Entities" in the bottom right 3. Check any entities you would like to be exposed to the conversation agent. > 🛑 ✋🏻 Security Warning > > Any devices that you select to be exposed to the model will be added as > context and potentially have their state changed by the model. > > Only expose devices that you want the model modifying the state of. > > The model may occasionally hallucinate and issue commands to the wrong device! > > Use.At.Your.Own.Risk 💣 ```

colaborat0r commented 5 months ago

Links to HA documentation would be nice, but most of the instructions needed are covered in the Home Assistant documentation and repeating them here might cause unnecessary complexity to the readme. I would suggest keeping it concise. Provide useful tips only. Samba for instance is a life saver. Emphasize familiarization with Home Assistant before attempting to install components. I am new to HA also, I'm just giving my personal experience.

acon96 commented 5 months ago

The readme seems to have grown quite a bit since I just keep adding things to it. Longer term I think the setup instructions should go in their own document because it just bloats the readme page.

Also I agree that we shouldn't be repeating Home Assistant documentation and should just link to it where appropriate.

airtonix commented 5 months ago

Also I agree that we shouldn't be repeating Home Assistant documentation and should just link to it where appropriate.

What did I repeat?

I'm fairly sure that I wrote just enough so that people can put the setup of your addon in context.

If you're going to defer to the homeassistant site for information:

I don't think i saw either of those two in the current homeassistant ecosystem.

colaborat0r commented 5 months ago

What did I repeat?

That was in response to me. You do make some good points. Thanks for contributing, I really like this project and would like to see it go far.

acon96 commented 5 months ago

Also I agree that we shouldn't be repeating Home Assistant documentation and should just link to it where appropriate.

What did I repeat?

I'm fairly sure that I wrote just enough so that people can put the setup of your addon in context.

Oh most of the repeated bits were from me because the installation instructions were basically just my notes that I took while setting things up for the first time.

If it is possible to remove some of it and link to the (in my opinion) better documentation provided by Home Assistant, then that would be a better solution than trying to maintain another set of setup instructions here.

Here are a couple of existing HA documentation pages that are relevant to setting up the custom component: Setting up the voice assist pipeline: https://www.home-assistant.io/voice_control/voice_remote_local_assistant/ Exposing entities: https://www.home-assistant.io/voice_control/voice_remote_expose_devices/#exposing-your-devices

Also agree about the parts where HACS is a bit confusing at first. I had no clue what it was until recently. I think having a blurb about what it is and linking to it's pre-requisites page right above the big blue button is a good idea.

airtonix commented 5 months ago

Sweet, I'll modify what I've done and link to those places.

acon96 commented 5 months ago

I've gone ahead and merged what you have for now. Feel free to continue tweaking and I can merge those future changes as well