Tekoälyavustaja

Asetukset > Tekoälyavustaja yhdistää Athenan omiin, paikallisiin OpenAI-yhteensopiviin mallipalvelimiisi - Keskustelu, Puheentunnistus ja Puhesynteesi ovat kolme täysin toisistaan riippumatonta palvelinta, joten mikään ei vaadi kaikkien kolmen olevan sama instanssi. Athena lisää itse tavalliset API-polut (/v1/chat/completions, /v1/audio/transcriptions, /v1/audio/speech, ...) - roolin palvelinosoite on vain kyseisen palvelimen oma perusosoite.

Asetuskortit

Jokainen alla olevista tallentuu erikseen, omalla Tallenna-painikkeellaan - yhden kortin muuttaminen ei koske toisen jo tallennettuja arvoja:

  • Discovery - UDP-portti, jota Athena kuuntelee LlamaNexus-palvelimen omaa lähetystä varten, sekä "Select discovered server" -toiminto per rooli, joka valitsee suoraan jonkin lähiverkossa parhaillaan lähetettävistä palvelimista osoitteen käsin kirjoittamisen sijaan.
  • Keskustelu (Chat) - palvelinosoite, Malli-valitsin (mukana "Search Hugging Face for models…" -vaihtoehto, joka käyttää samaa latausvirtaa kuin keskustelusivun oma mallinvaihtaja) sekä valinnainen API-avain. LlamaNexus-keskustelupalvelin tarvitsee osoitteeseensa oman erikoisetuliitteensä /openai.
  • Puheentunnistus (Speech to text) - samanmuotoinen kuin Keskustelu, taustalla Whisper-yhteensopiva palvelin (LlamaNexus voi itse toimia tässä roolissa hallitun whisper-server:n kautta). Myös sen Malli-valitsimella voi hakea whisper.cpp-malleja Hugging Facesta, mutta valittu malli tulee voimaan vasta kun kyseinen palvelin käynnistetään uudelleen sillä - toisin kuin Keskustelussa, tässä ei voi vaihtaa mallia lennossa. Kieli-kenttä (mikä tahansa Whisperin tukemasta 99 kielestä, tai Tunnista automaattisesti) lähetetään pyyntökohtaisena ohituksena, mutta tekee jotain vain monikielistä mallia vasten - sellaista, jonka tiedostonimessä ei ole .en- päätettä (esim. ggml-base.bin, ei ggml-base.en.bin); pelkkää englantia osaava malli ohittaa sen ja litteroi silti englanniksi.
  • Puhesynteesi (Text to speech) - palvelinosoite ja äänen valitsin Malli-kentän sijaan (OpenAI-muotoisen pyynnön model-kenttä hyväksytään mutta ohitetaan jokaisella itse ylläpidetyllä TTS-palvelimella, jota Athena todellisuudessa käyttää, joten tälle roolille ei koskaan ollutkaan oikeaa Malli-asetusta). "Refresh voices" listaa palvelimelle jo ladatut äänet; "Search Hugging Face for voices…" hakee jokaisen virallisen Piper-äänen nimen tai kielen perusteella. Äänen vaihtaminen tulee voimaan heti seuraavassa puhutussa vastauksessa - ei vaadi uudelleenkäynnistystä.
  • Keskustelusivun työkalut (Chat page tools) - File-, Bash-, Planning- ja Agent-delegointityökalujen oletustila (päällä/pois) keskusteluistunnolle (katso alta), sekä saako muu kuin admin-käyttäjä ottaa ne käyttöön myös omissa istunnoissaan.
  • Oletusjärjestelmäkehote (Default system prompt) - persoona/ohjeistus, jota käytetään aina kun alueella ei ole omaa järjestelmäkehotetta.

Jätä roolin palvelinosoite tyhjäksi poistaaksesi juuri sen roolin käytöstä - pelkkä Keskustelu ilman ääni-syötettä/-ulostuloa toimii ihan hyvin, ja päinvastoin.

Keskustelusivu

/assistant on täysimittainen keskusteluliittymä, ei pelkkä asetusten yhteenveto: useita nimettyjä istuntoja, suoratoistettavat vastaukset, laajennettava "thinking"-lohko malleille jotka raportoivat päättelynsä, sekä mallinvaihtaja (lataustila per malli, Eject- toiminto ja sama Hugging Face -haku), joka mukailee LlamaNexuksen omaa palvelinpuolen mallinhallintaa. Mikrofonipainike nauhoittaa ja litteroi asetetun Puheentunnistus-palvelimen kautta; automaattinen ääneenluku-kytkin toistaa jokaisen vastauksen Puhesynteesin kautta. Jokainen vastaus näyttää kehote-/vastaus-/kokonaistokenmäärät, kuluneen ajan ja tokenit sekunnissa, aivan omien Read aloud- / Copy-toimintojensa vieressä.

"/"-komentopainikkeen vieressä oleva "+"-painike liittää tiedoston viestiin: teksti-/koodi- tiedostot luetaan selaimessa ja upotetaan kontekstiksi automaattisesti, PDF:stä poimitaan sen oma teksti paikallisesti (ei ulkoista palvelua, ei erillistä AI-kutsua), ja kuva lähetetään mallille vision-tyyppisenä liitteenä vain sitä yhtä vastausta varten - sitä ei toisteta enää myöhemmillä kierroksilla, jotta pitkä keskustelu ei kasva joka kerta kun siinä on jaettu kuva.

Avustaja tietää aina nykyisen päivämäärän/kellonajan - ei tallennettua hetkeä vastauksen alusta (jonka malli voisi muuten toistaa sanasta sanaan pitkän "thinking"-tauonkin jälkeen), vaan suoran haun virtuaalista "Current Time" -anturia vasten, jota se voi etsiä kuten mitä tahansa muuta kohdetta, Asetukset-sivun oman Alue-kortin asetetussa Aikavyöhyke-arvossa.

