Centreon-Tonwarnungen mit Ollama und Piper AI

In diesem Beitrag werden wir mehrere Elemente kombinieren, um Sprachbenachrichtigungen in unserem Überwachungssystem zu haben. Selbstverständlich nutzen wir lokale und sichere künstliche Intelligenz (Zu sein) um mit der Centreon-Benachrichtigung einen freundlichen und menschlichen Text zu generieren, um es später auf unserem 7-Zoll-Bildschirm zu reproduzieren″ Danke an Piper und eine Stimme in perfektem Spanisch.

Also sagte ich:, Wenn Sie über ein Centreon-basiertes Überwachungssystem verfügen, wissen Sie, dass Sie Benachrichtigungen erhalten können, wenn bei einem überwachten Dienst oder Host ein Problem auftritt, Auf diese Weise erfahren Sie von jedem Problem in Ihrem Rechenzentrum. in einem letzter Beitrag Wir haben gesehen, wie man die von Centreon generierten Nachrichten besser gestalten kann ‚Menschen‘ Danke an Ollama AI, Bei dieser Gelegenheit verschickte er die Warnung im Textformat per Telegram. Heute besteht der Unterschied darin, dass die Botschaft von einer menschlichen Stimme wiedergegeben wird (Danke an Piper) und über die Lautsprecher eines kleinen Raspberry Pi abspielen, Was verwende ich für mich selbst? 7 Bildschirm″ Überwachung.

Das wäre ein Hörbeispiel:

Ah, natürlich, Denken Sie daran, dass alles, was wir in diesem Beitrag sehen, Open Source ist, lokal, Versicherung, ohne die Notwendigkeit eines Internets

Pfeifer

Also beginnen wir mit Piper., das, wie sie sagen seine offizielle Website ist ein ‚ein schnelles, lokales neuronales Text-to-Speech-System, das großartig klingt‘. Es ist ein TTS (Text zu Sprache) das wir auf dem Raspberry Pi installieren können, um jeden Text in Audio mit einer immensen Vielfalt an Stimmen in verschiedenen Sprachen umzuwandeln, die für uns großartig sein werden!

Der einfachste Weg, Piper auf dem Raspberry Pi zu installieren, Dies geschieht durch Herunterladen der kompilierten Binärdatei für unsere CPU-Architektur. Que lo sabremos ejecutando: ‚cat /proc/cpuinfo‘.

  • Para el escritorio Linux de 64-bit: amd64
  • Para la Raspberry Pi 4 de 64-bit: arm64
  • Para la Raspberry Pi 3/4 de 32-bit: armv7

Descargaros la última versión que encontréis en su GitHub, los links se quedarán obsoletos. Nos lo descargamos, descomprimimos y entramos en su directorio:

wget https://github.com/rhasspy/piper/releases/download/v1.2.0/piper_armv7.tar.gz
tar zxfv piper_armv7.tar.gz
cd piper

Escogemos un modelo de voz entrenada de su repositorio: https://github.com/rhasspy/piper/#voices y cuando elijamos la que más nos guste nos descargamos el fichero ONNX y el JSON. Por cierto si queréis escucharlas para ver cómo suenan, usar esta web: https://rhasspy.github.io/piper-samples/. Venga, nos los descargamos:

wget https://huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/es/es_ES/sharvard/medium/es_ES-sharvard-medium.onnx?download=true -O es_ES-sharvard-medium.onnx
wget https://Huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/es/es_ES/sharvard/medium/es_ES-sharvard-medium.onnx.json?download=true.json -O es_ES-sharvard-medium.onnx.json

Und wir können es jetzt versuchen, Wir haben zwei Optionen, Erstellen Sie das Audio-Streaming und hören Sie es direkt über die Raspberry Pi-Lautsprecher, oder generieren Sie eine WAV-Datei für das, was wir brauchen. Lauf:

echo „Hallo, Dies ist ein Beispiel für einen Satz.' | ./piper --model es_ES-sharvard-medium.onnx --output-raw | aplay -r 22050 -f S16_LE -t raw -

Und es wird ungefähr so ​​klingen:

Integration mit Centreon

Wenn wir Piper über eine Benachrichtigung anrufen möchten, Dies sind die Schritte, die ich befolgt habe. Zuerst erstellen wir auf dem Raspberry Pi ein Skript, das Centreon aufruft, wenn eine Benachrichtigung vorliegt, führt dieses Skript aus, das über die Lautsprecher über die generierte Warnung informiert. Das Skript erhält als erste und einzige Variable den Text, den es reproduzieren muss. Ich habe so etwas bekommen (/home/pi/piper/alerta_piper.sh):

#!/bin/bash
cd /home/pi/piper
rm alarma.wav
Echo $1 | ./piper --model es_ES-sharvard-medium.onnx --length_scale 1.1 --Ausgabedatei alarm.wav
systemctl stoppt snapclient
aplay alarm_start.wav
Wenden Sie die Datei „alert.wav“ an
wenden Sie „alert_end.wav“ an
systemctl startet snapclient

