1 Punkte von GN⁺ 2023-07-31 | 1 Kommentare | Auf WhatsApp teilen
  • 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

 
GN⁺ 2023-07-31
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.

    • Die Inhalte auf der Website sind veraltet; ich versuche, sie im Laufe des Tages zu aktualisieren.
      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+.
    • Aus Sicht von jemandem, der die Details von AI-Integrationen nicht gut kennt, frage ich mich bei solchen Projekten immer, ob man sie in einem rein lokalen Modus nutzen kann.
      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.

    • In etwa 10 Jahren werden Computer wohl dedizierte AI-Beschleuniger haben, sodass man sich keine Sorgen mehr machen muss, dass das System einfriert, nur weil man mit einem Bot spricht.
    • Ich frage mich, wie viel Arbeitsspeicher das MacBook hat.
      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ß.

    • Das wäre ziemlich cool.
      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.
    • https://www.rewind.ai
    • Mir kam genau dieselbe Frage, und das könnte ein echtes Problem lösen.
      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.

    • Wir nutzen sie, um die Nutzung besser zu verstehen.
      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.yml den Wert should-log-telemetry auf false setzen.
      Wir haben die erfassten Daten und die Methode in die Dokumentation aufgenommen: https://docs.khoj.dev/#/telemetry
    • Es war ziemlich einfach zu entfernen, also habe ich es am Ende getan.
      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.

    • PDFs suchen und mit ihnen chatten zu können, wäre ziemlich nützlich.
      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.
    • Ich wünsche mir schon länger einen lokalen Crawler, der auf meiner Maschine läuft und alle Dateien automatisch klassifiziert, organisiert, taggt und verschiebt.
      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

    • Der Kern von gpt4all ist, dass man Modelle ohne größere Brüche austauschen kann.
      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-compose bauen, aber es sollte relativ unkompliziert sein.
    • Offiziellen Support gibt es dafür noch nicht.
      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 würde mich freuen, wenn du testest, ob es zu meinem Use Case passt, und mir Bescheid gibst
    • Das ist ein Projekt, das mich dazu bringt, zu Obsidian wechseln zu wollen :D
  • 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

    • Llama V2 dürfte für viele Use Cases gut genug werden, um ChatGPT, also GPT-3.5, zu ersetzen
  • Ich habe Khoj einen Tag lang genutzt, und es ist wirklich aufgeräumt und gut gemacht
    Ein paar Beobachtungen

    1. Telemetrie ist standardmäßig aktiviert und kann API- sowie Chat-Anfragen enthalten
      Dazu habe ich hier ein Issue samt Vorschlag hinterlassen: https://github.com/khoj-ai/khoj/issues/389
    2. Es wäre gut, die Konfiguration in der UI vornehmen zu können, statt die YAML-Konfiguration in das Container-Image einzubacken
      Ich habe dem oben genannten GitHub-Issue auch eine Notiz hinzugefügt
    3. Es ist nicht klar, ob man eigene Modelle einbringen kann
      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 .bin und YAML irgendwo in ein Volume legen muss
    4. AMD-GPU/APU-Beschleunigung, also CLBLAS-Support, wäre wirklich gut; auch diesen Feature Request habe ich als Issue eingereicht: https://github.com/khoj-ai/khoj/issues/390
    • Khoj sammelt keine Suchbegriffe oder Chat-Anfragen
      Wie 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 Issue
      Danke 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
    • Könnte man benutzerdefinierte URLs für lokale Modelle unterstützen, so wie man sie bekommt, wenn man in ggml ./server ausführt?
      Falls ihr den Suchkontext vorab tokenisiert, könnte das schwieriger sein
      Das Projekt ist wirklich cool
  • Interessant, dass C-s erwähnt wurde
    isearch-forward wird normalerweise für wörtliche Treffer-Suche mit geringer Latenz verwendet
    Ich 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?

    • Die Khoj-Suche erfüllt ziemlich genau diese Rolle
      Statt Keywords bietet sie ein Erlebnis, bei dem man in ein Natural-Language-Suchinterface tippt und sofort Suchergebnisse bekommt
      Mein Workflow sieht so aus
      1. Mit Khoj-Suche[1] suchen: C-c s s RET
      2. Per Speed Key zum relevanten Eintrag springen[2]: n n o 2
        [1]: C-c s ist an das khoj-Transient-Menü gebunden
        [2] https://orgmode.org/manual/Speed-Keys.html