1 points par GN⁺ 2023-07-31 | 1 commentaires | Partager sur WhatsApp
  • Khoj est une application d’IA personnelle conçue pour amplifier les capacités de l’utilisateur, avec une architecture extensible allant de l’IA personnelle sur appareil à l’IA d’entreprise à l’échelle du cloud
  • Il permet de discuter avec des LLM locaux ou en ligne ; les modèles pris en charge incluent notamment llama3, qwen, gemma, mistral, gpt, claude, gemini et deepseek
  • Il peut obtenir des réponses à partir d’Internet et de documents ; les formats pris en charge comprennent les images, les PDF, Markdown, org-mode, Word, les fichiers Notion, etc.
  • Accessible depuis le navigateur, Obsidian, Emacs, le bureau, le téléphone et Whatsapp, avec prise en charge de la création d’agents disposant de connaissances, personas, modèles de chat et outils personnalisés
  • Prend en charge l’automatisation des recherches répétitives, la livraison de newsletters personnelles et d’alertes intelligentes dans la boîte de réception, l’exploration de documents connexes via une recherche sémantique avancée, la génération d’images, ainsi que les conversations vocales et la lecture des messages
  • Open source et auto-hébergeable, il peut être exécuté en privé sur l’ordinateur de l’utilisateur ou utilisé via l’application cloud
  • La version Enterprise est proposée sous forme de service cloud, on-premise ou solution hybride

