Implementação do ambiente WebShop e agentes de pesquisa para o artigo:
WebShop: em direção à interação escalável da Web do mundo real com agentes de idiomas fundamentados
Shunyu Yao*, Howard Chen*, John Yang, Karthik Narasimhan

Este repositório contém código para reproduzir resultados. Se você achar este trabalho útil em sua pesquisa, cite:
@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}
}
O WebShop é um ambiente de site de comércio eletrônico simulado, com 1,18 milhão de produtos do mundo real e 12.087 instruções de texto de origem da multidão. Nesse ambiente, um agente precisa navegar em vários tipos de páginas da Web e emitir diversas ações para encontrar, personalizar e comprar um produto, dada uma instrução. O WebShop oferece vários desafios, incluindo a compreensão de instruções de composição, a consulta (re-formulação, lidando com texto barulhento nas páginas da Web e executando a exploração estratégica.
Abraçando a demonstração do rosto : Devive sua própria consulta de linguagem natural para um produto e peça um agente treinado com a WebShop para encontrá -lo na Amazon ou no eBay, implantado como um? Abraçando o espaço do rosto aqui!
Nosso código é implementado no Python. Para configurar, faça o seguinte:
> git clone https://github.com/princeton-nlp/webshop.git webshop > conda create -n webshop python=3.8.13
> conda activate webshopwebshop por meio do script setup.sh > ./setup.sh [-d small | all]O script de configuração executa várias ações na seguinte ordem:
requirements.txtspaCy en_core_web_lg modelo-d permite especificar se deseja puxar o conjunto de dados inteiros + instruções ( -d all ) ou um subconjunto de 1000 produtos aleatórios ( -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' ) (Opcional) Faça o download dos arquivos de recurso da imagem Resnet aqui e coloque em data/ para executar modelos que requerem recursos de imagem.
(Opcional) Dados de demonstração humana e ser baixado aqui.
O ambiente da WebShop pode ser renderizado em dois modos - html e simple - cada um dos quais oferece um espaço de observação diferente. O modo simple retira os metadados estranhos que o modo html inclui para facilitar o treinamento e a avaliação do modelo.
html ) Inicie a página da web WebShop :
> ./run_dev.shO site deve ser visível no navegador. Vá para http: // localhost: 3000/ABC, onde você deve pousar na página inicial da pesquisa com uma instrução aleatória.
Navegar no site gerará automaticamente um arquivo de trajetória correspondente na pasta user_session_logs/mturk . Cada arquivo corresponde a uma única instrução/sessão da Web e cada etapa do arquivo corresponde a uma única ação (ou seja, search[...] , click[...] ).
A construção atual da WebShop vem com duas bandeiras:
--log : inclua este sinalizador para criar uma trajetória .jsonl log de ações de ações no webshop--attrs : Inclua este sinalizador para exibir uma guia Attributes no item_page of webshopsimple ) O modo simple do ambiente da webshop está embalado e prontamente disponível como um ambiente OpenAI. As definições de academia do OpenAI do ambiente de texto podem ser encontradas na pasta web_agent_site/envs .
Para começar a usar a academia e os agentes de construção que interagem com o ambiente da WebShop, inclua as seguintes instruções em seu arquivo python:
import gym
from web_agent_site . envs import WebAgentTextEnv
env = gym . make ( 'WebAgentTextEnv-v0' , observation_mode = 'text' , num_products = ...)Agora, você pode escrever seu próprio agente que interage com o ambiente por meio da interface padrão do OpenAi Gym.
Exemplos de um agente RandomPolicy interagindo com o ambiente da webshop no modo html e simple podem ser encontrados na pasta run_envs . Para executar esses exemplos localmente, execute o 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
... Para executar o script run_web_agent_site_env.sh , você deve baixar uma versão do ChromedRiver compatível com a versão do navegador Chrome. Depois de baixar e descompactar o executável, renomeie -o chromedriver e coloque -o na pasta webshop/envs .
Para executar modelos de linha de base (regra, IL, RL, IL+RL) no papel, consulte o README.md na pasta Baseline_models.
Para ler mais sobre como funciona a transferência SIM-para-real de agentes treinados na WebShop para outros ambientes, consulte o README.md na pasta de transferência.
Gostaríamos muito de ouvir a comunidade mais ampla de PNs e aprendizado de máquina e recebemos contribuições, solicitações ou problemas! Para fazer isso, arquive uma nova solicitação de puxar ou emissão e preencha os modelos correspondentes de acordo. Certificaremos que acompanhe em breve!
Verifique LICENSE.md