2 points par GN⁺ 2024-04-04 | 1 commentaires | Partager sur WhatsApp

Qu’est-ce que LLocalSearch ?

  • Un moteur de recherche entièrement exécuté en local, qui utilise des agents LLM.
  • Lorsqu’un utilisateur pose une question, le système cherche une réponse à l’aide d’une chaîne LLM.
  • L’utilisateur peut voir la progression de l’agent ainsi que la réponse finale.
  • Aucune clé API OpenAI ou Google n’est nécessaire.
  • La fonctionnalité de questions de suivi a maintenant été ajoutée : demo.mp4

Fonctionnalités

  • 🕵️ Fonctionne entièrement en local, donc aucune clé API n’est nécessaire.
  • 💸 Fonctionne sur du matériel LLM « modeste » (la vidéo de démonstration utilise un modèle 7b).
  • 🤓 Fournit des journaux de progression pour mieux comprendre le processus de recherche.
  • 🤔 Permet les questions de suivi.
  • 📱 Interface adaptée au mobile.
  • 🚀 Déploiement rapide et facile avec Docker Compose.
  • 🌐 Interface web facilement accessible depuis n’importe quel appareil.
  • 💮 Interface artisanale prenant en charge les modes clair et sombre.

État

  • Ce projet en est encore à ses débuts. Il peut contenir certains bugs.

Comment ça fonctionne

  • Pour obtenir les informations les plus récentes, consultez la documentation infra.

Auto-hébergement & développement

Prérequis

  • Un serveur Ollama en cours d’exécution, accessible depuis les conteneurs.
  • Le GPU n’est pas obligatoire, mais recommandé.
  • Docker Compose

Exécuter la dernière release

  • Recommandé si vous n’avez pas l’intention de développer ce projet.
    git clone https://github.com/nilsherzig/LLocalSearch.git
    cd ./LLocalSearch
    # 🔴 Vérifiez les variables d’environnement dans le fichier compose et ajoutez le host:port du serveur ollama
    docker-compose up 🎉
    
  • Vous pouvez maintenant ouvrir l’interface web par défaut sur http://localhost:3000.
  • Par défaut, rien d’autre n’est exposé.

Exécuter la version git actuelle

  • Vous pourrez utiliser des fonctionnalités plus récentes, mais avec potentiellement moins de stabilité.
    git clone https://github.com/nilsherzig/LLocalsearch.git
    # 1. Vérifiez impérativement les variables d’environnement dans `docker-compose.dev.yaml`.
    # 2. Vérifiez bien que vous avez consulté le fichier compose de dev, et non le fichier compose standard.
    # 3. Construisez les conteneurs et démarrez les services
    make dev
    
  • Si make n’est pas installé, vous pouvez exécuter manuellement les commandes du Makefile.
  • Vous pouvez maintenant accéder au frontend sur http://localhost:3000.

L’avis de GN⁺

  • LLocalSearch mérite l’attention comme alternative moderne aux moteurs de recherche axée sur la protection de la vie privée des utilisateurs. En offrant des fonctions de recherche sans envoyer les données des utilisateurs vers des serveurs externes, il peut répondre aux inquiétudes liées à la confidentialité.
  • Ce projet offre aussi une opportunité attrayante aux développeurs de la communauté open source. En y contribuant, ils peuvent mieux comprendre les technologies de moteur de recherche et renforcer leur portfolio.
  • Mais comme il s’agit d’un projet encore à un stade précoce, il peut y avoir des bugs et des problèmes de stabilité. Cela signifie qu’il faut rester prudent si l’on envisage une utilisation en environnement réel.
  • Si LLocalSearch évolue avec succès, il pourrait contribuer à réduire la dépendance aux grands moteurs de recherche existants et à apporter davantage de diversité au marché des moteurs de recherche.
  • D’un point de vue technique, la recherche utilisant des agents LLM est très innovante, mais pour l’exploiter efficacement, il faut disposer de ressources de calcul suffisantes et de connaissances techniques.

1 commentaires

 
GN⁺ 2024-04-04
Commentaire Hacker News
  • Résumé des commentaires Hacker News :
    • 🤖 Combinaison des LLMs et des moteurs de recherche : explication d’un système dans lequel des LLMs peuvent accéder à un moteur de recherche et interroger une base de données vectorielle. Les premiers n résultats d’une requête de recherche initiée par le LLM sont scrapés puis stockés en petits chunks dans la base vectorielle, que le LLM peut ensuite interroger pour récupérer les passages pertinents. Ce n’est pas aussi exhaustif qu’un LLM avec 128k de contexte qui résume tout, mais sur du matériel local c’est bien plus rapide et cela consomme moins de ressources. La démo sur GitHub fonctionne sur un GPU grand public classique (amd rx 6700xt).

    • 👍 Éloges sur l’architecture : l’auteur prévoit de l’utiliser avec des LLMs existants et se réjouit de voir que cela fonctionne aussi en local. Il remercie pour le partage et dit apprécier l’architecture.

    • Question sur le lien avec Perplexity : remarque sur le fait qu’on ne voit pas bien le rapport avec Perplexity, et qu’il faudrait plutôt faire référence au modèle de base utilisé.

    • 🌟 Fonctionnalité particulière des modèles locaux : l’auteur dit n’avoir jamais vu un modèle local appeler des modules spécialisés, et juge que son 7b open-hermes local est très bon.

    • 🚀 Possibilité d’intégration avec un moteur de recherche interne d’entreprise : même sans l’avoir encore testé, cela paraît très prometteur, et potentiellement très utile en le connectant à un moteur de recherche interne d’entreprise. L’auteur se dit heureux de voir davantage de produits sans clé d’API connectés à des LLMs locaux.

    • 🛠️ Question sur le processus de décision dans l’infrastructure : question sur la manière dont les blocs « besoin d’utiliser un outil » et « réponse trouvée » sont déterminés dans l’infrastructure. D’après la démo, le retour des résultats prend du temps, et l’auteur demande quelle étape est la plus coûteuse : la recherche, le vector store, ou l’interrogation de la base de données vectorielle.

    • 🕵️ Fonctionnement du moteur de recherche local : même si c’est présenté comme un « moteur de recherche qui tourne en local », question sur la manière dont il découvre, indexe les sites et les pages.

    • 🤫 Le “secret” de Perplexity : avis selon lequel Perplexity ne fait pas grand-chose de plus que d’utiliser des modèles existants.

    • 🏭 Perplexity comme concurrent des chatbots : Perplexity est perçu comme un concurrent des chatbots.

    • Suggestion d’intégration avec Plandex : suggestion selon laquelle le relier à Plandex, partagé aujourd’hui, pourrait donner un outil formidable pour collaborer avec l’IA sur du code sans quitter son ordinateur.

Contexte : les LLMs (Large Language Models) sont des grands modèles de langage utilisés en traitement du langage naturel, et une base de données vectorielle stocke les données sous forme de vecteurs afin de permettre une recherche rapide. Perplexity est aussi une métrique d’évaluation des performances des modèles en traitement du langage naturel, mais ici le terme semble désigner un produit ou un service spécifique.