スケーラブルなWebクローラー、ここにこのクローラーの機能のリスト:
表現をベクトルデータベースに保存することにより、2つのベクトルがどれだけ近いかに応じて同様のページを取得できます。これは、ブラウザが最も関連性の高い結果を取得するために重要です。
ターミナルでクローラーを実行します:
$ 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 uvicornとFastAPIでAPIをホストします。
uvicorn api_app:app --host 0.0.0.0 --port 80 start_api_and_head_node.shの例をご覧ください。光線ヘッドノードを最初に初期化する必要があることに注意してください。
ユースケースでは、Huggingfaceによって実装されたBertモデルを使用して、Webテキストから埋め込みを抽出します。より正確には、Bert-Base-Uncasedを使用します。コードは不可知論的であり、新しいモデルを登録してコードの数行で追加できることに注意してくださいllm/best.pyをご覧ください。
Milvusをメインデータベース管理者ソフトウェアとして使用しています。ベクトル表現(埋め込み)に基づいてエントリを検索して保存する能力が継承されているため、ベクタースタイルのデータベースを使用します。
次のようにスタンドアロンMilvusサーバーを起動しますtmuxなどのマルチプレクサソフトウェアを使用することをお勧めします。
tmux new -s milvus
milvus-server Milvusへの基本的なリクエストのいくつかを確認するにはscripts/の下をご覧ください。
公式docker composeテンプレートを使用することもできます。
docker compose --file milvus-docker-compose.yml up -dRayを使用して、分散処理と並列処理を実行するための優れたPythonフレームワークです。レイはマスターワーカーのパラダイムに従い、 headノードが接続されたワーカーにタスクを実行するように要求します。
ray start --head import ray
# Connect to the head
ray . init ( "auto" )レイノードを停止したい場合に備えてください:
ray stopまたはステータスの確認:
ray statusray startヘッドノードは、議論と実装を労働者にシリアル化して送信するため、ワーカーノードはコード実装を使用する必要はありません。
現在の実装はPOCです。多くの改善を行うことができます:
すべての問題とPRが大歓迎ですか?