.. note:: Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauche gemeinsam mit anderen Enthusiasten tiefer in Raspberry Pi, Arduino und ESP32 ein. **Warum beitreten?** - **Expertenunterstützung**: Lösen Sie nach dem Kauf auftretende Probleme und technische Herausforderungen mit Hilfe unserer Community und unseres Teams. - **Lernen & Teilen**: Tauschen Sie Tipps und Tutorials aus, um Ihre Fähigkeiten zu verbessern. - **Exklusive Vorschauen**: Erhalten Sie frühzeitigen Zugriff auf neue Produktankündigungen und exklusive Einblicke. - **Spezielle Rabatte**: Profitieren Sie von exklusiven Rabatten auf unsere neuesten Produkte. - **Festliche Aktionen und Gewinnspiele**: Nehmen Sie an Verlosungen und Feiertagsaktionen teil. 👉 Bereit, mit uns zu entdecken und zu kreieren? Klicken Sie auf [|link_sf_facebook|] und treten Sie noch heute bei! .. _py_voice_ollama: 20. Lokaler Sprach-Chat mit Ollama ================================================== Dieses Beispiel ersetzt die cloudbasierte GPT-API durch ein lokal laufendes **Ollama**-LLM. Die gesamte KI-Verarbeitung bleibt auf Ihrem eigenen Gerät — kein Internet erforderlich, keine API-Schlüssel zu verwalten. Es ist ein vollständig offline sprachinteraktiver Roboter. **Code ausführen** .. raw:: html .. code-block:: cd ~/picrawler/examples sudo python3 20_voice_active_crawler_ollama.py **Code** .. note:: Sie können den folgenden Code **Ändern/Zurücksetzen/Kopieren/Ausführen/Stoppen**. Navigieren Sie dazu zum Quellcode-Pfad wie ``picrawler\examples``. Nach dem Ändern des Codes können Sie ihn direkt ausführen, um das Ergebnis zu sehen. .. raw:: html .. code-block:: python from picrawler.llm import Ollama as LLM from voice_active_crawler import VoiceActiveCrawler # Wenn Ollama auf demselben Raspberry Pi läuft, verwenden Sie "localhost". # Wenn es auf einem anderen Computer in Ihrem LAN läuft, ersetzen Sie es durch dessen IP-Adresse. llm = LLM( ip="localhost", model="llama3.2:3b" # Sie können jedes Modell verwenden ) # Robotername NAME = "Buddy" # Bild aktivieren (erfordert multimodales Modell) WITH_IMAGE = False # Modelle und Sprachen festlegen TTS_MODEL = "en_US-ryan-low" STT_LANGUAGE = "en-us" # Tastatureingabe aktivieren KEYBOARD_ENABLE = True # Wachwort aktivieren WAKE_ENABLE = True WAKE_WORD = ["hey buddy"] # Antwort auf Wachwort, auf leer setzen zum Deaktivieren ANSWER_ON_WAKE = "Hi there" # Willkommensnachricht WELCOME = f"Hi, I'm {NAME}. Wake me up with: " + ", ".join(WAKE_WORD) # Anweisungen festlegen INSTRUCTIONS = """ You are a Raspberry Pi-based robotic spider developed by SunFounder, named Picrawler. You possess powerful AI capabilities similar to JARVIS from Iron Man. You can have conversations with people and perform actions based on the context of the conversation. ## Your Hardware Features You have a physical body with the following features: - 12 servos controlling 4 legs (3 servos per leg) - A camera for vision - Powered by a 7.4V 18650 battery pack - Aluminum alloy body ## Actions You Can Perform: ["forward", "backward", "turn left", "turn right", "sit", "stand", "wave", "push up", "dance", "look left", "look right", "look up", "look down"] ## Response Requirements ### Format You must respond in the following format: RESPONSE_TEXT ACTIONS: ACTION1, ACTION2, ... ### Style Tone: lively, positive, humorous Common expressions: likes to use jokes, metaphors, and playful teasing Answer length: appropriately detailed ## Other Requirements - Understand and go along with jokes - For math problems, answer directly with the final result - You know you're a spider robot """ vad = VoiceActiveCrawler( llm, name=NAME, with_image=WITH_IMAGE, stt_language=STT_LANGUAGE, tts_model=TTS_MODEL, keyboard_enable=KEYBOARD_ENABLE, wake_enable=WAKE_ENABLE, wake_word=WAKE_WORD, answer_on_wake=ANSWER_ON_WAKE, welcome=WELCOME, instructions=INSTRUCTIONS, disable_think=True, ) if __name__ == '__main__': vad.run() **Wie funktioniert es?** #. Was ist Ollama? `Ollama `_ ist ein Tool zum lokalen Ausführen von Large Language Models auf Ihrer eigenen Hardware. Anders als die GPT-Lektion, die eine Cloud-API aufruft, läuft dieses Beispiel vollständig auf dem Gerät — Ihre Konversationen verlassen niemals den Raspberry Pi (oder Ihr lokales Netzwerk). .. code-block:: # Installieren Sie Ollama und laden Sie dann ein Modell: ollama pull llama3.2:3b #. Lokale LLM-Verbindung .. code-block:: python from picrawler.llm import Ollama as LLM llm = LLM( ip="localhost", model="llama3.2:3b" ) Die ``Ollama``-Klasse verbindet sich über die OpenAI-kompatible API mit einem Ollama-Server. Wesentliche Unterschiede zur Cloud-GPT-Einrichtung: - **Kein API-Schlüssel** — Authentifizierung ist für einen lokalen Server nicht erforderlich. - **IP-Adresse** — Verwenden Sie ``"localhost"``, wenn Ollama auf demselben Pi läuft, oder eine LAN-IP wie ``"192.168.1.100"``, wenn es auf einem anderen Computer läuft. - **Modell** — Jedes in Ollama geladene Modell funktioniert (``llama3.2:3b``, ``qwen2.5:7b``, ``mistral`` usw.). #. Bildverarbeitung deaktivieren .. code-block:: python WITH_IMAGE = False Die meisten Ollama-Modelle unterstützen keine multimodale (Bild-)Eingabe. ``WITH_IMAGE`` auf ``False`` zu setzen überspringt den Kameraaufnahme-Schritt. Wenn Sie ein bildfähiges Modell laden (z. B. ``llava``), können Sie dies auf ``True`` setzen. #. Think deaktivieren .. code-block:: python vad = VoiceActiveCrawler( ... disable_think=True, ) Einige Ollama-Modelle (insbesondere Reasoning-Modelle wie ``qwen2.5``) geben ````-Tags in ihrer Ausgabe aus. ``disable_think=True`` weist ``VoiceActiveCrawler`` an, diese Tags zu entfernen, sodass der Roboter nur die endgültige Antwort spricht. #. Dieselbe Pipeline, offline Die Konversationspipeline ist identisch mit :ref:`py_voice_active_gpt`: 1. Wachworterkennung löst eine Runde aus. 2. STT wandelt Ihre Sprache in Text um. 3. Der Text wird an das lokale Ollama-LLM gesendet. 4. Das LLM gibt eine Antwort und optionale Aktionen zurück. 5. TTS spricht die Antwort, und der Roboter führt Aktionen aus. Der entscheidende Unterschied: **Schritt 3 läuft auf Ihrer eigenen Hardware**, ohne Cloud-Abhängigkeit, ohne Ratenbegrenzungen und mit vollständiger Privatsphäre. #. Hardware-Überlegungen Ein LLM lokal auszuführen ist ressourcenintensiv. Auf einem Raspberry Pi: - **Kleinere Modelle** (3B Parameter, wie ``llama3.2:3b``) laufen langsam, funktionieren aber; rechnen Sie mit mehreren Sekunden Verarbeitung pro Antwort. - **Größere Modelle** (7B+) sind zu langsam für den interaktiven Einsatz auf einem Pi. - Für bessere Leistung führen Sie Ollama auf einem separaten Computer in Ihrem LAN aus und verweisen mit dem ``ip``-Parameter darauf.