Un robot Web évolutif, ici une liste de la fonctionnalité de cet robot:
En enregistrant les représentations dans une base de données vectorielle, vous pouvez récupérer des pages similaires en fonction de la proximité de deux vecteurs. Ceci est essentiel pour un navigateur pour récupérer les résultats les plus pertinents.
Exécutez le Crawler avec le terminal:
$ 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 Hébergez l'API avec uvicorn et FastAPI .
uvicorn api_app:app --host 0.0.0.0 --port 80 Jetez un œil à l'exemple de start_api_and_head_node.sh . Notez que les nœuds de tête de rayon doivent être initialisés en premier.
Pour notre cas d'utilisation, nous utilisons simplement le modèle Bert implémenté en étreignant pour extraire des intégres du texte Web. Plus précisément, nous utilisons Bert-Base-Scaleslé. Notez que le code est agnostique et que les nouveaux modèles pourraient être enregistrés et ajoutés avec quelques lignes de code, jetez un œil à llm/best.py
Nous utilisons Milvus comme principal logiciel administrateur de la base de données. Nous utilisons une base de données de style vecteur en raison de sa capacité héritée de recherche et enregistre des entrées en fonction des représentations vectorielles (intégres).
Démarrez votre serveur Milvus autonome comme suit, je suggère d'utiliser un logiciel multiplexeur tel que tmux :
tmux new -s milvus
milvus-server Jetez un œil sous scripts/ pour voir certaines des demandes de base de Milvus.
Vous pouvez également utiliser le modèle officiel docker compose :
docker compose --file milvus-docker-compose.yml up -d Nous utilisons Ray, est un excellent cadre Python pour exécuter un traitement distribué et parallèle. Ray suit le paradigme du maître-travailleur, où un nœud head demandera des tâches à exécuter aux travailleurs connectés.
ray start --head import ray
# Connect to the head
ray . init ( "auto" )Dans le cas où vous souhaitez arrêter le nœud Ray:
ray stopOu vérifier le statut:
ray statusray startLe nœud de travailleur n'a pas besoin d'avoir l'implémentation du code car le nœud de tête sérialisera et soumettra les arguments et la mise en œuvre aux travailleurs.
L'implémentation actuelle est un POC. De nombreuses améliorations peuvent être apportées:
Tous les problèmes et PRS sont les bienvenus ?.