Implementierung der WebShop -Umgebung und der Suchmittel für das Papier:
WebShop: Auf dem Weg zu skalierbarer realer Webinteraktion mit geerdeten Sprachagenten
Shunyu Yao*, Howard Chen*, John Yang, Karthik Narasimhan

Dieses Repository enthält Code für die Reproduktion von Ergebnissen. Wenn Sie diese Arbeit in Ihrer Forschung nützlich finden, zitieren Sie bitte:
@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 ist eine simulierte E-Commerce-Website-Umgebung mit 1,18 Millionen realen Produkten und 12.087 Textanweisungen. In dieser Umgebung muss ein Agent mehrere Arten von Webseiten navigieren und verschiedene Aktionen ausgeben, um ein Produkt zu finden, anzupassen und zu kaufen, unter denen eine Anweisung angewendet wird. WebShop bietet mehrere Herausforderungen, darunter das Verständnis von Kompositionslisten, Abfrage (Re-formulierung (Re-)-Formulierung, den Umgang mit lauten Text in Webseiten und die Durchführung strategischer Erkundungen.
Umarmung der Gesichtsdemo : Devise Ihre eigene natürliche Sprachfrage für ein Produkt und bitten Sie einen Agenten, der mit WebShop trainiert ist, um es bei Amazon oder eBay zu finden, das als als eingesetzt wird? Umarme den Gesichtsraum hier!
Unser Code ist in Python implementiert. So machen Sie Folgendes aus:
> git clone https://github.com/princeton-nlp/webshop.git webshop > conda create -n webshop python=3.8.13
> conda activate webshopwebshop -Umgebung über das Skript setup.sh > ./setup.sh [-d small | all]Das Setup -Skript führt in der folgenden Reihenfolge mehrere Aktionen aus:
requirements.txt aufgeführt sind.txtspaCy en_core_web_lg herunter-d -Flag -Argument an, ob Sie den gesamten Produkt + Anweisungsdatensatz ( -d all ) oder eine Teilmenge von 1000 zufälligen Produkten ( -d small ) ziehen möchten.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' ) (Optional) Download ResNet Image -Funktionsdateien hier und geben Sie in data/ zum Ausführen von Modellen ein, die Bildfunktionen erfordern.
(Optional) Daten für menschliche Demonstrationsdaten und werden hier heruntergeladen.
Die WebShop -Umgebung kann in zwei Modi - html und simple - jeweils einen anderen Beobachtungsraum bieten. Der simple Modus entfaltet die fremde Meta-Daten, die der html Modus umfasst, um Modelltraining und Bewertung zu erleichtern.
html -Modus) Starten Sie die WebShop -Webseite:
> ./run_dev.shDie Site sollte dann im Browser angezeigt werden. Gehen Sie zu http: // localhost: 3000/ABC, wo Sie mit einer zufälligen Anweisung auf der Such -Homepage landen sollten.
Wenn Sie die Website navigieren, generiert er automatisch eine entsprechende Trajektoriendatei im Ordner user_session_logs/mturk . Jede Datei entspricht einer einzelnen Anweisung/Websitzung, und jeder Schritt der Datei entspricht einer einzelnen Aktion (dh search[...] , click[...] ).
Der aktuelle WebShop -Build verfügt über zwei Flaggen:
--log : Fügen Sie dieses Flag hinzu, um eine Trajektorien .jsonl Protokolldatei mit Aktionen auf Webshop zu erstellen--attrs : Fügen Sie dieses Flag ein, um eine Registerkarte Attributes auf der item_page von webshop anzuzeigensimple Modus) Der simple Modus der Webshop -Umgebung ist verpackt und als OpenAI -Umgebung leicht verfügbar. Die OpenAI -Fitness -Definitionen der Textumgebung finden Sie im Ordner web_agent_site/envs .
Um mit dem Fitnessstudio zu beginnen und Agenten zu bauen, die mit der WebShop -Umgebung interagieren, enthalten die folgenden Aussagen in Ihre Python -Datei:
import gym
from web_agent_site . envs import WebAgentTextEnv
env = gym . make ( 'WebAgentTextEnv-v0' , observation_mode = 'text' , num_products = ...)Jetzt können Sie Ihren eigenen Agenten schreiben, der über die Standard -OpenAI -Fitnessoberfläche mit der Umgebung interagiert.
Beispiele für einen RandomPolicy -Agenten, der mit der WebShop -Umgebung sowohl in html als auch in simple Modus interagiert, finden Sie im Ordner run_envs . Um diese Beispiele lokal auszuführen, führen Sie die run_web_agent_text_env.sh oder run_web_agent_site_env.sh Skript aus:
> ./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
... Um das Skript run_web_agent_site_env.sh auszuführen, müssen Sie eine Version von Chromedriver herunterladen, die mit Ihrer Chrome -Browser -Version kompatibel ist. Sobald Sie die ausführbare Datei heruntergeladen und entpackt haben, benennen Sie sie chromedriver um und platzieren Sie sie in den Ordner webshop/envs .
Um Basismodelle (Regel, IL, RL, IL+RL) aus dem Papier auszuführen, lesen Sie bitte die README.md im Ordner Baseline_Models.
Um mehr darüber zu erfahren, wie der auf Webshop in anderen Umgebungen geschulte Sim-to-Real-Übertragungen über die README.md im Übertragungsordner funktioniert.
Wir würden uns freuen, von der breiteren NLP- und maschinellen Lerngemeinschaft zu hören, und wir freuen uns über Beiträge, Anfragen oder Probleme! Bitte stellen Sie entweder eine neue Pull -Anfrage ein oder geben Sie die entsprechenden Vorlagen entsprechend ein. Wir werden sicher in Kürze verfolgen!
LICENSE.md überprüfen.md