Erweitern Sie Ihre RAG-Anwendung mit Web-Suchfunktionen!

王林
Freigeben: 2024-09-10 06:00:36
Original
1154 Leute haben es durchsucht

Enhance Your RAG Application With Web Searching Capability!

Einführung

Beim Erstellen unterhaltsamer Projekte mit Retrieval-Augmented Generation (RAG)-Anwendungen stoßen wir häufig 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. Lasst 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 festzulegen

3 -) Generieren Sie den geheimen Schlüssel

<Linux>

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

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

<Windows>
$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
Nach dem Login kopieren

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: "<secret-key>"  # change this!
  limiter: false
  image_proxy: true
ui:
  static_use_hash: true
redis:
  url: redis://redis:6379/0

search:
    formats:
        - html
        - json
Nach dem Login kopieren

5-) Führen Sie die SearXNG-Instanz aus

Docker-Komposition

Ü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
Nach dem Login kopieren

2 -) Langchain installieren

pip install langchain langchain-community
Nach dem Login kopieren

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

Nach dem Login kopieren

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!

Das obige ist der detaillierte Inhalt vonErweitern Sie Ihre RAG-Anwendung mit Web-Suchfunktionen!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage