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 !
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.
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 !
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