Bemerkung
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 [hier] und treten Sie noch heute bei!
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
cd ~/picrawler/examples
sudo python3 20_voice_active_crawler_ollama.py
Code
Bemerkung
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.
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).
# Installieren Sie Ollama und laden Sie dann ein Modell: ollama pull llama3.2:3b
Lokale LLM-Verbindung
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,mistralusw.).
Bildverarbeitung deaktivieren
WITH_IMAGE = False
Die meisten Ollama-Modelle unterstützen keine multimodale (Bild-)Eingabe.
WITH_IMAGEaufFalsezu setzen überspringt den Kameraaufnahme-Schritt. Wenn Sie ein bildfähiges Modell laden (z. B.llava), können Sie dies aufTruesetzen.Think deaktivieren
vad = VoiceActiveCrawler( ... disable_think=True, )
Einige Ollama-Modelle (insbesondere Reasoning-Modelle wie
qwen2.5) geben<think>-Tags in ihrer Ausgabe aus.disable_think=TrueweistVoiceActiveCrawleran, diese Tags zu entfernen, sodass der Roboter nur die endgültige Antwort spricht.Dieselbe Pipeline, offline
Die Konversationspipeline ist identisch mit 18. Sprach-Chat mit GPT:
Wachworterkennung löst eine Runde aus.
STT wandelt Ihre Sprache in Text um.
Der Text wird an das lokale Ollama-LLM gesendet.
Das LLM gibt eine Antwort und optionale Aktionen zurück.
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.