Allgemeine Einführung
MacOS LLM Controller ist eine Open-Source-Desktop-Anwendung, die auf GitHub gehostet wird und es Nutzern ermöglicht, macOS-Systembefehle auszuführen, indem sie Befehle in natürlicher Sprache über Sprache oder Text eingeben. Es basiert auf dem Llama-3.2-3B-Instruct-Modell und verwendet LlamaStack, um Python-Code zu generieren, der die macOS-System-APIs aufruft, um Aufgaben zu erledigen. Benutzer können "Terminal öffnen" sagen oder "Neuer Ordner" eingeben und das Tool wird die Operation automatisch analysieren und ausführen. Das Projekt verwendet Reagieren Sie Das Frontend und das Flask-Backend mit Echtzeit-Status-Feedback und Befehlshistorie sind ideal für macOS-Benutzer, um die betriebliche Effizienz zu verbessern, insbesondere für Entwickler oder Menschen mit Zugangsbedürfnissen. Der Code ist öffentlich zugänglich und die Community kann sich an der Optimierung beteiligen.
Funktionsliste
- Sprachbefehlserkennung: Geben Sie Ihre Stimme über das Mikrofon ein und übersetzen Sie sie in Echtzeit in macOS-Befehle.
- Textbefehlseingabe: Unterstützt die Texteingabe in natürlicher Sprache zur Durchführung von Systemoperationen.
- Befehlshistorie: Zeigt den Erfolgs- oder Misserfolgsstatus von ausgeführten Befehlen an.
- Statusrückmeldung in Echtzeit: Die Schnittstelle aktualisiert dynamisch den Status der Dienstverbindungen und der Befehlsausführung.
- Python-Code-Generierung: Verwandelt Anweisungen in ausführbaren macOS-API-Aufrufcode auf der Grundlage von LlamaStack.
- Lokalisierter Betrieb: Die gesamte Verarbeitung erfolgt lokal, um die Privatsphäre der Nutzer zu schützen.
- Sicherheitsüberprüfung: Führt eine grundlegende Sicherheitsüberprüfung des generierten Python-Codes durch.
Hilfe verwenden
Einbauverfahren
Der MacOS LLM Controller erfordert eine Umgebung, die auf dem macOS-System konfiguriert werden muss, einschließlich Front-End, Back-End und LlamaStack-Modell. Nachfolgend finden Sie detaillierte Installationsschritte, um sicherzustellen, dass die Benutzer es reibungslos ausführen können:
1. die Vorbereitung der Umwelt
Stellen Sie sicher, dass das System die folgenden Anforderungen erfüllt:
- BetriebssystemmacOS (das Projekt ist für macOS konzipiert und unterstützt nicht ausdrücklich andere Systeme).
- Node.js: Version 16 oder höher, einschließlich
npm
Die Node.js-Website ist eine hervorragende Quelle für Informationen über Node.js. Es kann von der Node.js-Website heruntergeladen werden. - Python: Version 3.8 oder höher, enthält
pip
Die Es kann von der Python-Website heruntergeladen werden. - OllamaLlama: Für die Ausführung des Llama-Modells. Zugang Ollama Offizielle Website Installation.
- DockerFür den Betrieb von LlamaStack. installieren Sie Docker Desktop.
- Hardware-Voraussetzung16 GB oder mehr RAM und eine Multi-Core-CPU werden empfohlen, um die Modellinferenz zu unterstützen.
2. das Klonen von Projektcodes
Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus, um den Code zu klonen:
git clone https://github.com/duduyiq2001/llama-desktop-controller.git
cd llama-desktop-controller
3. konfigurieren von LlamaStack
LlamaStack ist die Hauptabhängigkeit des Projekts für die Erzeugung von Python-Code. Die Konfigurationsschritte sind wie folgt:
Setzen von Umgebungsvariablen::
Führen Sie den folgenden Befehl im Terminal aus, um das Inferenzmodell festzulegen:
export INFERENCE_MODEL="meta-llama/Llama-3.2-3B-Instruct"
export OLLAMA_INFERENCE_MODEL="llama3.2:3b-instruct-fp16"
Starten des Ollama Reasoning Servers::
Führen Sie den folgenden Befehl aus, um das Modell zu starten und es so einzustellen, dass es 60 Minuten lang aktiv bleibt:
ollama run $OLLAMA_INFERENCE_MODEL --keepalive 60m
LlamaStack mit Docker ausführen::
Legen Sie den Port fest und starten Sie den Container:
export LLAMA_STACK_PORT=5001
docker run \
-it \
-p $LLAMA_STACK_PORT:$LLAMA_STACK_PORT \
-v ~/.llama:/root/.llama \
llamastack/distribution-ollama \
--port $LLAMA_STACK_PORT \
--env INFERENCE_MODEL=$INFERENCE_MODEL \
--env OLLAMA_URL=http://host.docker.internal:11434
Stellen Sie sicher, dass sich der LlamaStack in http://localhost:5001
Es läuft gut.
4. die Backend-Einrichtung
Das Backend basiert auf Flask und ist für die Bearbeitung von API-Anfragen und die Codegenerierung zuständig. Die Schritte sind wie folgt:
- Wechseln Sie in das Backend-Verzeichnis:
cd backend
- Installieren Sie die Python-Abhängigkeiten:
pip install -r ../requirements.txt
Zu den Abhängigkeiten gehören
flask
undflask-cors
undrequests
undpyobjc
im Gesang antwortenllama-stack-client
. Wenn die Installation fehlschlägt, verwenden Sie einen Haushaltsspiegel:pip install -r ../requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
- Starten Sie den Flask-Server:
python server.py
- Bestätigen Sie, dass das Backend auf
http://localhost:5066
.
5. die Einrichtung des Front-Ends
Das Frontend basiert auf React und stellt die Benutzeroberfläche zur Verfügung. Die Schritte sind wie folgt:
- Wechseln Sie in das Front-End-Verzeichnis:
cd .. # 返回项目根目录
- Installieren Sie die Node.js-Abhängigkeit:
npm install
- Starten Sie den Entwicklungsserver:
npm run dev
- Überprüfen Sie, ob das Front-End auf
http://localhost:5173
.
6. den Zugang zu Anwendungen
Öffnen Sie Ihren Browser und besuchen Sie http://localhost:5173
. Stellen Sie sicher, dass das Backend und LlamaStack ordnungsgemäß funktionieren, da sonst die Funktionalität eingeschränkt sein kann.
Funktion Betriebsanleitung
1. die Verwendung von Sprachbefehlen
Die Spracheingabe ist die Kernfunktion des Projekts und eignet sich für eine schnelle Bedienung. Die Bedienschritte sind wie folgt:
- Aktivieren des SprachmodusKlicken Sie auf die Schaltfläche "Spracheingabe" in der Hauptoberfläche (oder verwenden Sie die Tastenkombinationen, die Sie in der Dokumentation nachlesen können).
- Anweisungen zur AufnahmeSprechen Sie Befehle in das Mikrofon, z. B. "Finder öffnen" oder "Safari schließen". Halten Sie die Umgebung ruhig, um die Erkennungsrate zu verbessern.
- UmsetzungsprozessDas Tool wandelt Sprache in Text um, indem es die SpeechRecognition API verwendet, die LlamaStack in Python-Code umwandelt, der die macOS API aufruft, um die Aufgabe zu erfüllen.
- Beispiele für gängige Befehle::
- "Terminal öffnen": Startet Terminal.app.
- "Neuer Ordner": Erstellt einen Ordner im aktuellen Verzeichnis.
- "Screenshot": Löst die macOS Screenshot-Funktion aus.
- caveat::
- Für die erstmalige Nutzung des Mikrofons muss eine Berechtigung erteilt werden.
- Wenn die Erkennung fehlschlägt, überprüfen Sie die Mikrofoneinstellungen oder wechseln Sie die Texteingabe.
2. die Verwendung von Textanweisungen
Die Texteingabe eignet sich zur präzisen Steuerung. Die Bedienschritte sind wie folgt:
- Öffnen Sie das EingabefeldSuchen Sie den Texteingabebereich in der Benutzeroberfläche.
- EingabeGeben Sie eine natürliche Sprache ein, z. B. "Kalender öffnen" oder "Lautstärke auf 50% stellen".
- Einreichung von AnweisungenKlicken Sie auf die Schaltfläche Ausführen oder drücken Sie die Eingabetaste. Das Tool generiert den Python-Code und führt ihn aus.
- Erweiterte VerwendungLlamaStack unterstützt komplexe Befehle wie z.B. "Erstelle einen neuen Ordner auf dem Desktop mit dem Namen 'Projekte' und öffne ihn" LlamaStack unterteilt Aufgaben und führt sie nacheinander aus.
- auf etw. aufmerksam machenKlarheit der Anweisungen verbessert den Erfolg, z. B. ist "Chrome öffnen" besser als "Browser öffnen".
3. die Anzeige der Befehlshistorie
Die Schnittstelle bietet einen Befehlsverlaufsbereich, der den Ausführungsstatus jedes Befehls anzeigt:
- ErfolgszustandEine grüne Markierung zeigt an, dass der Befehl korrekt ausgeführt wurde.
- FehlerzustandRote Flaggen mit Fehlermeldungen (z.B. "unzureichende Berechtigungen").
- RiggSie können auf Verlauf klicken, um den Befehl erneut auszuführen oder den generierten Python-Code anzuzeigen.
4. die Überwachung des Status in Echtzeit
Der Dienststatus wird in der oberen rechten Ecke der Benutzeroberfläche angezeigt:
- grüner: Das Backend und LlamaStack sind korrekt verbunden.
- rosaDer Dienst ist nicht mehr verbunden und Sie müssen überprüfen, ob Flask oder LlamaStack läuft.
- RiggKlicken Sie auf das Statussymbol, um die Verbindung manuell zu aktualisieren.
5. die Sicherheitskontrollen
Tool führt eine grundlegende Sicherheitsüberprüfung des generierten Python-Codes durch:
- Filterung risikoreicher Befehle (z. B. Löschen von Systemdateien).
- Prüfen Sie auf Syntaxfehler und stellen Sie sicher, dass der Code ausführbar ist.
- zur Kenntnis nehmenVorsicht ist dennoch geboten, um die Ausführung von Befehlen aus unbekannten Quellen zu vermeiden.
caveat
- ModellabhängigkeitDas Projekt ist auf die Verwendung von Llama-3.2-3B-Instruct festgelegt und kann andere Modelle nicht direkt ersetzen.
- LeistungsanforderungenDa der Betrieb von LlamaStack eine hohe Rechenleistung erfordert, ist es empfehlenswert, nicht benötigte Programme zu schließen.
- Verfahren für die InbetriebnahmeWenn der Start fehlschlägt, prüfen Sie die Terminalprotokolle oder rufen Sie die
http://localhost:5066/status
Überprüfen Sie den Status des Backends. - KompetenzfragenEinige macOS-Befehle erfordern eine Autorisierung (z.B. um auf Dateien zuzugreifen oder die Lautstärke zu steuern), und wenn Sie sie zum ersten Mal ausführen, erscheint eine Eingabeaufforderung.
- Unterstützung der GemeinschaftProbleme können über GitHub Issues mit Fehlerprotokollen eingereicht werden, die den Entwicklern bei der Fehlersuche helfen.
Anwendungsszenario
- Hilfe bei der Erreichbarkeit
Sehbehinderte oder mobilitätseingeschränkte Nutzer können macOS mit Sprachbefehlen bedienen, z. B. "Mail öffnen", um die Mail.app schnell zu starten, was die Bedienung erleichtert. - Effizienz der Entwickler
Entwickler können Befehle wie "Öffne Xcode und erstelle ein neues Projekt" schnell ausführen, was Zeit für manuelle Aufgaben spart und es ihnen ermöglicht, sich auf ihre Entwicklungsaufgaben zu konzentrieren. - Routine-Automatisierung
Benutzer können sich wiederholende Aufgaben, wie z. B. "Jeden Tag Desktop-Dateien in Archivordnern organisieren", über Textbefehle erledigen, was sich für effiziente Büroarbeit eignet. - Bildung und Experimentieren
Programmierbegeisterte können studieren, wie LlamaStack natürliche Sprache in Code umwandelt und lernen, wie sich KI in Systeme integrieren lässt.
QA
- Was ist mit ungenauer Spracherkennung?
Vergewissern Sie sich, dass das Mikrofon funktioniert und die Umgebung frei von Geräuschen ist. Wenn es immer noch nicht klappt, wechseln Sie zur Texteingabe oder überprüfen Sie die Konfiguration der SpeechRecognition API. - Was passiert, wenn das Backend nicht startet?
Überprüfen Sie, ob die Python-Abhängigkeit vollständig installiert ist und ob LlamaStack auf demhttp://localhost:5001
. Sieheserver.py
Positionierungsfehler protokollieren. - Unterstützt es auch andere Systeme als macOS?
Derzeit wird nur macOS unterstützt, da der Code auf der macOS-API basiert, und kann in Zukunft durch die Community auf andere Plattformen erweitert werden. - Wie lässt sich die Leistung optimieren?
Erhöhen Sie den Arbeitsspeicher oder verwenden Sie eine leistungsstarke CPU/GPU und schließen Sie andere ressourcenfressende Programme. Versuchen Sie auch eine effizientere LlamaStack-Konfiguration. - Wie kann ich Code beisteuern?
Forken Sie das Repository und reichen Sie einen Pull Request ein. Es wird empfohlen, die Projektdokumentation zu lesen und die Beitragsrichtlinien zu befolgen.