"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Améliorez votre application RAG avec la capacité de recherche sur le Web !

Améliorez votre application RAG avec la capacité de recherche sur le Web !

Publié le 2024-11-08
Parcourir:506

Enhance Your RAG Application With Web Searching Capability!

Introduction

Lors de la création de projets amusants avec des applications de génération augmentée par récupération (RAG), nous sommes souvent confrontés à des limitations telles que des restrictions de navigation, ce qui rend difficile l'obtention des dernières informations ou des données actuelles, comme les mises à jour météo (j'espère quelque chose de plus amusant). Pour résoudre ce problème, nous pouvons équiper notre application RAG d’outils de recherche sur Internet. Allons-y !

 Notre banc d'outils

  • LangChain (Framework pour la création d'applications avec de grands modèles de langage)
  • SearXNG (métamoteur de recherche gratuit)
  • CPython (un wrapper en langage C :> )
  • Docker (un homme avec du pain frais)

Installation

Nous commençons d'abord par l'installation de SearXNG.

1 -) Obtenez SearXNG-docker

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

2 -) Modifiez le fichier .env pour définir le nom d'hôte et un e-mail

3 -) Générer la clé secrète



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 -) Mettez à jour le searxng/settings.yml pour activer les formats de recherche disponibles et désactivez le limiteur pour notre instance 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-) Exécuter l'instance SearXNG

docker composer

Vérifiez le déploiement de SearXNG dans Docker. Si tout semble bon, vous êtes prêt à continuer.

 Application de démonstration

1 -) Créer un environnement virtuel et activer

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

2 -) Installer Langchain

pip install langchain langchain-community

3 -) Créer 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"],
                                })

Et voilà ! Votre application RAG dispose désormais de fonctionnalités de recherche. Ce guide n'introduit rien de nouveau mais vise à rassembler les étapes permettant d'ajouter une fonctionnalité de recherche Web à votre application RAG. J'espère que ça aide !

Déclaration de sortie Cet article est reproduit sur : https://dev.to/iamnotagentleman/enhance-your-rag-application-with-web-searching-capability-lnn?1 En cas de violation, veuillez contacter [email protected] pour supprimer il
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3