"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¡Mejore su aplicación RAG con la capacidad de búsqueda web!

¡Mejore su aplicación RAG con la capacidad de búsqueda web!

Publicado el 2024-11-08
Navegar:734

Enhance Your RAG Application With Web Searching Capability!

Introducción

Al crear proyectos divertidos con aplicaciones de recuperación de generación aumentada (RAG), a menudo nos enfrentamos a limitaciones como restricciones de navegación, lo que dificulta obtener la información más reciente o los datos actuales, como actualizaciones del clima (espero algo más divertido). Para solucionar esto, podemos equipar nuestra aplicación RAG con herramientas para buscar en Internet. ¡Vamos a sumergirnos!

 Nuestro banco de herramientas

  • LangChain (Marco para crear aplicaciones con modelos de lenguaje grandes)
  • SearXNG (metabuscador gratuito)
  • CPython (un contenedor de lenguaje C :> )
  • Docker (un hombre con pan fresco)

Configuración

Primero comenzamos con la instalación de SearXNG.

1 -) Obtener SearXNG-docker

clon de git https://github.com/searxng/searxng-docker.git

2 -) Edite el archivo .env para configurar el nombre de host y un correo electrónico

3 -) Generar la clave secreta



sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml


sed -i"" -e "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml 


$randomBytes = New-Object byte[] 32
(New-Object Security.Cryptography.RNGCryptoServiceProvider).GetBytes($randomBytes)
$secretKey = -join ($randomBytes | ForEach-Object { "{0:x2}" -f $_ })
(Get-Content searxng/settings.yml) -replace 'ultrasecretkey', $secretKey | Set-Content searxng/settings.yml

4 -) Actualice searchxng/settings.yml para habilitar los formatos de búsqueda disponibles y deshabilitar el limitador para nuestra instancia de LangChain:

use_default_settings: true
server:
  # base_url is defined in the SEARXNG_BASE_URL environment variable, see .env and docker-compose.yml
  secret_key: ""  # change this!
  limiter: false
  image_proxy: true
ui:
  static_use_hash: true
redis:
  url: redis://redis:6379/0

search:
    formats:
        - html
        - json

5-) Ejecutar instancia SearXNG

la ventana acoplable compone

Verifique la implementación de SearXNG en Docker. Si todo se ve bien, estás listo para continuar.

 Aplicación de demostración

1 -) Crear un entorno virtual y activarlo

python3 -m venv .venv
source .venv/bin/activate

2 -) Instalar Langchain

pip install langchain langchain-community

3 -) Crear main.py

## Simple Get Results
from langchain_community.utilities import SearxSearchWrapper
import pprint

s = SearxSearchWrapper(searx_host="http://localhost:8080",)
result = s.results("What is RAG?", num_results=10, engines=["google"])
pprint.pprint(result)

## Github Tool

from langchain_community.tools.searx_search.tool import SearxSearchResults

wrapper = SearxSearchWrapper(searx_host="**")
github_tool = SearxSearchResults(name="Github", wrapper=wrapper,
                            kwargs = {
                                "engines": ["github"],
                                })

¡Y ahí lo tienes! Su aplicación RAG ahora tiene capacidades de búsqueda. Esta guía no presenta nada nuevo, pero tiene como objetivo reunir los pasos para agregar la funcionalidad de búsqueda web a su aplicación RAG. ¡Espero que te ayude!

Declaración de liberación Este artículo se reproduce en: https://dev.to/iamnotagentleman/enhance-your-rag-application-with-web-searching-capability-lnn?1 Si hay alguna infracción, comuníquese con [email protected] para eliminar él
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3