Website • Papier • Rangliste

Wichtig
Dieses Repository beherbergt die kanonische Implementierung von Webarena, um die in der Arbeit gemeldeten Ergebnisse zu reproduzieren. Die Web -Navigationsinfrastruktur wurde durch AgentLab erheblich verbessert und einige wichtige Funktionen einführt: (1) Unterstützung paralleler Experimente mithilfe von Browsergymus, (2) Integration der beliebten Webnavigationsbenchmarke (z. B. Visualwebarena) innerhalb eines einheitlichen Rahmens, (3) Unified Laderboard -Berichterstattung und (4) Förderung der Umweltkante -Fälle. Wir empfehlen dringend, diesen Rahmen für Ihre Experimente zu verwenden.
# Python 3.10+
conda create -n webarena python=3.10 ; conda activate webarena
pip install -r requirements.txt
playwright install
pip install -e .
# optional, dev only
pip install -e " .[dev] "
mypy --install-types --non-interactive browser_env agents evaluation_harness
pip install pre-commit
pre-commit installSchauen Sie sich dieses Skript an, um eine kurze Exemplar zum Einrichten der Browser -Umgebung zu erhalten und mithilfe der von uns gehosteten Demo -Sites damit zu interagieren. Dieses Skript dient nur für Bildungszwecke, um reproduzierbare Experimente durchzuführen. Schauen Sie sich bitte den nächsten Abschnitt an. In der Nussschale ist die Verwendung von Webarena sehr ähnlich der Verwendung von OpenAI -Fitnessstudio. Das folgende Code -Snippet zeigt, wie Sie mit der Umgebung interagieren.
from browser_env import ScriptBrowserEnv , create_id_based_action
# init the environment
env = ScriptBrowserEnv (
headless = False ,
observation_type = "accessibility_tree" ,
current_viewport_only = True ,
viewport_size = { "width" : 1280 , "height" : 720 },
)
# prepare the environment for a configuration defined in a json file
config_file = "config_files/0.json"
obs , info = env . reset ( options = { "config_file" : config_file })
# get the text observation (e.g., html, accessibility tree) through obs["text"]
# create a random action
id = random . randint ( 0 , 1000 )
action = create_id_based_action ( f"click [id]" )
# take the action
obs , _ , terminated , _ , info = env . step ( action )Wichtig
Um die korrekte Bewertung zu gewährleisten, richten Sie bitte Ihre eigenen Websites von Webarena nach Schritt 1 und Schritt 2 ein. Die Demo -Websites dienen nur zum Browsing -Zweck, um Ihnen dabei zu helfen, den Inhalt besser zu verstehen. Nach der Bewertung der 812 Beispiele setze die Umgebung nach den Anweisungen hier in den Ausgangszustand zurück.
Richten Sie die eigenständige Umgebung ein. Bitte lesen Sie diese Seite für Details.
Konfigurieren Sie die URLs für jede Website.
export SHOPPING= " <your_shopping_site_domain>:7770 "
export SHOPPING_ADMIN= " <your_e_commerce_cms_domain>:7780/admin "
export REDDIT= " <your_reddit_domain>:9999 "
export GITLAB= " <your_gitlab_domain>:8023 "
export MAP= " <your_map_domain>:3000 "
export WIKIPEDIA= " <your_wikipedia_domain>:8888/wikipedia_en_all_maxi_2022-05/A/User:The_other_Kiwix_guy/Landing "
export HOMEPAGE= " <your_homepage_domain>:4399 " # this is a placeholderSie werden aufgefordert, die Umgebungsvariablen im GitHub -Workflow zu aktualisieren, um die Richtigkeit von Unit -Tests zu gewährleisten
python scripts/generate_test_data.py Sie sehen *.json -Dateien, die im Ordner config_files generiert wurden. Jede Datei enthält die Konfiguration für ein Testbeispiel.
mkdir -p ./.auth
python browser_env/auto_login.py
exportieren OPENAI_API_KEY=your_key , ein gültiger OpenAI-API-Schlüssel beginnt mit sk-
Starten Sie die Bewertung
python run.py
--instruction_path agent/prompts/jsons/p_cot_id_actree_2s.json # this is the reasoning agent prompt we used in the paper
--test_start_idx 0
--test_end_idx 1
--model gpt-3.5-turbo
--result_dir < your_result_dir > In diesem Skript wird das erste Beispiel mit GPT-3.5-Argumentationsagent ausgeführt. Die Flugbahn wird in <your_result_dir>/0.html gespeichert
prompt = {
"intro" : < The overall guideline which includes the task description , available action , hint and others > ,
"examples" : [
(
example_1_observation ,
example_1_response
),
(
example_2_observation ,
example_2_response
),
...
],
"template" : < How to organize different information such as observation , previous action , instruction , url > ,
"meta_data" : {
"observation" : < Which observation space the agent uses > ,
"action_type" : < Which action space the agent uses > ,
"keywords" : < The keywords used in the template , the program will later enumerate all keywords in the template to see if all of them are correctly replaced with the content > ,
"prompt_constructor" : < Which prompt construtor is in used , the prompt constructor will construct the input feed to an LLM and extract the action from the generation , more details below > ,
"action_splitter" : < Inside which splitter can we extract the action , used by the prompt constructor >
}
}construct : Konstruieren Sie den Eingangsvorschub in ein LLM_extract_action : Angesichts der Erzeugung aus einem LLM extrahieren Sie den Ausdruck, der der Aktion entspricht Wenn Sie unsere Umgebung oder Daten verwenden, zitieren Sie bitte unser Papier:
@article{zhou2023webarena,
title={WebArena: A Realistic Web Environment for Building Autonomous Agents},
author={Zhou, Shuyan and Xu, Frank F and Zhu, Hao and Zhou, Xuhui and Lo, Robert and Sridhar, Abishek and Cheng, Xianyi and Bisk, Yonatan and Fried, Daniel and Alon, Uri and others},
journal={arXiv preprint arXiv:2307.13854},
year={2023}
}