Site Web • Document • DOC • Données • Visionneuse de données • Discord
Supposons que vous fonctionnez sur un système qui n'a pas été virtualisé (par exemple, votre bureau, ordinateur portable, machine à métal nu), ce qui signifie que vous n'utilisez pas un environnement virtualisé comme AWS, Azure ou K8. Si tel est le cas, procédez aux instructions ci-dessous. Cependant, si vous êtes sur une plate-forme virtualisée, veuillez vous référer à la section Docker.
cd dedans. Ensuite, installez les dépendances répertoriées dans requirements.txt . Il est recommandé d'utiliser la dernière version de Conda pour gérer l'environnement, mais vous pouvez également choisir d'installer manuellement les dépendances. Veuillez vous assurer que la version de Python est> = 3,9. # Clone the OSWorld repository
git clone https://github.com/xlang-ai/OSWorld
# Change directory into the cloned repository
cd OSWorld
# Optional: Create a Conda environment for OSWorld
# conda create -n osworld python=3.9
# conda activate osworld
# Install required dependencies
pip install -r requirements.txtAlternativement, vous pouvez installer l'environnement sans aucune tâche de référence:
pip install desktop-envvmrun . Le processus d'installation peut se référer à l'installation de VMware Workation Pro. Vérifiez l'installation réussie en exécutant ce qui suit: vmrun -T ws listSi l'installation ainsi que l'ensemble des variables d'environnement sont réussies, vous verrez le message affichant les machines virtuelles en cours d'exécution.
Remarque: Nous prenons également en charge l'utilisation de VirtualBox si vous avez des problèmes avec VMware Pro. Cependant, des fonctionnalités telles que le parallélisme et les macOS sur les puces Apple peuvent ne pas être bien soutenues.
Tout set! Notre script de configuration téléchargera automatiquement les machines virtuelles nécessaires et configurera l'environnement pour vous.
Si vous utilisez un serveur métallique non talon ou préférez ne pas utiliser les plates-formes VMware et VirtualBox, nous vous recommandons d'utiliser notre support Docker.
Nous vous recommandons d'exécuter la machine virtuelle avec le support KVM. Pour vérifier si votre plateforme d'hébergement prend en charge KVM, exécutez
egrep -c '(vmx|svm)' /proc/cpuinfo
sur Linux. Si la valeur de retour est supérieure à zéro, le processeur doit pouvoir prendre en charge KVM.
Remarque : les hôtes macOS ne prennent généralement pas en charge KVM. Il est conseillé d'utiliser VMware si vous souhaitez exécuter OSWorld sur MacOS.
Si votre plateforme d'hébergement prend en charge une interface utilisateur graphique (GUI), vous pouvez vous référer à Installer Docker Desktop sur Linux ou installer Docker Desktop sur Windows en fonction de votre système d'exploitation. Sinon, vous pouvez installer Docker Engine.
Ajoutez les arguments suivants lors de l'initialisation DesktopEnv :
provider_name : dockeros_type : Ubuntu ou Windows , selon le système d'exploitation de la machine virtuelleRemarque : Si l'expérience est interrompue anormalement (par exemple, en interrompant les signaux), il peut y avoir des conteneurs Docker résiduels qui pourraient affecter les performances du système au fil du temps. Veuillez exécuter
docker stop $(docker ps -q) && docker rm $(docker ps -a -q)pour nettoyer.
Nous travaillons à soutenir plus ?. Veuillez tenir fort!
Exécutez l'exemple minimal suivant pour interagir avec l'environnement:
from desktop_env . desktop_env import DesktopEnv
example = {
"id" : "94d95f96-9699-4208-98ba-3c3119edf9c2" ,
"instruction" : "I want to install Spotify on my current system. Could you please help me?" ,
"config" : [
{
"type" : "execute" ,
"parameters" : {
"command" : [
"python" ,
"-c" ,
"import pyautogui; import time; pyautogui.click(960, 540); time.sleep(0.5);"
]
}
}
],
"evaluator" : {
"func" : "check_include_exclude" ,
"result" : {
"type" : "vm_command_line" ,
"command" : "which spotify"
},
"expected" : {
"type" : "rule" ,
"rules" : {
"include" : [ "spotify" ],
"exclude" : [ "not found" ]
}
}
}
}
env = DesktopEnv ( action_space = "pyautogui" )
obs = env . reset ( task_config = example )
obs , reward , done , info = env . step ( "pyautogui.rightClick()" )Vous verrez tous les journaux du système fonctionnant normalement, y compris la création réussie de l'environnement, l'achèvement de la configuration et l'exécution réussie des actions. En fin de compte, vous observerez un clic droit réussi à l'écran, ce qui signifie que vous êtes prêt à partir.
Si vous souhaitez exécuter l'agent de base utilisé dans notre article, vous pouvez exécuter la commande suivante comme exemple sous le paramètre GPT-4V Pure-Screenshot:
Définissez la variable d'environnement Openai_API_KEY avec votre clé API
export OPENAI_API_KEY= ' changeme ' python run.py --path_to_vm Ubuntu/Ubuntu.vmx --headless --observation_type screenshot --model gpt-4-vision-preview --result_dir ./results Les résultats, qui incluent des captures d'écran, des actions et des enregistrements vidéo de l'achèvement de la tâche de l'agent, seront enregistrés dans le répertoire ./results dans ce cas. Vous pouvez ensuite exécuter la commande suivante pour obtenir le résultat:
python show_result.py Veuillez commencer par lire l'interface de l'agent et l'interface environnement. Implémentez correctement l'interface d'agent et importez votre version personnalisée dans le fichier run.py Ensuite, vous pouvez exécuter une commande similaire à celle de la section précédente pour exécuter la référence sur votre agent.
Le nom d'utilisateur et le mot de passe des machines virtuelles sont les suivants:
user / passwordVoir les directives du compte.
Voir les directives de procuration.
| Paramètre | Temps attendu * | Coût budgétaire (ensemble de tests complet / petit ensemble de tests) |
|---|---|---|
| GPT-4V (capture d'écran) | 10h | 100 $ (10 $) |
| Gemini-Prov (capture d'écran) | 15h | 0 $ (0 $) |
| Claude-3 Opus (capture d'écran) | 15h | 150 $ (15 $) |
| GPT-4V (A11y Tree, Som, etc.) | 30h | 500 $ (50 $) |
* Pas de parallélisme de l'environnement. Calculé en avril 2024.
Merci à tous les contributeurs!
Si vous trouvez cet environnement utile, veuillez envisager de citer notre travail:
@misc{OSWorld,
title={OSWorld: Benchmarking Multimodal Agents for Open-Ended Tasks in Real Computer Environments},
author={Tianbao Xie and Danyang Zhang and Jixuan Chen and Xiaochuan Li and Siheng Zhao and Ruisheng Cao and Toh Jing Hua and Zhoujun Cheng and Dongchan Shin and Fangyu Lei and Yitao Liu and Yiheng Xu and Shuyan Zhou and Silvio Savarese and Caiming Xiong and Victor Zhong and Tao Yu},
year={2024},
eprint={2404.07972},
archivePrefix={arXiv},
primaryClass={cs.AI}
}