Ein skalierbarer Webcrawler, hier eine Liste der Funktionen dieses Crawlers:
Durch das Speichern der Darstellungen in einer Vektor -Datenbank können Sie ähnliche Seiten gemäß der engen zwei Vektoren abrufen. Dies ist für einen Browser von entscheidender Bedeutung, um die relevantesten Ergebnisse abzurufen.
Führen Sie den Crawler mit dem Terminal aus:
$ python cli_crawl.py --help
options:
-h, --help show this help message and exit
-u INITIAL_URLS [INITIAL_URLS ...], --initial-urls INITIAL_URLS [INITIAL_URLS ...]
-lm LANGUAGE_MODEL, --language-model LANGUAGE_MODEL
-m MAX_DEPTH, --max-depth MAX_DEPTH Gastgeber der API mit uvicorn und FastAPI .
uvicorn api_app:app --host 0.0.0.0 --port 80 Schauen Sie sich das Beispiel in start_api_and_head_node.sh . Beachten Sie, dass die Ray -Kopfknoten zuerst initialisiert werden müssen.
Für unseren Anwendungsfall verwenden wir einfach Bert -Modell, das implementiert ist, indem wir Einbettungen aus dem Webtext extrahieren. Genauer gesagt verwenden wir Bert-Base-Unbekannte. Beachten Sie, dass der Code agnostisch ist und neue Modelle registriert und mit wenigen Codezeilen hinzugefügt werden können. Schauen Sie sich llm/best.py an.
Wir verwenden Milvus als unsere Hauptdatenbankadministratorsoftware. Wir verwenden eine Datenbank im Vektorstil, da sie die Erbfähigkeit des Suchens und Speicherns von Einträgen auf der Grundlage von Vektordarstellungen (Einbettungen) basieren.
Starten Sie Ihren eigenständigen Milvus -Server wie folgt. Ich schlage vor, eine Multiplexer -Software wie tmux zu verwenden:
tmux new -s milvus
milvus-server Schauen Sie sich einen Blick unter scripts/ um einige der grundlegenden Anfragen nach Milvus zu sehen.
Sie können auch die offizielle docker compose -Vorlage verwenden:
docker compose --file milvus-docker-compose.yml up -d Wir verwenden Ray, ist ein großartiges Python -Framework, um eine verteilte und parallele Verarbeitung auszuführen. Ray folgt dem Master-Worker-Paradigma, bei dem ein head die Aufgaben anfordern, an die angeschlossenen Arbeiter ausgeführt zu werden.
ray start --head import ray
# Connect to the head
ray . init ( "auto" )Falls Sie den Ray -Knoten stoppen möchten:
ray stopOder den Status überprüfen:
ray statusray startDer Arbeiterknoten muss nicht die Code -Implementierung haben, da der Hauptknoten die Argumente und Implementierung an die Arbeitnehmer serialisieren und übermittelt.
Die aktuelle Implementierung ist ein POC. Viele Verbesserungen können vorgenommen werden:
Alle Ausgaben und PRs sind willkommen?