1 commentaires

 
GN⁺ 2023-07-31
Avis Hacker News
  • Sur la landing page du site, je ne vois aucune mention de Llama ni de cas d’usage hors ligne ; il semble seulement être question d’une utilisation en ligne via OpenAI.
    Je serais aussi curieux de savoir quelle taille de modèle et quel fine-tuning sont utilisés, et comment vous avez évalué les performances pour ce cas d’usage.
    J’ai un peu utilisé Llama 2 en versions 7B et 13B, et j’ai eu l’impression que ça consommait pas mal de RAM sur une machine grand public, donc le potentiel m’enthousiasme vraiment.
    Je me demande aussi si la recherche repose sur des embeddings et une base vectorielle, avec en plus des filtres de métadonnées comme des commandes de date.

    • Le contenu du site n’est plus à jour ; je vais essayer de le mettre à jour dans la journée.
      Khoj utilise Llama 7B quantifié en 4 bits GGML de TheBloke.
      C’est à peu près le premier modèle de chat hors ligne qui donne des réponses cohérentes aux requêtes utilisateur quand on lui fournit les notes comme contexte, et il est aussi intéressant qu’il soit plus conversationnel que GPT-3.5+.
    • En tant que personne qui ne connaît pas bien les détails des intégrations IA, je me demande toujours si ce genre de projet peut être utilisé en mode entièrement local.
      S’il est garanti qu’aucune donnée personnelle n’est envoyée à un service distant lorsqu’on l’auto-héberge, il serait utile de l’indiquer très clairement comme garantie de confidentialité.
  • En voyant ça, je trouve ça vraiment génial, et je pense que l’exécution locale est le véritable avenir de l’IA.
    Je l’ai lancé sur un petit MacBook Air M2 et il s’est complètement figé.
    Ça m’a rappelé l’époque où un vieux PC infecté par un virus bougeait le curseur 45 secondes après que j’avais déplacé la souris, avec une étrange pointe de nostalgie.
    Je vais devoir revoir mes attentes de performance à la baisse sur cet Air ; c’est la première fois que ça m’arrive.

    • Dans une dizaine d’années, les ordinateurs auront des unités de traitement IA dédiées, et on n’aura plus à craindre de bloquer tout le système parce qu’on discute avec un bot.
    • Je me demande combien de mémoire a ce MacBook.
      Les modèles 7B fonctionnent plutôt bien avec au moins 16 Go de mémoire unifiée, mais j’ai vu des Mac à 8 Go peiner pas mal.
  • Serait-il aussi possible de prendre l’historique web d’une journée et de résumer en notes ce sur quoi j’ai fait des recherches ?
    On se rapproche de plus en plus de l’idéal de l’IA personnelle.
    J’ai hâte : dans quelques années, j’ai l’impression que je pourrai avoir un cerveau numérique rempli de tout ce que je sais.

    • Ce serait assez génial.
      Créer une extension de navigateur qui résume l’historique web quotidien ne semble pas être un si gros chantier, et il existe probablement déjà des choses similaires.
      Indexer tous nos déplacements numériques et les rendre faciles à digérer aurait énormément de valeur.
      J’aimerais que Khoj devienne ça.
    • https://www.rewind.ai
    • Je me suis posé exactement la même question, et ça pourrait résoudre une vraie friction.
      Je me demande s’il existe des outils à recommander pour faire ça.
      Sinon, je serais aussi partant pour trouver quelqu’un avec qui le construire.
  • À quoi sert la télémétrie PostHog ?
    Je ne comprends pas pourquoi la documentation n’en dit rien, ni pourquoi il n’existe pas de méthode claire d’opt-out.

    • Nous l’utilisons pour comprendre les usages.
      Par exemple, pour savoir si les gens utilisent Markdown, org, etc.
      Toutes les données sont collectées de manière entièrement anonymisée, et aucune information identifiable n’est envoyée au serveur de télémétrie.
      Pour désactiver la télémétrie, définissez should-log-telemetry sur false dans khoj.yml.
      Nous avons ajouté à la documentation ce qui est collecté et comment : https://docs.khoj.dev/#/telemetry
    • C’était assez facile à retirer, donc c’est ce que j’ai fini par faire.
      À part ça, le projet fonctionne étonnamment bien.
  • Ça ressemble à un super projet.
    Ce serait vraiment bien de pouvoir indexer un répertoire de PDF, et même d’appliquer de l’OCR aux PDF pour indexer les documents scannés.
    C’est peut-être hors périmètre pour le moment, mais pas plus tard qu’il y a quelques jours, je me disais qu’un tel outil serait utile.

    • Pouvoir rechercher dans des PDF et discuter avec eux serait assez utile.
      Khoj peut indexer des répertoires de PDF pour la recherche et le chat.
      En revanche, pour l’instant, il ne gère pas les PDF scannés sans texte sélectionnable.
      Ce serait bien de pouvoir aussi traiter ces fichiers ; il ne reste qu’à l’implémenter.
      J’espère que ce sera bientôt possible.
    • J’ai longtemps voulu un crawler local qui tourne sur ma machine et classe, organise, tague et déplace automatiquement tous mes fichiers.
      Il crawlerait les PDF, téléchargements, captures d’écran, photos, etc., afficherait une arborescence logique de l’organisation des fichiers, puis permettrait de la modifier avec des instructions du type : « ajoute ici les PDF liés à ce sujet et organise-les par source/auteur, puis déplace les captures d’écran ici par ordre chronologique ».
      J’ai toujours voulu un ordinateur qu’on puisse appeler « ORDINATEUR. ».
      Je dis « ORDINATEUR ! » et il répond : « Monsieur, vous devez utiliser le clavier. » Ah, le clavier, quelle antiquité.
  • On dirait que vous utilisez gpt4all ; je me demande s’il existe une méthode officiellement prise en charge pour changer le modèle d’inférence local.
    Beaucoup d’apps conçues pour les API completion/chat d’OpenAI peuvent fonctionner presque de la même façon en pointant simplement vers l’endpoint fourni par llama-cpp-python [0], tout en utilisant les différents modèles et quantifications pris en charge par llama.cpp.
    Cela permettrait de faire tourner des modèles plus gros sur le matériel de son choix, y compris avec l’accélération Metal sur Apple Silicon ou un GPU NVIDIA, et d’utiliser aussi d’autres proxys comme openrouter.io.
    Personnellement, j’aime bien openrouter.io parce qu’il prend en charge le modèle 100k d’Anthropic.
    [0]: https://github.com/abetlen/llama-cpp-python

    • Le cœur de gpt4all, c’est qu’on peut changer de modèle sans trop de casse.
      Je pense qu’il suffit de remplacer cette ligne https://github.com/khoj-ai/khoj/blob/master/src/khoj/process... par le modèle voulu.
      Il faut construire soi-même l’image locale avec docker-compose, mais ça devrait être relativement simple.
    • Ce n’est pas encore officiellement pris en charge.
      Plusieurs développeurs veulent tester différents modèles, mais nous voulons aller vers quelque chose de facile à utiliser tout en apportant une aide approfondie.
      Comme nos ressources sont limitées, nous réfléchissons encore un peu à ce sur quoi concentrer nos efforts.
  • Ayant commencé à utiliser Obsidian et à expérimenter avec les IA de chat, je trouve ça vraiment excellent

    • J’aimerais bien tester si cela correspond à mon cas d’usage et vous le faire savoir
    • C’est le genre de projet qui donne envie de passer à Obsidian :D
  • Je ne l’ai pas encore essayé, mais ce genre d’outil doit clairement exister
    Sans un GPU suffisamment bon, je ne pense pas que ce soit encore très utilisable sur du matériel grand public, mais je suis convaincu que ce sera possible d’ici quelques années, voire plus tôt
    Le logo est aussi très beau, et j’aime les couleurs
    Pour ce type de cas d’usage, Llama 2 semble assez compétent pour rendre moins attrayant le fait de payer ChatGPT, surtout quand la confidentialité est importante
    Continuez comme ça

    • Llama V2 me semble en passe de devenir assez bon pour remplacer ChatGPT, c’est-à-dire GPT-3.5, dans beaucoup de cas d’usage
  • J’ai utilisé Khoj pendant une journée, et c’est vraiment propre et bien conçu
    Quelques observations

    1. La télémétrie est activée par défaut et peut inclure des requêtes API et de chat
      J’ai laissé une issue et une proposition à ce sujet ici : https://github.com/khoj-ai/khoj/issues/389
    2. Ce serait bien de pouvoir le configurer depuis l’UI plutôt que d’intégrer la configuration YAML dans l’image du conteneur
      J’ai aussi ajouté une note dans l’issue GitHub ci-dessus
    3. Il n’est pas clair si l’on peut apporter son propre modèle
      Par exemple, je me demande s’il est possible de configurer un modèle huggingface/gpt4all, et si oui, s’il est téléchargé automatiquement à partir de son nom, ou s’il faut placer un .bin et du YAML quelque part dans un volume
    4. L’accélération GPU/APU AMD, c’est-à-dire la prise en charge de CLBLAS, serait vraiment appréciable, et j’ai aussi ouvert une demande de fonctionnalité pour cela : https://github.com/khoj-ai/khoj/issues/390
    • Khoj ne collecte pas les termes de recherche ni les requêtes de chat
      Comme indiqué dans la documentation, vous pouvez consulter directement le serveur de télémétrie[1]
      Si vous voyez quelque chose d’étrange, dites-le-moi et je publierai immédiatement un hotfix
      Toutes les métadonnées de télémétrie sont également consultables ici[2]
      [1]: https://github.com/khoj-ai/khoj/tree/master/src/telemetry
      [2]: https://github.com/khoj-ai/khoj/blob/master/src/khoj/routers...
      La configuration docker-compose est un peu particulière ; consultez l’issue correspondante pour plus de détails
      Merci aussi pour les remarques sur l’intégration GPU ; pour clarifier, nous utilisons l’optimisation GPU pour l’indexation, mais pas encore pour le chat local basé sur Llama
      Nous travaillons à faire fonctionner cette partie
    • Serait-il possible de prendre en charge une URL personnalisée pour les modèles locaux, comme celle qu’on obtient en lançant ./server avec ggml ?
      Si le contexte de recherche est pré-tokenisé, ce sera peut-être plus difficile
      Le projet est vraiment super
  • C’est intéressant que C-s soit mentionné
    isearch-forward est généralement utilisé pour une recherche de correspondance littérale à faible latence
    Je me demande dans quels workflows Khoj pourrait offrir une latence acceptable ou une meilleure utilité pour être considéré comme un remplaçant d’isearch
    Auriez-vous un exemple de la façon dont vous l’utilisez pour parcourir des documents ?

    • La recherche Khoj remplit presque exactement ce rôle
      Elle offre une expérience de recherche dès la saisie via une interface de recherche en langage naturel, plutôt que par mots-clés
      Mon workflow est le suivant
      1. Rechercher avec Khoj Search[1] : C-c s s RET
      2. Sauter vers l’élément pertinent avec une speed key[2] : n n o 2
        [1]: C-c s est lié au menu transient khoj
        [2] https://orgmode.org/manual/Speed-Keys.html