Einige Details, die Sie sehen werden, sind, dass ich seine Stimme etwas verlangsamt habe., und ich habe einige Snapclient-Dienste gestoppt, da auf diesem Bildschirm normalerweise auch Hintergrundmusik abgespielt wird, und diese vorübergehend anzuhalten, während die Nachricht abgespielt wird.

Nachdem Sie das Skript ausführbar gemacht haben, Wir müssen es vom Centreon Central-Server aufrufen/ausführen, oder von einem Poller, wenn das der Fall ist. dies zu tun, Es muss ein Fingerabdruck zwischen dem Centreon-Server und dem Raspberry Pi erstellt werden, Sie können sich also über SSH anmelden, ohne nach Anmeldeinformationen zu fragen, und auf diese Weise führen wir das Skript aus der Ferne aus.

su centreon-engine
  ssh-keygen -t rsa
  cat /var/lib/centreon-engine/.ssh/id_rsa.pub
    ssh-rsa AAA...ySHsfu0= centreon-engine@os-poller-osit

In Centreon melden wir uns also als der Benutzer an, der Dinge in Centreon ausführt, Wir generieren einen privaten und einen öffentlichen Schlüssel, falls Sie diese nicht haben; Dann sehen wir mit cat den neu erstellten öffentlichen Schlüssel und kopieren ihn.

Wir fügen den öffentlichen Schlüssel von Centreon Central oder Poller auf dem Raspberry Pi in die Datei /home/pi/.ssh/authorized_keys ein

Und wir versuchen herauszufinden, ob wir über SSH eine Verbindung von Centreon mit Centreon-Engine zum Raspberry Pi herstellen können::

ssh pi@IP_ADDRESS_RASPBERRY_PI

Jetzt müssen noch die Befehle in Centreon registriert werden, die zur Benachrichtigung verwendet werden, wenn ein Host oder ein Dienst Probleme hat. Wenn wir verwenden ist frühere Post als Referenz, wo wir bereits die Skripte generieren, um die von Ollamas KI generierte Nachricht an Telegram zu senden, Nun, wir müssen am Ende einfach eine Zeile hinzufügen, die das auf dem Raspberry Pi erstellte Skript aufruft, und das war's.. So erhalten wir die Benachrichtigung per Telegram und über die Lautsprecher. Ich hinterlasse Ihnen eine Zusammenfassung des Skripts, das Probleme in den Hosts meldet, ich sagte:, Wichtig ist die letzte Zeile:

#!/bin / bash

# Ollamas KI generiert die Nachricht nach Ihren Wünschen
text="bitte, generiert einen Text für eine Benachrichtigung, der mit nützlichen Informationen an das Smartphone des Benutzers gesendet wird. Sie sind ein hilfsbereiter persönlicher Agent, der Texte für Systemtechniker generiert. Ihre Antworten können technischer Natur sein, Bieten Sie sich nicht als Hilfe an, ni des recomendaciones. El mensaje que tienes que decir es sobre un problema de tipo: "$1", auf dem Computer "$2" ya que está en el estado "$3". No saludes, no digas Hola y no te despidas, ni des las gracias por nada. La respuesta debe ser en Español y el mensaje debe ser breve."

texto_generado=$(/usr/bin/curl http://DIRECCION_IP_OLLAMA:11434/api/generate  -H "Inhaltstyp: Anwendung / json" -d '{
  "Modell-": "Lama3",
  "prompt": "'"$Text"'",
  "Temperatur": 0.1,
  "Strom": falsch,
  "maximale Länge": 50
}' | jq -r '.response')

texto_generado_sin_comillas=`echo "$texto_generado" | sed 's/\"//g'`

# Manda a Telegram
/usr/bin/curl -X POST -H "Inhaltstyp: Anwendung / json" -d '{
  "chat_id": "ID_CHAT_TELEGRAM",
  "Text": "'"$texto_generado_sin_comillas"'"
}' "https://api.telegram.org/botTOKEN_BOT_TELEGRAM/sendMessage"

# Alerta en la Raspberry Pi con Piper por los altavoces
ssh pi@DIRECCION_IP_RASPBERRYPI "sudo /home/pi/piper/alerta_piper.sh \"$texto_generado_sin_comillas\""

¡Y chimpún! Ya lo tenemos listo, script creado y el que tenga dudas tiene en los posts anteriores cualquier dato que necesite para crear el Comando, Registrieren Sie es in Centreon, Richten Sie Ollamas lokale und sichere KI ein, Fahren Sie Centreon…

Wie immer und weil es sehr originell ist, Ich hoffe, Sie fanden es interessant, dass Sie es in anderen Arten von Technologien anwenden können, Ideen… Die Wahrheit ist, dass Piper und Ollama in meinem Zuhause mit Home Assistant absolut notwendig sind, Sie verleihen ihm eine originelle Note, Jetzt können wir es nach und nach als Smart Home bezeichnen.… aber das, in anderen Beiträgen, wir werden sehen!

Umarmungen, benehmen!

Hector Herrero
Letzte Artikel von Hector Herrero (Alle anzeigen)