논문의 웹 쇼핑 환경 및 검색 에이전트 구현 :
Webshop : 기반 언어 에이전트와의 확장 가능한 실제 웹 상호 작용으로
Shunyu Yao*, Howard Chen*, John Yang, Karthik Narasimhan

이 저장소에는 결과를 재현하기위한 코드가 포함되어 있습니다. 이 작업이 연구에 유용하다고 생각되면 다음과 같이 인용하십시오.
@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은 1,180 만 개의 실제 제품과 12,087 개의 크라우드 소스 텍스트 지침을 갖춘 시뮬레이션 된 전자 상거래 웹 사이트 환경입니다. 이 환경에서 에이전트는 여러 유형의 웹 페이지를 탐색하고 명령이 주어진 제품을 찾고 사용자 정의 및 구매할 수있는 다양한 작업을 발행해야합니다. Webshop은 구성 지침 이해, 쿼리 (Re) 공식화, 웹 페이지에서 시끄러운 텍스트를 다루고 전략적 탐색을 수행하는 등 몇 가지 과제를 제공합니다.
포옹 페이스 데모 : 제품에 대한 자연 언어 쿼리를 고안하고 WebShop로 훈련 된 에이전트에게 Amazon 또는 Ebay에서 찾아서 여기서 얼굴 공간을 안아!
우리의 코드는 Python에서 구현됩니다. 설정하려면 다음을 수행하십시오.
> git clone https://github.com/princeton-nlp/webshop.git webshop > conda create -n webshop python=3.8.13
> conda activate webshopsetup.sh 스크립트를 통해 webshop 가상 환경에 요구 사항을 설치 > ./setup.sh [-d small | all]설정 스크립트는 다음 순서로 몇 가지 작업을 수행합니다.
requirements.txt 에 나열된 Python 종속성을 설치합니다spaCy en_core_web_lg 모델을 다운로드합니다-d 플래그 인수를 사용하면 전체 제품 + 명령 데이터 세트 ( -d all ) 또는 1000 개의 임의의 제품 ( -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' ) (선택 사항) 여기에서 RESNET 이미지 기능 파일을 다운로드하고 이미지 기능이 필요한 모델을 실행하기 위해 data/ 에 넣습니다.
(선택 사항) 휴먼 데모 데이터 및 여기에서 다운로드됩니다.
WebShop 환경은 html 과 simple 두 가지 모드로 렌더링 할 수 있습니다. 각각은 서로 다른 관찰 공간을 제공합니다. simple 모드는 html 모드가 모델 교육 및 평가를보다 쉽게하기 위해 포함하는 외부 메타 데이터를 제거합니다.
html 모드) WebShop 웹 페이지를 시작하십시오.
> ./run_dev.sh그런 다음 사이트는 브라우저에서 볼 수 있어야합니다. http : // localhost : 3000/abc로 이동하여 임의의 명령으로 검색 홈 페이지에 착륙해야합니다.
웹 사이트를 탐색하면 user_session_logs/mturk 폴더에서 해당 궤적 파일이 자동으로 생성됩니다. 각 파일은 단일 명령/웹 세션에 해당하며 파일의 각 단계는 단일 작업에 해당합니다 (예 : search[...] , click[...] ).
현재 Webshop 빌드에는 두 가지 플래그가 있습니다.
--log :이 플래그를 포함하여 궤적을 만듭니다 .jsonl log webshop에 액션 파일--attrs :이 플래그를 포함하여 WebShop의 item_page 에 Attributes 탭을 표시합니다.simple 모드) WebShop 환경의 simple 모드는 포장되어 있으며 OpenAI 환경으로 쉽게 제공됩니다. 텍스트 환경의 Openai 체육관 정의는 web_agent_site/envs 폴더에서 찾을 수 있습니다.
WebShop 환경과 상호 작용하는 체육관 및 건축 에이전트 사용을 시작하려면 Python 파일에 다음을 포함시킵니다.
import gym
from web_agent_site . envs import WebAgentTextEnv
env = gym . make ( 'WebAgentTextEnv-v0' , observation_mode = 'text' , num_products = ...)이제 표준 OpenAI 체육관 인터페이스를 통해 환경과 상호 작용하는 자체 에이전트를 작성할 수 있습니다.
html 및 simple 모드 모두에서 WebShop 환경과 상호 작용하는 RandomPolicy 에이전트의 예는 run_envs 폴더에서 찾을 수 있습니다. 이 예제를 로컬로 실행하려면 run_web_agent_text_env.sh 또는 run_web_agent_site_env.sh 스크립트를 실행하십시오.
> ./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
... run_web_agent_site_env.sh 스크립트를 실행하려면 Chrome Browser 버전과 호환되는 Chromedriver 버전을 다운로드해야합니다. 실행 파일을 다운로드하고 압축 한 후에는 chromedriver 의 이름을 바꾸고 webshop/envs 폴더에 배치하십시오.
논문에서 기준 모델 (Rule, IL, RL, IL+RL)을 실행하려면 Baseline_Models 폴더의 README.md 를 참조하십시오.
WebShop에서 다른 환경으로 훈련 된 에이전트의 SIM-REAL 전송이 어떻게 작동하는지에 대한 자세한 내용을 보려면 전송 폴더의 README.md 를 참조하십시오.
우리는 더 넓은 NLP 및 기계 학습 커뮤니티의 의견을 듣고 싶습니다. 기여, 풀 요청 또는 문제를 환영합니다! 그렇게하려면 새 풀 요청 또는 발행을 제출하고 그에 따라 해당 템플릿을 채우십시오. 우리는 곧 후속 조치를 취할 것입니다!
LICENSE.md 확인하십시오