Työkalut (File, Bash, Planning, Agent)

Oletuksena pois päältä, istuntokohtaisesti: File ja Bash antavat keskustelumallille oikean tiedostojen luku-/kirjoitusoikeuden ja komentorivioikeuden itse Athena-palvelimella, aina varmistuksen takana ennen kuin mitään oikeasti suoritetaan. Planning antaa mallin seurata omaa monivaiheista tehtävälistaansa näkyvästi keskustelussa. Agent-delegointi antaa sen siirtää osatehtävän erilliselle mallikutsulle. Nämä ovat käytössä vain interaktiivisella keskustelusivulla - AI Action -automaatiot (katso alta) eivät koskaan saa tiedosto-/ komentorivioikeuksia.

Aluekohtaiset asetukset

Sijainnit ja alueet (Locations & Areas) -sivun alueen oma "Tekoälyavustaja"-painike asettaa, onko avustaja käytössä kyseisellä alueella, läsnäolon aikakatkaisun (aluepohjaisia läsnäoloautomaatioita varten), valinnaisen oman järjestelmäkehotteen, joka ohittaa yleisen oletuksen, sekä "Ilmoita vastaukset kautta" -media player -asetuksen - kun se on asetettu, kyseisellä alueella puhuttu äänisatelliitin vastaus toistuu myös sen kaiuttimen kautta (sen lisäksi että satelliitti itse aina toistaa sen). Tämä ilmoittaa oikeasti toistaiseksi vain silloin, kun valittu media player kääri ESPHome-laitteen oman media_player:-entiteetin - muilla Media player -sivun käärityillä lähteillä ei vielä ole yleistä "toista tämä URL" -ominaisuutta, joten jonkin niistä valitseminen ei toistaiseksi tee mitään.

Äänisatelliittilaitteisto

Erillinen ESPHome-äänilaitteisto - Home Assistant Voice Preview Edition tai mikä tahansa muu ESPHomen omalla voice_assistant:-komponentilla rakennettu laite - toimii Athenan kanssa suoraan, eikä laitteen puolella tarvitse asettaa mitään erikoista. Pariuta se tavallisena laitteena ESPHome-sivulla; Athena tunnistaa sen ääniominaisuuden automaattisesti ja tilaa sen putken heti.

Sen herätesana tai painikkeen painallus striimaa mikrofoniäänen suoraan Athenalle samaa yhteyttä pitkin. Athena litteroi sen, ajaa sen läpi oikean keskustelukierroksen täydellä hallinnalla jokaiseen talon laitteeseen (ei rajattuna vain kyseisen satelliitin omaan huoneeseen), ja puhuttu vastaus haetaan ja toistetaan satelliitin itsensä toimesta. Jokainen satelliitti saa oman pysyvän keskusteluistuntonsa ensimmäisellä käyttökerralla, joka näkyy jälkeenpäin tavallisen /assistant-sivun istuntolistassa, aivan sen vierellä mitä olet itse kirjoittanut siellä.

Athena kuuntelee lyhyen tauon puhumisen jälkeen tietääkseen vuorosi päättyneen - automaattisesti, ilman laitekohtaisia asetuksia. Jos satelliitissasi on oma fyysinen pysäytyspainike/-toiminto, se toimii silti edelleen ja vastaa siihen mennessä tallennettuun sisältöön, aivan kuten luonnollinen tauokin.

Satelliitti myös kertoo mallille, missä huoneessa se fyysisesti on, joten pyyntö joka ei nimeä huonetta erikseen (esim. "laita valo päälle") kohdistuu oletuksena kyseisen satelliitin omaan alueeseen sen sijaan että mallilla ei olisi mihin sitä ratkaista - malli voi silti ohjata mitä tahansa muuta huonetta, kun se nimetään.

Kahden asian täytyy olla kunnossa, jotta satelliitti oikeasti vastaa:

  • Laite on liitetty alueeseen, ja kyseisen alueen omat Tekoälyavustaja-asetukset on asetettu käyttöön - sama aluekohtainen kytkin kuin yllä. Satelliitti ilman aluetta, tai alueella jolla avustaja on pois päältä, hylkää herätesanan heti sen sijaan että kuuntelisi.
  • Palvelimen osoite (lähiverkko) (Server address (LAN)) -kenttä Asetukset-sivun Alue-kortilla on täytetty - Athena tarvitsee osoitteen, josta lähiverkossa oleva satelliitti voi tavoittaa sen, jotta se voi antaa takaisin äänitiedoston puhuttua vastausta varten.

Kaikki yllä vaatii, että Keskustelu-, Puheentunnistus- ja Puhesynteesi-palvelimet ovat kaikki oikeasti asetettuina - äänisatelliitti käyttää täsmälleen samoja kolmea roolia kuin keskustelusivu ja sen oma mikrofonipainike.

AI Action -automaatiosolmu

Oma solmutyyppi automaatioeditorissa: vapaamuotoinen ohje (esim. "Sammuta valot jos kukaan ei ole kotona"), valinnainen Persona-alue jonka oman järjestelmäkehotteen se voi lainata, lista Context-kohteita joita malli voi lukea, ja erillinen lista Allowed actions -kohteita joita se saa oikeasti ohjata - kaksi eri listaa, joten vuo voi näyttää mallille enemmän tilaa kuin mitä sen sallitaan muuttaa. Jokainen vaihto (vastaukset, työkalukutsut ja niiden tulokset) näkyy kyseisen automaation omassa Run History -listassa, samassa paikassa jossa jokaisen muunkin solmutyypin toiminta jo näkyy.