Show HN: Khoj – Ein zweites Gehirn und Offline-Chat mit Llama 2
(github.com/khoj-ai)- Khoj ist eine persönliche AI-App, die die Fähigkeiten der Nutzer erweitert, mit einer Architektur, die sich von persönlicher On-Device-AI bis zu Enterprise-AI im Cloud-Maßstab skalieren lässt
- Man kann mit lokalen oder Online-LLMs chatten; Beispielmodelle sind llama3, qwen, gemma, mistral, gpt, claude, gemini, deepseek
- Antworten können aus dem Internet und aus Dokumenten bezogen werden; unterstützte Dokumentformate sind unter anderem Bilder, PDF, Markdown, org-mode, Word und Notion-Dateien
- Zugriff ist über Browser, Obsidian, Emacs, Desktop, Phone und Whatsapp möglich; außerdem wird das Erstellen von Agenten mit angepasstem Wissen, Personas, Chat-Modellen und Tools unterstützt
- Unterstützt die Automatisierung wiederkehrender Recherche, die Zustellung persönlicher Newsletter und intelligenter Benachrichtigungen in den Posteingang, das Durchsuchen relevanter Dokumente per erweiterter semantischer Suche, Bilderzeugung sowie Sprachgespräche und Nachrichtenwiedergabe
- Open Source und selbst hostbar; kann privat auf dem Computer des Nutzers ausgeführt oder als Cloud-App genutzt werden
- Die Enterprise-Version wird als Cloud-Service, On-Premises- und Hybrid-Lösung angeboten
1 Kommentare
Hacker-News-Kommentare
Auf der Landingpage der Website sehe ich Llama oder Offline-Use-Cases überhaupt nicht; offenbar wird nur die Online-Nutzung über OpenAI erwähnt.
Mich würde auch interessieren, welche Modellgröße und welches Fine-Tuning verwendet werden und wie ihr die Performance in diesem Use-Case bewertet habt.
Ich habe Llama 2 in den Größen 7B und 13B ein wenig ausprobiert, und auf Consumer-Maschinen fühlte es sich ziemlich RAM-hungrig an – das Potenzial ist also wirklich spannend.
Außerdem frage ich mich, ob die Suche auf Embeddings und einer Vektor-DB basiert, ergänzt um zusätzliche Metadatenfilter wie Datumsbefehle.
Khoj verwendet Llama 7B 4-bit quantisiertes GGML von TheBloke.
Es ist ziemlich nah am ersten Offline-Chatmodell, das konsistente Antworten auf Nutzerfragen gibt, wenn Notizen als Kontext eingebracht werden; interessant ist auch, dass es sich dialogischer anfühlt als GPT-3.5+.
Wenn es beim Self-Hosting die Garantie gibt, dass persönliche Informationen überhaupt nicht an Remote-Dienste übertragen werden, wäre es hilfreich, diese Datenschutzgarantie sehr klar zu formulieren.
Das sieht wirklich großartig aus, und ich denke, lokale Ausführung ist die eigentliche Zukunft von AI.
Ich habe es auf einem kleinen M2 MacBook Air ausprobiert, und es ist komplett eingefroren.
Es erinnerte mich an die Zeiten, als ein alter PC einen Virus hatte und der Cursor sich erst 45 Sekunden nach dem Bewegen der Maus bewegte – seltsamerweise fühlte sich das sogar nostalgisch an.
Bei diesem Air muss ich wohl meine Performance-Erwartungen herunterschrauben; so etwas habe ich zum ersten Mal erlebt.
Ein 7B-Modell läuft mit 16 GB oder mehr Unified Memory meistens gut, aber bei 8-GB-Macs habe ich gesehen, dass sie sich ziemlich schwertun.
Könnte es auch den Webverlauf eines Tages nehmen und die Dinge, die ich recherchiert habe, als Notizen zusammenfassen?
Das kommt dem Ideal eines persönlichen AI-Assistenten immer näher.
Ich freue mich darauf, in ein paar Jahren ein digitales Gehirn zu haben, das mit allem gefüllt ist, was ich weiß.
Eine Browser-Erweiterung zu bauen, die den täglichen Webverlauf zusammenfasst, dürfte kein allzu großes Projekt sein, und wahrscheinlich gibt es schon etwas Ähnliches.
Alle digitalen Spuren zu indexieren und leicht verdaulich zu machen, wäre wirklich sehr wertvoll.
Ich hoffe, Khoj wird so etwas.
Ich frage mich, ob es Empfehlungen für Tools gibt, die so etwas leisten.
Oder ich würde auch gern jemanden finden, der so etwas gemeinsam bauen möchte.
Wofür wird die PostHog-Telemetrie verwendet?
Ich verstehe nicht, warum dazu nichts in der Dokumentation steht und warum es keine klare Opt-out-Möglichkeit gibt.
Zum Beispiel, um zu sehen, ob Leute Markdown oder org verwenden.
Alle Daten werden vollständig anonymisiert erfasst, und keine identifizierbaren Informationen werden an den Telemetrieserver gesendet.
Zum Opt-out kann man in
khoj.ymlden Wertshould-log-telemetryauf false setzen.Wir haben die erfassten Daten und die Methode in die Dokumentation aufgenommen: https://docs.khoj.dev/#/telemetry
Ansonsten funktioniert das Projekt erstaunlich gut.
Sieht nach einem tollen Projekt aus.
Es wäre wirklich schön, wenn es auch PDF-Verzeichnisse indexieren könnte und PDFs per OCR verarbeitet, damit auch gescannte Dokumente indexiert werden können.
Das liegt vielleicht außerhalb des aktuellen Projektumfangs, aber ich habe mir erst vor ein paar Tagen so ein Tool gewünscht.
Khoj kann PDF-Verzeichnisse für Suche und Chat indexieren.
Allerdings kann es derzeit keine gescannten PDF-Dateien verarbeiten, die keinen auswählbaren Text enthalten.
Es wäre schön, auch solche Dateien unterstützen zu können; man müsste es nur implementieren.
Hoffentlich ist das bald möglich.
Er soll PDFs, Downloads, Screenshots, Fotos usw. crawlen, einen logischen Baum der Dateiorganisation anzeigen und Änderungen ermöglichen wie: „Füge hier PDFs zu diesem Thema hinzu und ordne sie nach Quelle/Autor, und verschiebe die Screenshots hierher in Datumsreihenfolge.“
Ich wollte immer einen Computer, den man einfach mit „COMPUTER.“ ansprechen kann.
Wenn man „COMPUTER!“ sagt und dann kommt: „Sir, Sie müssen die Tastatur benutzen“ – ach, eine Tastatur, wie herrlich altmodisch.
Es sieht so aus, als würde gpt4all verwendet; ich frage mich, ob es eine offiziell unterstützte Möglichkeit gibt, das lokale Inferenzmodell zu wechseln.
Viele Apps, die für die Completion-/Chat-API von OpenAI entwickelt wurden, funktionieren fast genauso, wenn man sie einfach auf den von llama-cpp-python [0] bereitgestellten Endpoint zeigen lässt, und können dann verschiedene von llama.cpp unterstützte Modelle und Quantisierungen nutzen.
So könnte man größere Modelle auf der gewünschten Hardware ausführen, einschließlich Metal-Beschleunigung auf Apple Silicon oder NVIDIA-GPUs, und auch andere Proxys wie openrouter.io verwenden.
Ich persönlich nutze openrouter.io gern, weil es Anthropics 100k-Modell unterstützt.
[0]: https://github.com/abetlen/llama-cpp-python
Vermutlich kann man diese Zeile https://github.com/khoj-ai/khoj/blob/master/src/khoj/process... auf das gewünschte Modell ändern.
Man muss das lokale Image zwar selbst mit
docker-composebauen, aber es sollte relativ unkompliziert sein.Viele Entwickler möchten verschiedene Modelle ausprobieren, aber wir wollen in eine Richtung gehen, die einfach zu nutzen ist und zugleich tiefgehende Hilfe bietet.
Da unsere Ressourcen begrenzt sind, überlegen wir noch, worauf wir uns konzentrieren sollten.
Aus Sicht von jemandem, der gerade angefangen hat, Obsidian zu nutzen und mit Chat-AI herumzuspielen, ist das wirklich großartig
Ich habe es noch nicht ausprobiert, aber so etwas muss es definitiv geben
Wenn man keine ausreichend gute GPU hat, ist es vermutlich auf Consumer-Hardware noch nicht wirklich sehr brauchbar, aber ich bin sicher, dass es in ein paar Jahren oder sogar früher möglich sein wird
Das Logo ist auch schön, und die Farben gefallen mir
Für solche Use Cases dürfte Llama 2 leistungsfähig genug sein, sodass es weniger attraktiv wird, für ChatGPT zu bezahlen, besonders wenn Privacy wichtig ist
Macht bitte weiter so
Ich habe Khoj einen Tag lang genutzt, und es ist wirklich aufgeräumt und gut gemacht
Ein paar Beobachtungen
Dazu habe ich hier ein Issue samt Vorschlag hinterlassen: https://github.com/khoj-ai/khoj/issues/389
Ich habe dem oben genannten GitHub-Issue auch eine Notiz hinzugefügt
Zum Beispiel frage ich mich, ob man ein huggingface/gpt4all-Modell konfigurieren kann und es dann, falls möglich, anhand des Namens automatisch heruntergeladen wird, oder ob man
.binund YAML irgendwo in ein Volume legen mussWie in der Dokumentation erwähnt, kannst du dir den Telemetrie-Server[1] selbst ansehen
Wenn dir etwas Seltsames auffällt, sag Bescheid, dann liefern wir sofort einen Hotfix
Alle Telemetrie-Metadaten kannst du ebenfalls hier einsehen[2]
[1]: https://github.com/khoj-ai/khoj/tree/master/src/telemetry
[2]: https://github.com/khoj-ai/khoj/blob/master/src/khoj/routers...
Die
docker-compose-Konfiguration ist etwas speziell; Details dazu findest du im entsprechenden IssueDanke auch für den Hinweis zur GPU-Integration; zur Klarstellung: Für die Indizierung nutzen wir GPU-Optimierungen, für den Llama-basierten lokalen Chat aber noch nicht
Wir arbeiten gerade daran, das zum Laufen zu bringen
./serverausführt?Falls ihr den Suchkontext vorab tokenisiert, könnte das schwieriger sein
Das Projekt ist wirklich cool
Interessant, dass
C-serwähnt wurdeisearch-forwardwird normalerweise für wörtliche Treffer-Suche mit geringer Latenz verwendetIch frage mich, in welchem Workflow Khoj eine akzeptable Latenz oder einen besseren Nutzen als Ersatz für isearch bieten kann
Gibt es ein Beispiel dafür, wie man es beim Navigieren durch Dokumente einsetzt?
Statt Keywords bietet sie ein Erlebnis, bei dem man in ein Natural-Language-Suchinterface tippt und sofort Suchergebnisse bekommt
Mein Workflow sieht so aus
C-c s sRETn n o 2[1]:
C-c sist an daskhoj-Transient-Menü gebunden[2] https://orgmode.org/manual/Speed-Keys.html