„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Erweitern Sie Ihre RAG-Anwendung mit Web-Suchfunktionen!

Erweitern Sie Ihre RAG-Anwendung mit Web-Suchfunktionen!

Veröffentlicht am 08.11.2024
Durchsuche:359

Enhance Your RAG Application With Web Searching Capability!

Einführung

Beim Erstellen unterhaltsamer Projekte mit Retrieval-Augmented Generation (RAG)-Anwendungen stoßen wir oft auf Einschränkungen wie Browsing-Einschränkungen, die es schwierig machen, die neuesten Informationen oder aktuellen Daten wie Wetteraktualisierungen abzurufen (ich hoffe auf etwas Lustigeres). Um dieses Problem zu lösen, können wir unsere RAG-Anwendung mit Tools zum Durchsuchen des Internets ausstatten. Lass uns eintauchen!

 Unsere Werkzeugbank

  • LangChain (Framework zum Erstellen von Anwendungen mit großen Sprachmodellen)
  • SearXNG (kostenlose Metasuchmaschine)
  • CPython (ein C-Sprach-Wrapper :> )
  • Docker (ein Mann mit kühlem Brot)

Aufstellen

Zuerst beginnen wir mit der SearXNG-Installation.

1 -) Holen Sie sich SearXNG-Docker

Git-Klon https://github.com/searxng/searxng-docker.git

2 -) Bearbeiten Sie die .env-Datei, um den Hostnamen und eine E-Mail-Adresse festzulegen

3 -) Generieren Sie den geheimen Schlüssel



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 -) Aktualisieren Sie die Datei „searxng/settings.yml“, um verfügbare Suchformate zu aktivieren und den Begrenzer für unsere LangChain-Instanz zu deaktivieren:

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-) SearXNG-Instanz ausführen

docker compose up

Überprüfen Sie die SearXNG-Bereitstellung in Docker. Wenn alles gut aussieht, können Sie fortfahren.

 Demo-Anwendung

1 -) Erstellen Sie eine virtuelle Umgebung und aktivieren Sie

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

2 -) Langchain installieren

pip install langchain langchain-community

3 -) Main.py erstellen

## 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"],
                                })

Und da haben Sie es! Ihre RAG-Anwendung verfügt jetzt über Suchfunktionen. Dieser Leitfaden führt nichts Neues ein, sondern soll die Schritte zum Hinzufügen von Websuchfunktionen zu Ihrer RAG-Anwendung zusammenfassen. Ich hoffe es hilft!

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/iamnotagentleman/enhance-your-rag-application-with-web-searching-capability-lnn?1 Bei Verstößen wenden Sie sich zum Löschen bitte an [email protected] Es
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3