Heim >Backend-Entwicklung >Python-Tutorial >Erweitern Sie Ihre RAG-Anwendung mit Web-Suchfunktionen!

Erweitern Sie Ihre RAG-Anwendung mit Web-Suchfunktionen!

王林
王林Original
2024-09-10 06:00:361159Durchsuche

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

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

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

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!

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!

Stellungnahme:
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