Mise en œuvre de l'environnement de Webshop et des agents de recherche pour le document:
Webshop: vers une interaction Web réelle évolutive avec des agents linguistiques ancrés
Shunyu Yao *, Howard Chen *, John Yang, Karthik Narasimhan

Ce référentiel contient du code pour la reproduction des résultats. Si vous trouvez ce travail utile dans vos recherches, veuillez citer:
@inproceedings{yao2022webshop,
bibtex_show = {true},
title = {WebShop: Towards Scalable Real-World Web Interaction with Grounded Language Agents},
author = {Yao, Shunyu and Chen, Howard and Yang, John and Narasimhan, Karthik},
booktitle = {ArXiv},
year = {preprint},
html = {https://arxiv.org/abs/2207.01206},
tag = {NLP}
}
Webshop est un environnement de site Web de commerce électronique simulé avec 1,18 million de produits du monde réel et 12 087 instructions de texte provenant de la foule. Dans cet environnement, un agent doit naviguer dans plusieurs types de pages Web et émettre diverses actions pour trouver, personnaliser et acheter un produit avec une instruction. Webshop fournit plusieurs défis, notamment la compréhension des instructions de composition, la formulation de requête (re), la gestion d'un texte bruyant dans les pages Web et l'exécution d'exploration stratégique.
Demo de visage étreint : concevez votre propre requête en langage naturel pour un produit et demandez un agent formé avec Webshop pour le trouver sur Amazon ou eBay, déployé comme un? Espace du visage étreint ici!
Notre code est implémenté dans Python. Pour configurer, procédez comme suit:
> git clone https://github.com/princeton-nlp/webshop.git webshop > conda create -n webshop python=3.8.13
> conda activate webshopwebshop via le script setup.sh > ./setup.sh [-d small | all]Le script de configuration effectue plusieurs actions dans l'ordre suivant:
requirements.txtspaCy en_core_web_lg Modèle-d vous permet de spécifier si vous souhaitez retirer l'ensemble de données de produit + d'instructions ( -d all ) ou un sous-ensemble de 1000 produits aléatoires ( -d small ).web_agent_site/utils.py : # DEFAULT_ATTR_PATH = join(BASE_DIR, '../data/items_ins_v2_1000.json')
# DEFAULT_FILE_PATH = join(BASE_DIR, '../data/items_shuffle_1000.json')
DEFAULT_ATTR_PATH = join ( BASE_DIR , '../data/items_ins_v2.json' )
DEFAULT_FILE_PATH = join ( BASE_DIR , '../data/items_shuffle.json' ) (Facultatif) Télécharger les fichiers de fonctionnalités d'image RESNET ici et mettre data/ pour exécuter des modèles qui nécessitent des fonctionnalités d'image.
(Facultatif) Données de démonstration humaine et être téléchargés ici.
L'environnement de boutique en ligne peut être rendu en deux modes - html et simple - chacun offrant un espace d'observation différent. Le mode simple supprime les méta-données étrangères que le mode html inclut pour faciliter la formation et l'évaluation du modèle.
html ) Lancez la page Web WebShop :
> ./run_dev.shLe site doit ensuite être visible dans le navigateur. Allez sur http: // localhost: 3000 / ABC, où vous devez atterrir sur la page d'accueil de recherche avec une instruction aléatoire.
La navigation sur le site Web générera automatiquement un fichier de trajectoire correspondant dans le dossier user_session_logs/mturk . Chaque fichier correspond à une seule session d'instruction / Web, et chaque étape du fichier correspond à une seule action (c'est-à-dire search[...] , click[...] ).
La construction en ligne de boutique en ligne est livrée avec deux drapeaux:
--log : incluez ce drapeau pour créer un fichier journal trajectoire .jsonl des actions sur la boutique en ligne--attrs : Incluez cet drapeau pour afficher un onglet Attributes sur l' item_page de la boutique en lignesimple ) Le mode simple de l'environnement de Webshop est emballé et facilement disponible en tant qu'environnement OpenAI. Les définitions Openai Gym de l'environnement de texte se trouvent dans le dossier web_agent_site/envs .
Pour commencer à utiliser le gymnase et la construction d'agents qui interagissent avec l'environnement Webshop, incluez les affirmations suivantes dans votre fichier Python:
import gym
from web_agent_site . envs import WebAgentTextEnv
env = gym . make ( 'WebAgentTextEnv-v0' , observation_mode = 'text' , num_products = ...)Maintenant, vous pouvez écrire votre propre agent qui interagit avec l'environnement via l'interface standard de gym Openai.
Des exemples d'un agent RandomPolicy interagissant avec l'environnement Webshop en mode html et simple peuvent être trouvés dans le dossier run_envs . Pour exécuter ces exemples localement, exécutez le run_web_agent_text_env.sh ou run_web_agent_site_env.sh Script:
> ./run_web_agent_text_env.sh
Products loaded.
Keys Cleaned.
Attributes Loaded.
100% | ██████████████████ | 1000/1000
Loaded 6910 goals.
Amazon Shopping Game [SEP] Instruction: [SEP] Find me slim f...
Available actions: { ' has_search_bar ' : True, ' clickables ' : [ ' search ' ]}
Taking action " search[shoes] " - > Reward = 0.0
... Afin d'exécuter le script run_web_agent_site_env.sh , vous devez télécharger une version de Chromedriver compatible avec votre version de navigateur Chrome. Une fois que vous avez téléchargé et décompressé l'exécutable, renommez- chromedriver et le placez dans le dossier webshop/envs .
Pour exécuter les modèles de base (Rule, IL, RL, IL + RL) à partir du document, veuillez vous référer à README.md dans le dossier Baseline_Models.
Pour en savoir plus sur le fonctionnement du transfert sim-à-réel des agents formés sur la boutique en ligne vers d'autres environnements, veuillez vous référer à README.md dans le dossier de transfert.
Nous aimerions entendre la NLP et la communauté d'apprentissage automatique plus larges, et nous nous félicitons de toute contribution, demandes de traction ou de problèmes! Pour ce faire, veuillez déposer une nouvelle demande de traction ou émettre et remplir les modèles correspondants en conséquence. Nous serons sûrs de suivre sous peu!
Vérifier LICENSE.md