2 puntos por GN⁺ 2024-04-04 | 1 comentarios | Compartir por WhatsApp

Qué es LLocalSearch

  • Un motor de búsqueda que opera completamente de forma local y usa agentes LLM.
  • Cuando el usuario hace una pregunta, el sistema encuentra la respuesta usando una cadena de LLM.
  • El usuario puede ver el progreso del agente y la respuesta final.
  • No se necesitan claves API de OpenAI ni de Google.
  • Ahora se agregó la función de preguntas de seguimiento: demo.mp4

Características

  • 🕵️ Funciona completamente en local, así que no se necesitan claves API.
  • 💸 Funciona en hardware LLM de "bajos recursos" (el video de demostración usa un modelo 7b).
  • 🤓 Proporciona registros de progreso para entender mejor el proceso de búsqueda.
  • 🤔 Permite preguntas de seguimiento.
  • 📱 Interfaz amigable para móviles.
  • 🚀 Implementación rápida y sencilla con Docker Compose.
  • 🌐 Interfaz web fácil de acceder desde cualquier dispositivo.
  • 💮 UI hecha a mano con soporte para modo claro y oscuro.

Estado

  • Este proyecto todavía está en una etapa temprana. Puede haber algunos bugs.

Cómo funciona

  • Para obtener la información más actualizada, consulta la documentación de infra.

Autoalojamiento y desarrollo

Requisitos

  • Un servidor Ollama en ejecución accesible desde el contenedor.
  • La GPU no es obligatoria, pero sí recomendada.
  • Docker Compose

Ejecutar la última versión

  • Recomendado si no tienes intención de desarrollar este proyecto.
    git clone https://github.com/nilsherzig/LLocalSearch.git
    cd ./LLocalSearch
    # 🔴 revisa las variables de entorno dentro del archivo compose y agrega el host:port del servidor ollama
    docker-compose up 🎉
    
  • Ahora puedes abrir la interfaz web en http://localhost:3000 de forma predeterminada.
  • De forma predeterminada no se expone nada más.

Ejecutar la versión actual de git

  • Puedes usar funciones más nuevas, pero puede ser menos estable.
    git clone https://github.com/nilsherzig/LLocalsearch.git
    # 1. Asegúrate de revisar las variables de entorno dentro de `docker-compose.dev.yaml`.
    # 2. Verifica que revisaste el archivo dev compose y no el archivo compose normal.
    # 3. Compila los contenedores e inicia los servicios
    make dev
    
  • Si no tienes make instalado, puedes ejecutar manualmente los comandos del Makefile.
  • Ahora puedes acceder al frontend en http://localhost:3000.

Opinión de GN⁺

  • LLocalSearch destaca como una alternativa moderna de motor de búsqueda que prioriza la privacidad del usuario. Al ofrecer funciones de búsqueda sin enviar los datos del usuario a servidores externos, puede aliviar las preocupaciones sobre privacidad.
  • Este proyecto ofrece una oportunidad atractiva para desarrolladores dentro de la comunidad open source. Al contribuir a este proyecto, pueden profundizar su comprensión de la tecnología de motores de búsqueda y fortalecer su portafolio.
  • Sin embargo, como es un proyecto en etapa temprana, puede tener bugs y problemas de estabilidad. Esto significa que se debe actuar con cautela al considerar su uso en entornos reales.
  • Si LLocalSearch evoluciona con éxito, podría ayudar a reducir la dependencia de los grandes motores de búsqueda existentes y aportar más diversidad al mercado de buscadores.
  • Desde el punto de vista técnico, la búsqueda con agentes LLM es muy innovadora, pero para aprovecharla de manera efectiva se necesitan suficientes recursos de cómputo y conocimientos técnicos.

1 comentarios

 
GN⁺ 2024-04-04
Comentarios de Hacker News
  • Resumen de comentarios de Hacker News:
    • 🤖 Combinación de LLMs y motores de búsqueda: Se explica un sistema en el que los LLMs pueden acceder a un motor de búsqueda y consultar una base de datos vectorial. Los resultados principales de una consulta de búsqueda iniciada por el LLM se extraen y se guardan en pequeños fragmentos dentro de la base de datos vectorial, y luego el LLM puede consultar esa base para obtener fragmentos relevantes. No es tan completo como hacer que un LLM con contexto de 128k lo resuma todo, pero en hardware local es mucho más rápido y usa menos recursos. La demo en GitHub corre en una GPU de consumo común (amd rx 6700xt).

    • 👍 Elogios a la arquitectura: Planea usarlo junto con LLMs existentes y le alegra ver que también funciona en local. Agradece que lo hayan compartido y dice que le gusta la arquitectura.

    • Pregunta sobre su relación con Perplexity: Señala que no queda claro qué relación tiene este sistema con Perplexity y que, en su lugar, haría falta una referencia al modelo base utilizado.

    • 🌟 Funciones especiales del modelo local: Comenta que nunca había visto a un modelo local invocar módulos especiales, y evalúa muy bien al open-hermes 7b local que usa personalmente.

    • 🚀 Posible integración con motores de búsqueda internos empresariales: Aún no lo ha ejecutado, pero parece muy prometedor y cree que sería muy útil conectarlo a un motor de búsqueda interno de una empresa. Le alegra ver más productos sin API key conectados a LLMs locales.

    • 🛠️ Pregunta sobre el proceso de decisión dentro de la infraestructura: Pregunta cómo se decide dentro de la infraestructura entre los bloques "se requiere uso de herramientas" y "respuesta encontrada". También menciona que, según la demo, devolver resultados toma tiempo, y pregunta en qué etapa se consume más tiempo: búsqueda, almacenamiento vectorial o consulta a la base de datos vectorial.

    • 🕵️ Cómo funciona el motor de búsqueda local: Aunque se dice que es un "motor de búsqueda que corre en local", plantea la duda de cómo encuentra e indexa sitios y páginas.

    • 🤫 El secreto de Perplexity: Opina que Perplexity no ha hecho gran cosa aparte de usar modelos ya existentes.

    • 🏭 Perplexity como competidor de chatbot: Dice que Perplexity parece ser un competidor de chatbots.

    • Propuesta de integración con Plandex: Sugiere que sería increíble conectarlo con Plandex, compartido hoy, para crear una herramienta que permita colaborar con IA mediante código sin salir de la computadora.

Conocimiento de contexto: Los LLMs (Large Language Models) son modelos de lenguaje a gran escala usados en procesamiento de lenguaje natural, y una base de datos vectorial es una base de datos que almacena datos en forma de vectores para permitir búsquedas rápidas. Perplexity también es una métrica para evaluar el rendimiento de modelos en procesamiento de lenguaje natural, pero aquí parece referirse a un producto o servicio específico.