diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/python/python.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/python/python.md
index a154eec6f3..7233096e70 100644
--- a/docs/i18n/fr/docusaurus-plugin-content-docs/current/python/python.md
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/python/python.md
@@ -1,3 +1,5 @@
+
+
# Documentation Python
-Les documents apparaîtront ici après le déploiement.
+La documentation apparaîtra ici après le déploiement.
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/about.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/about.md
index c10b2655e7..e03ab1b77c 100644
--- a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/about.md
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/about.md
@@ -1,53 +1,49 @@
----
-sidebar_position: 7
----
+# 📚 Divers
-# 📚 Divers {#misc}
+## ⭐️ Stratégie de recherche
-## ⭐️ Stratégie de Recherche {#research-strategy}
+La réplication complète d'applications de niveau production avec des LLM est une entreprise complexe. Notre stratégie implique :
-La réalisation d'une réplication complète des applications de production avec les LLM est une entreprise complexe. Notre stratégie implique :
+1. **Recherche technique fondamentale :** Se concentrer sur la recherche fondamentale pour comprendre et améliorer les aspects techniques de la génération et de la gestion de code
+2. **Capacités spécialisées :** Améliorer l'efficacité des composants de base grâce à la curation de données, aux méthodes d'entraînement, etc.
+3. **Planification des tâches :** Développer des capacités de détection de bugs, de gestion de base de code et d'optimisation
+4. **Évaluation :** Établir des métriques d'évaluation complètes pour mieux comprendre et améliorer nos modèles
-1. **Recherche Technique de Base :** Se concentrer sur la recherche fondamentale pour comprendre et améliorer les aspects techniques de la génération et de la gestion de code.
-2. **Compétences Spécialisées :** Améliorer l'efficacité des composants de base grâce à la curation des données, aux méthodes de formation, et plus encore.
-3. **Planification des Tâches :** Développer des capacités pour la détection de bogues, la gestion du code source et l'optimisation.
-4. **Évaluation :** Établir des métriques d'évaluation complètes pour mieux comprendre et améliorer nos modèles.
+## 🚧 Agent par défaut
-## 🚧 Agent Par Défaut {#default-agent}
+Notre Agent par défaut est actuellement le [CodeActAgent](agents), qui est capable de générer du code et de gérer des fichiers.
-- Notre agent par défaut est actuellement le CodeActAgent, capable de générer du code et de gérer des fichiers. Nous travaillons sur d'autres implémentations d'agents, y compris [SWE Agent](https://swe-agent.com/). Vous pouvez [lire à propos de notre ensemble actuel d'agents ici](./agents).
+## 🤝 Comment contribuer
-## 🤝 Comment Contribuer {#how-to-contribute}
+OpenHands est un projet communautaire et nous accueillons les contributions de tous. Que vous soyez développeur, chercheur ou simplement enthousiaste à l'idée de faire progresser le domaine de l'ingénierie logicielle avec l'IA, il existe de nombreuses façons de s'impliquer :
-OpenHands est un projet communautaire, et nous accueillons les contributions de tout le monde. Que vous soyez développeur, chercheur, ou simplement enthousiaste à l'idée de faire progresser le domaine de l'ingénierie logicielle avec l'IA, il existe de nombreuses façons de vous impliquer :
-
-- **Contributions de Code :** Aidez-nous à développer les fonctionnalités de base, l'interface frontend ou les solutions de sandboxing.
-- **Recherche et Évaluation :** Contribuez à notre compréhension des LLM en ingénierie logicielle, participez à l'évaluation des modèles ou suggérez des améliorations.
-- **Retour d'Information et Tests :** Utilisez l'ensemble d'outils OpenHands, signalez des bogues, suggérez des fonctionnalités ou fournissez des retours sur l'ergonomie.
+- **Contributions de code :** Aidez-nous à développer les fonctionnalités de base, l'interface frontend ou les solutions de sandboxing
+- **Recherche et évaluation :** Contribuez à notre compréhension des LLM dans l'ingénierie logicielle, participez à l'évaluation des modèles ou suggérez des améliorations
+- **Retours et tests :** Utilisez la boîte à outils OpenHands, signalez des bugs, suggérez des fonctionnalités ou donnez votre avis sur la facilité d'utilisation
Pour plus de détails, veuillez consulter [ce document](https://github.com/All-Hands-AI/OpenHands/blob/main/CONTRIBUTING.md).
-## 🤖 Rejoignez Notre Communauté {#join-our-community}
+## 🤖 Rejoignez notre communauté
-Nous avons maintenant à la fois un espace de travail Slack pour la collaboration sur la construction d'OpenHands et un serveur Discord pour discuter de tout ce qui est lié, par exemple, à ce projet, aux LLM, aux agents, etc.
+Nous avons à la fois un espace de travail Slack pour la collaboration sur la construction d'OpenHands et un serveur Discord pour discuter de tout ce qui est lié, par exemple, à ce projet, LLM, agent, etc.
- [Espace de travail Slack](https://join.slack.com/t/opendevin/shared_invite/zt-2oikve2hu-UDxHeo8nsE69y6T7yFX_BA)
- [Serveur Discord](https://discord.gg/ESHStjSjD4)
-Si vous souhaitez contribuer, n'hésitez pas à rejoindre notre communauté. Simplifions l'ingénierie logicielle ensemble !
+Si vous souhaitez contribuer, n'hésitez pas à rejoindre notre communauté. Simplifions ensemble l'ingénierie logicielle !
-🐚 **Codez moins, créez plus avec OpenHands.**
+🐚 **Codez moins, faites plus avec OpenHands.**
[](https://star-history.com/#All-Hands-AI/OpenHands&Date)
-## 🛠️ Construit Avec {#built-with}
+## 🛠️ Construit avec
-OpenHands est construit en utilisant une combinaison de cadres et de bibliothèques puissants, offrant une base robuste pour son développement. Voici les technologies clés utilisées dans le projet :
+OpenHands est construit en utilisant une combinaison de frameworks et de bibliothèques puissants, fournissant une base solide pour son développement. Voici les principales technologies utilisées dans le projet :
       
-Veuillez noter que la sélection de ces technologies est en cours, et que des technologies supplémentaires peuvent être ajoutées ou des existantes supprimées au fur et à mesure de l'évolution du projet. Nous nous efforçons d'adopter les outils les plus adaptés et efficaces pour améliorer les capacités d'OpenHands.
+Veuillez noter que la sélection de ces technologies est en cours et que des technologies supplémentaires peuvent être ajoutées ou des technologies existantes peuvent être supprimées à mesure que le projet évolue. Nous nous efforçons d'adopter les outils les plus appropriés et les plus efficaces pour améliorer les capacités d'OpenHands.
-## 📜 Licence {#license}
+## 📜 Licence
Distribué sous la licence MIT. Voir [notre licence](https://github.com/All-Hands-AI/OpenHands/blob/main/LICENSE) pour plus d'informations.
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/agents.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/agents.md
index 2b723f88b7..d283f42841 100644
--- a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/agents.md
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/agents.md
@@ -1,98 +1,25 @@
----
-sidebar_position: 3
----
-# 🧠 Agents et Capacités
-## Agent CodeAct
+# 🧠 Agent Principal et Capacités
+
+## CodeActAgent
### Description
-Cet agent implémente l'idée CodeAct ([article](https://arxiv.org/abs/2402.01030), [tweet](https://twitter.com/xingyaow_/status/1754556835703751087)) qui consolide les **act**ions des agents LLM en un espace d'action **code** unifié pour à la fois la _simplicité_ et la _performance_ (voir article pour plus de détails).
+Cet agent implémente l'idée de CodeAct ([article](https://arxiv.org/abs/2402.01030), [tweet](https://twitter.com/xingyaow_/status/1754556835703751087)) qui consolide les **act**ions des agents LLM dans un espace d'action de **code** unifié à la fois pour la _simplicité_ et la _performance_.
L'idée conceptuelle est illustrée ci-dessous. À chaque tour, l'agent peut :
-1. **Converse** : Communiquer avec les humains en langage naturel pour demander des clarifications, des confirmations, etc.
-2. **CodeAct** : Choisir d'accomplir la tâche en exécutant du code
+1. **Converser** : Communiquer avec les humains en langage naturel pour demander des clarifications, des confirmations, etc.
+2. **CodeAct** : Choisir d'effectuer la tâche en exécutant du code
-- Exécuter toute commande `bash` Linux valide
-- Exécuter tout code `Python` valide avec [un interpréteur Python interactif](https://ipython.org/). Cela est simulé à travers la commande `bash`, voir le système de plugin ci-dessous pour plus de détails.
+- Exécuter n'importe quelle commande Linux `bash` valide
+- Exécuter n'importe quel code `Python` valide avec [un interpréteur Python interactif](https://ipython.org/). Ceci est simulé via une commande `bash`, voir le système de plugin ci-dessous pour plus de détails.

-### Système de Plugin
-
-Pour rendre l'agent CodeAct plus puissant avec seulement l'accès à l'espace d'action `bash`, l'agent CodeAct exploite le système de plugins d'OpenHands:
-
-- [Plugin Jupyter](https://github.com/All-Hands-AI/OpenHands/tree/main/openhands/runtime/plugins/jupyter) : pour l'exécution d'IPython via la commande bash
-- [Plugin outil agent SWE](https://github.com/All-Hands-AI/OpenHands/tree/main/openhands/runtime/plugins/swe_agent_commands) : Outils de ligne de commande bash puissants pour les tâches de développement logiciel introduits par [swe-agent](https://github.com/princeton-nlp/swe-agent).
-
-### Démonstration
+### Démo
https://github.com/All-Hands-AI/OpenHands/assets/38853559/f592a192-e86c-4f48-ad31-d69282d5f6ac
-_Exemple de CodeActAgent avec `gpt-4-turbo-2024-04-09` effectuant une tâche de science des données (régression linéaire)_
-
-### Actions
-
-`Action`,
-`CmdRunAction`,
-`IPythonRunCellAction`,
-`AgentEchoAction`,
-`AgentFinishAction`,
-`AgentTalkAction`
-
-### Observations
-
-`CmdOutputObservation`,
-`IPythonRunCellObservation`,
-`AgentMessageObservation`,
-`UserMessageObservation`
-
-### Méthodes
-
-| Méthode | Description |
-| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
-| `__init__` | Initialise un agent avec `llm` et une liste de messages `list[Mapping[str, str]]` |
-| `step` | Effectue une étape en utilisant l'agent CodeAct. Cela inclut la collecte d'informations sur les étapes précédentes et invite le modèle à exécuter une commande. |
-
-### En cours de réalisation & prochaine étape
-
-[] Support de la navigation sur le web
-[] Compléter le workflow pour l'agent CodeAct afin de soumettre des PRs Github
-
-## Agent Planificateur
-
-### Description
-
-L'agent planificateur utilise une stratégie d'incitation spéciale pour créer des plans à long terme pour résoudre les problèmes.
-L'agent reçoit ses paires action-observation précédentes, la tâche actuelle, et un indice basé sur la dernière action effectuée à chaque étape.
-
-### Actions
-
-`NullAction`,
-`CmdRunAction`,
-`BrowseURLAction`,
-`GithubPushAction`,
-`FileReadAction`,
-`FileWriteAction`,
-`AgentThinkAction`,
-`AgentFinishAction`,
-`AgentSummarizeAction`,
-`AddTaskAction`,
-`ModifyTaskAction`,
-
-### Observations
-
-`Observation`,
-`NullObservation`,
-`CmdOutputObservation`,
-`FileReadObservation`,
-`BrowserOutputObservation`
-
-### Méthodes
-
-| Méthode | Description |
-| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `__init__` | Initialise un agent avec `llm` |
-| `step` | Vérifie si l'étape actuelle est terminée, retourne `AgentFinishAction` si oui. Sinon, crée une incitation de planification et l'envoie au modèle pour inférence, en ajoutant le résultat comme prochaine action. |
+_Exemple de CodeActAgent avec `gpt-4-turbo-2024-04-09` effectuant une tâche de science des données (régression linéaire)_.
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/architecture/backend.mdx b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/architecture/backend.mdx
new file mode 100644
index 0000000000..d422c59abc
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/architecture/backend.mdx
@@ -0,0 +1,54 @@
+
+
+# 🏛️ Architecture du Système
+
+
+
+
Diagramme de l'Architecture du Système OpenHands (4 juillet 2024)
+
+
+Ceci est une vue d'ensemble de haut niveau de l'architecture du système. Le système est divisé en deux composants principaux : le frontend et le backend. Le frontend est responsable de la gestion des interactions utilisateur et de l'affichage des résultats. Le backend est responsable de la gestion de la logique métier et de l'exécution des agents.
+
+# Architecture du Frontend {#frontend-architecture-fr}
+
+
+
+Cette vue d'ensemble est simplifiée pour montrer les principaux composants et leurs interactions. Pour une vue plus détaillée de l'architecture du backend, voir la section Architecture du Backend ci-dessous.
+
+# Architecture du Backend {#backend-architecture-fr}
+
+_**Avertissement** : L'architecture du backend est en cours de développement et est sujette à changement. Le diagramme suivant montre l'architecture actuelle du backend basée sur le commit indiqué dans le pied de page du diagramme._
+
+
+
+
+ Mise à jour de ce Diagramme
+
+ La génération du diagramme d'architecture du backend est partiellement automatisée.
+ Le diagramme est généré à partir des indications de type dans le code en utilisant l'outil py2puml. Le diagramme est ensuite manuellement revu, ajusté et exporté en PNG et SVG.
+
+ ## Prérequis
+
+ - Environnement python fonctionnel dans lequel openhands est exécutable
+ (selon les instructions du fichier README.md à la racine du dépôt)
+ - [py2puml](https://github.com/lucsorel/py2puml) installé
+
+## Étapes
+
+1. Générer automatiquement le diagramme en exécutant la commande suivante depuis la racine du dépôt :
+ `py2puml openhands openhands > docs/architecture/backend_architecture.puml`
+
+2. Ouvrir le fichier généré dans un éditeur PlantUML, par ex. Visual Studio Code avec l'extension PlantUML ou [PlantText](https://www.planttext.com/)
+
+3. Revoir le PUML généré et effectuer tous les ajustements nécessaires au diagramme (ajouter les parties manquantes, corriger les erreurs, améliorer le positionnement).
+ _py2puml crée le diagramme en se basant sur les indications de type dans le code, donc des indications manquantes ou incorrectes peuvent entraîner un diagramme incomplet ou incorrect._
+
+4. Revoir la différence entre le nouveau diagramme et le précédent et vérifier manuellement si les changements sont corrects.
+ _S'assurer de ne pas supprimer des parties qui ont été ajoutées manuellement au diagramme par le passé et qui sont toujours pertinentes._
+
+5. Ajouter le hash du commit qui a été utilisé pour générer le diagramme dans le pied de page du diagramme.
+
+6. Exporter le diagramme sous forme de fichiers PNG et SVG et remplacer les diagrammes existants dans le répertoire `docs/architecture`. Cela peut être fait avec (par ex. [PlantText](https://www.planttext.com/))
+
+
+
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/architecture/runtime.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/architecture/runtime.md
new file mode 100644
index 0000000000..42e1dae5d8
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/architecture/runtime.md
@@ -0,0 +1,138 @@
+
+
+# 📦 Runtime EventStream
+
+Le Runtime EventStream d'OpenHands est le composant principal qui permet l'exécution sécurisée et flexible des actions des agents d'IA.
+Il crée un environnement en bac à sable (sandbox) en utilisant Docker, où du code arbitraire peut être exécuté en toute sécurité sans risquer le système hôte.
+
+## Pourquoi avons-nous besoin d'un runtime en bac à sable ?
+
+OpenHands doit exécuter du code arbitraire dans un environnement sécurisé et isolé pour plusieurs raisons :
+
+1. Sécurité : L'exécution de code non fiable peut poser des risques importants pour le système hôte. Un environnement en bac à sable empêche le code malveillant d'accéder ou de modifier les ressources du système hôte
+2. Cohérence : Un environnement en bac à sable garantit que l'exécution du code est cohérente sur différentes machines et configurations, éliminant les problèmes du type "ça fonctionne sur ma machine"
+3. Contrôle des ressources : Le bac à sable permet un meilleur contrôle de l'allocation et de l'utilisation des ressources, empêchant les processus incontrôlés d'affecter le système hôte
+4. Isolation : Différents projets ou utilisateurs peuvent travailler dans des environnements isolés sans interférer les uns avec les autres ou avec le système hôte
+5. Reproductibilité : Les environnements en bac à sable facilitent la reproduction des bugs et des problèmes, car l'environnement d'exécution est cohérent et contrôlable
+
+## Comment fonctionne le Runtime ?
+
+Le système Runtime d'OpenHands utilise une architecture client-serveur implémentée avec des conteneurs Docker. Voici un aperçu de son fonctionnement :
+
+```mermaid
+graph TD
+ A[Image Docker personnalisée fournie par l'utilisateur] --> B[Backend OpenHands]
+ B -->|Construit| C[Image OH Runtime]
+ C -->|Lance| D[Exécuteur d'actions]
+ D -->|Initialise| E[Navigateur]
+ D -->|Initialise| F[Shell Bash]
+ D -->|Initialise| G[Plugins]
+ G -->|Initialise| L[Serveur Jupyter]
+
+ B -->|Génère| H[Agent]
+ B -->|Génère| I[EventStream]
+ I <--->|Exécute l'action pour
+ obtenir l'observation
+ via l'API REST
+ | D
+
+ H -->|Génère l'action| I
+ I -->|Obtient l'observation| H
+
+ subgraph "Conteneur Docker"
+ D
+ E
+ F
+ G
+ L
+ end
+```
+
+1. Entrée utilisateur : L'utilisateur fournit une image Docker de base personnalisée
+2. Construction de l'image : OpenHands construit une nouvelle image Docker (l'"image OH runtime") basée sur l'image fournie par l'utilisateur. Cette nouvelle image inclut le code spécifique à OpenHands, principalement le "client runtime"
+3. Lancement du conteneur : Lorsqu'OpenHands démarre, il lance un conteneur Docker en utilisant l'image OH runtime
+4. Initialisation du serveur d'exécution des actions : Le serveur d'exécution des actions initialise un `ActionExecutor` à l'intérieur du conteneur, mettant en place les composants nécessaires comme un shell bash et chargeant les plugins spécifiés
+5. Communication : Le backend OpenHands (`openhands/runtime/impl/eventstream/eventstream_runtime.py`) communique avec le serveur d'exécution des actions via une API RESTful, envoyant des actions et recevant des observations
+6. Exécution des actions : Le client runtime reçoit les actions du backend, les exécute dans l'environnement en bac à sable et renvoie les observations
+7. Retour des observations : Le serveur d'exécution des actions renvoie les résultats d'exécution au backend OpenHands sous forme d'observations
+
+
+Le rôle du client :
+- Il agit comme un intermédiaire entre le backend OpenHands et l'environnement en bac à sable
+- Il exécute différents types d'actions (commandes shell, opérations sur les fichiers, code Python, etc.) en toute sécurité dans le conteneur
+- Il gère l'état de l'environnement en bac à sable, y compris le répertoire de travail courant et les plugins chargés
+- Il formate et renvoie les observations au backend, assurant une interface cohérente pour le traitement des résultats
+
+
+## Comment OpenHands construit et maintient les images OH Runtime
+
+L'approche d'OpenHands pour la construction et la gestion des images runtime assure l'efficacité, la cohérence et la flexibilité dans la création et la maintenance des images Docker pour les environnements de production et de développement.
+
+Consultez le [code pertinent](https://github.com/All-Hands-AI/OpenHands/blob/main/openhands/runtime/utils/runtime_build.py) si vous souhaitez plus de détails.
+
+### Système de balises d'images
+
+OpenHands utilise un système à trois balises pour ses images runtime afin d'équilibrer la reproductibilité et la flexibilité.
+Les balises peuvent être dans l'un des 2 formats suivants :
+
+- **Balise versionnée** : `oh_v{openhands_version}_{base_image}` (ex : `oh_v0.9.9_nikolaik_s_python-nodejs_t_python3.12-nodejs22`)
+- **Balise de verrouillage** : `oh_v{openhands_version}_{16_digit_lock_hash}` (ex : `oh_v0.9.9_1234567890abcdef`)
+- **Balise source** : `oh_v{openhands_version}_{16_digit_lock_hash}_{16_digit_source_hash}`
+ (ex : `oh_v0.9.9_1234567890abcdef_1234567890abcdef`)
+
+
+#### Balise source - La plus spécifique
+
+Il s'agit des 16 premiers chiffres du MD5 du hash du répertoire pour le répertoire source. Cela donne un hash
+uniquement pour la source d'openhands
+
+
+#### Balise de verrouillage
+
+Ce hash est construit à partir des 16 premiers chiffres du MD5 de :
+- Le nom de l'image de base sur laquelle l'image a été construite (ex : `nikolaik/python-nodejs:python3.12-nodejs22`)
+- Le contenu du `pyproject.toml` inclus dans l'image.
+- Le contenu du `poetry.lock` inclus dans l'image.
+
+Cela donne effectivement un hash pour les dépendances d'Openhands indépendamment du code source.
+
+#### Balise versionnée - La plus générique
+
+Cette balise est une concaténation de la version d'openhands et du nom de l'image de base (transformé pour s'adapter au standard des balises).
+
+#### Processus de construction
+
+Lors de la génération d'une image...
+
+- **Pas de reconstruction** : OpenHands vérifie d'abord si une image avec la même **balise source la plus spécifique** existe. S'il existe une telle image,
+ aucune construction n'est effectuée - l'image existante est utilisée.
+- **Reconstruction la plus rapide** : OpenHands vérifie ensuite si une image avec la **balise de verrouillage générique** existe. S'il existe une telle image,
+ OpenHands construit une nouvelle image basée sur celle-ci, en contournant toutes les étapes d'installation (comme `poetry install` et
+ `apt-get`) sauf une opération finale pour copier le code source actuel. La nouvelle image est balisée avec une
+ balise **source** uniquement.
+- **Reconstruction correcte** : Si ni une balise **source** ni une balise **de verrouillage** n'existe, une image sera construite sur la base de l'image avec la balise **versionnée**.
+ Dans l'image avec la balise versionnée, la plupart des dépendances devraient déjà être installées, ce qui permet de gagner du temps.
+- **Reconstruction la plus lente** : Si les trois balises n'existent pas, une toute nouvelle image est construite à partir de
+ l'image de base (ce qui est une opération plus lente). Cette nouvelle image est balisée avec toutes les balises **source**, **de verrouillage** et **versionnée**.
+
+Cette approche de balisage permet à OpenHands de gérer efficacement les environnements de développement et de production.
+
+1. Un code source et un Dockerfile identiques produisent toujours la même image (via des balises basées sur des hashs)
+2. Le système peut reconstruire rapidement les images lorsque des changements mineurs se produisent (en s'appuyant sur des images compatibles récentes)
+3. La balise **de verrouillage** (ex : `runtime:oh_v0.9.3_1234567890abcdef`) pointe toujours vers la dernière version pour une combinaison particulière d'image de base, de dépendances et de version d'OpenHands
+
+## Système de plugins du Runtime
+
+Le Runtime d'OpenHands prend en charge un système de plugins qui permet d'étendre les fonctionnalités et de personnaliser l'environnement d'exécution. Les plugins sont initialisés lorsque le client runtime démarre.
+
+Consultez [un exemple de plugin Jupyter ici](https://github.com/All-Hands-AI/OpenHands/blob/ecf4aed28b0cf7c18d4d8ff554883ba182fc6bdd/openhands/runtime/plugins/jupyter/__init__.py#L21-L55) si vous souhaitez implémenter votre propre plugin.
+
+*Plus de détails sur le système de plugins sont encore en construction - les contributions sont les bienvenues !*
+
+Aspects clés du système de plugins :
+
+1. Définition des plugins : Les plugins sont définis comme des classes Python qui héritent d'une classe de base `Plugin`
+2. Enregistrement des plugins : Les plugins disponibles sont enregistrés dans un dictionnaire `ALL_PLUGINS`
+3. Spécification des plugins : Les plugins sont associés à `Agent.sandbox_plugins: list[PluginRequirement]`. Les utilisateurs peuvent spécifier quels plugins charger lors de l'initialisation du runtime
+4. Initialisation : Les plugins sont initialisés de manière asynchrone lorsque le client runtime démarre
+5. Utilisation : Le client runtime peut utiliser les plugins initialisés pour étendre ses capacités (par exemple, le JupyterPlugin pour exécuter des cellules IPython)
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/feedback.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/feedback.md
index 6abb04abd3..f8942943ae 100644
--- a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/feedback.md
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/feedback.md
@@ -1,18 +1,41 @@
----
-sidebar_position: 6
----
-# ✅ Fournir des Commentaires
-Lorsque vous utilisez OpenHands, vous rencontrerez sans aucun doute des cas où les choses fonctionnent bien et d'autres où elles ne fonctionnent pas. Nous vous encourageons à fournir des commentaires lorsque vous utilisez OpenHands pour aider l'équipe de développement et, peut-être plus important encore, créer un corpus ouvert d'exemples de formation pour les agents de codage -- Partagez-OpenHands !
+# ✅ Fournir des commentaires
-## 📝 Comment Fournir des Commentaires
+Lorsque vous utilisez OpenHands, vous rencontrerez des cas où les choses fonctionnent bien, et d'autres où elles ne fonctionnent pas. Nous vous encourageons à fournir des commentaires lorsque vous utilisez OpenHands pour aider à donner des retours à l'équipe de développement, et peut-être plus important encore, créer un corpus ouvert d'exemples d'entraînement d'agents de codage -- Share-OpenHands !
-Fournir des commentaires est simple ! Lorsque vous utilisez OpenHands, vous pouvez appuyer sur le bouton de pouce vers le haut ou vers le bas à n'importe quel moment de votre interaction. Vous serez invité à fournir votre adresse email (par exemple, afin que nous puissions vous contacter si nous voulons poser des questions de suivi), et vous pouvez choisir si vous souhaitez fournir des commentaires publiquement ou en privé.
+## 📝 Comment fournir des commentaires
-
+Fournir des commentaires est facile ! Lorsque vous utilisez OpenHands, vous pouvez appuyer sur le bouton pouce vers le haut ou pouce vers le bas à tout moment pendant votre interaction. Vous serez invité à fournir votre adresse e-mail (par exemple, afin que nous puissions vous contacter si nous voulons poser des questions de suivi), et vous pouvez choisir si vous souhaitez fournir des commentaires publiquement ou en privé.
-## 📜 Licence de Données et Confidentialité
+
-* Les données **publiques** seront distribuées sous la licence MIT, comme OpenHands lui-même, et pourront être utilisées par la communauté pour former et tester des modèles. Évidemment, les commentaires que vous pouvez rendre publics seront plus précieux pour la communauté dans son ensemble, donc lorsque vous ne traitez pas d'informations sensibles, nous vous encourageons à choisir cette option !
+## 📜 Utilisation des données et confidentialité
+
+### Paramètres de partage des données
+
+Lorsque vous soumettez des données, vous pouvez les soumettre publiquement ou en privé.
+
+* Les données **publiques** seront distribuées sous la licence MIT, comme OpenHands lui-même, et pourront être utilisées par la communauté pour entraîner et tester des modèles. Évidemment, les commentaires que vous pouvez rendre publics seront plus précieux pour la communauté dans son ensemble, donc lorsque vous ne traitez pas d'informations sensibles, nous vous encourageons à choisir cette option !
* Les données **privées** ne seront partagées qu'avec l'équipe OpenHands dans le but d'améliorer OpenHands.
+
+### Qui collecte et stocke les données ?
+
+Les données sont collectées et stockées par [All Hands AI](https://all-hands.dev), une entreprise fondée par les mainteneurs d'OpenHands pour soutenir et améliorer OpenHands.
+
+### Comment les données publiques seront-elles publiées ?
+
+Les données publiques seront publiées lorsque nous atteindrons des jalons fixes, tels que 1 000 exemples publics, 10 000 exemples publics, etc.
+À ce moment-là, nous suivrons le processus de publication suivant :
+
+1. Toutes les personnes qui ont contribué à des commentaires publics recevront un e-mail décrivant la publication des données et auront la possibilité de se retirer.
+2. La ou les personnes en charge de la publication des données effectueront un contrôle de la qualité des données, en supprimant les commentaires de mauvaise qualité, en supprimant les adresses e-mail des soumissionnaires et en essayant de supprimer toute information sensible.
+3. Les données seront publiées publiquement sous la licence MIT via des sites couramment utilisés tels que GitHub ou Hugging Face.
+
+### Que faire si je veux que mes données soient supprimées ?
+
+Pour les données sur les serveurs d'All Hands AI, nous sommes heureux de les supprimer sur demande :
+
+**Une pièce de données :** Si vous souhaitez supprimer une pièce de données, nous ajouterons prochainement un mécanisme pour supprimer les pièces de données en utilisant le lien et le mot de passe qui s'affichent sur l'interface lorsque vous soumettez des données.
+
+**Toutes les données :** Si vous souhaitez que toutes vos données soient supprimées, ou si vous n'avez pas l'ID et le mot de passe que vous avez reçus lors de la soumission des données, veuillez contacter `contact@all-hands.dev` à partir de l'adresse e-mail que vous avez enregistrée lorsque vous avez initialement soumis les données.
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/getting-started.mdx b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/getting-started.mdx
new file mode 100644
index 0000000000..afb2f70658
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/getting-started.mdx
@@ -0,0 +1,113 @@
+
+
+# Démarrer avec OpenHands
+
+Vous avez donc [installé OpenHands](./installation) et avez
+[configuré votre LLM](./installation#setup). Et maintenant ?
+
+OpenHands peut vous aider à vous attaquer à une grande variété de tâches d'ingénierie. Mais la technologie
+est encore nouvelle, et nous sommes loin d'avoir des agents capables de prendre en charge des tâches
+d'ingénierie vastes et compliquées sans aucune aide. Il est donc important de se faire une idée de ce que l'agent
+fait bien, et où il pourrait avoir besoin d'un coup de main.
+
+## Hello World
+
+La première chose que vous voudrez peut-être essayer est un simple exemple "hello world".
+Cela peut être plus compliqué qu'il n'y paraît !
+
+Essayez de demander à l'agent :
+> Please write a bash script hello.sh that prints "hello world!"
+
+Vous devriez constater que l'agent non seulement écrit le script, mais définit également les
+permissions correctes et exécute le script pour vérifier la sortie.
+
+Vous pouvez continuer à demander à l'agent d'affiner votre code. C'est une excellente façon de
+travailler avec les agents. Commencez simplement, et itérez.
+
+> Please modify hello.sh so that it accepts a name as the first argument, but defaults to "world"
+
+Vous pouvez également travailler dans n'importe quel langage dont vous avez besoin, bien que l'agent puisse avoir besoin de passer un peu de
+temps à configurer son environnement !
+
+> Please convert hello.sh to a Ruby script, and run it
+
+## Construire à partir de zéro
+
+Les agents se débrouillent exceptionnellement bien pour les tâches "greenfield" (tâches où ils n'ont pas besoin
+de contexte sur une base de code existante) et ils peuvent simplement commencer à partir de zéro.
+
+Il est préférable de commencer par une tâche simple, puis d'itérer. Il est également préférable d'être
+aussi précis que possible sur ce que vous voulez, sur la pile technologique à utiliser, etc.
+
+Par exemple, nous pourrions construire une application TODO :
+
+> Please build a basic TODO list app in React. It should be frontend-only, and all state
+> should be kept in localStorage.
+
+Nous pouvons continuer à itérer sur l'application une fois le squelette en place :
+
+> Please allow adding an optional due date to every task
+
+Tout comme avec le développement normal, il est bon de commiter et de pousser votre code fréquemment.
+De cette façon, vous pouvez toujours revenir à un ancien état si l'agent dévie.
+Vous pouvez demander à l'agent de commiter et de pousser pour vous :
+
+> Please commit the changes and push them to a new branch called "feature/due-dates"
+
+
+## Ajouter du nouveau code
+
+OpenHands peut également faire un excellent travail en ajoutant du nouveau code à une base de code existante.
+
+Par exemple, vous pouvez demander à OpenHands d'ajouter une nouvelle action GitHub à votre projet
+qui analyse votre code. OpenHands peut jeter un coup d'œil à votre base de code pour voir quel langage
+il doit utiliser, mais ensuite il peut simplement déposer un nouveau fichier dans `./github/workflows/lint.yml`.
+
+> Please add a GitHub action that lints the code in this repository
+
+Certaines tâches peuvent nécessiter un peu plus de contexte. Bien qu'OpenHands puisse utiliser `ls` et `grep`
+pour rechercher dans votre base de code, fournir le contexte à l'avance lui permet d'aller plus vite,
+et plus précisément. Et cela vous coûtera moins de tokens !
+
+> Please modify ./backend/api/routes.js to add a new route that returns a list of all tasks
+
+> Please add a new React component that displays a list of Widgets to the ./frontend/components
+> directory. It should use the existing Widget component.
+
+## Refactoring
+
+OpenHands est excellent pour refactoriser du code existant, surtout par petits morceaux.
+Vous ne voulez probablement pas essayer de réarchitecturer toute votre base de code, mais diviser
+les longs fichiers et fonctions, renommer les variables, etc. ont tendance à très bien fonctionner.
+
+> Please rename all the single-letter variables in ./app.go
+
+> Please break the function `build_and_deploy_widgets` into two functions, `build_widgets` and `deploy_widgets` in widget.php
+
+> Please break ./api/routes.js into separate files for each route
+
+## Corrections de bugs
+
+OpenHands peut également vous aider à traquer et corriger des bugs dans votre code. Mais, comme tout
+développeur le sait, la correction de bugs peut être extrêmement délicate, et souvent OpenHands aura besoin de plus de contexte.
+Cela aide si vous avez diagnostiqué le bug, mais que vous voulez qu'OpenHands trouve la logique.
+
+> Currently the email field in the `/subscribe` endpoint is rejecting .io domains. Please fix this.
+
+> The `search_widgets` function in ./app.py is doing a case-sensitive search. Please make it case-insensitive.
+
+Il est souvent utile de faire du développement piloté par les tests lors de la correction de bugs avec un agent.
+Vous pouvez demander à l'agent d'écrire un nouveau test, puis d'itérer jusqu'à ce qu'il corrige le bug :
+
+> The `hello` function crashes on the empty string. Please write a test that reproduces this bug, then fix the code so it passes.
+
+## Plus
+
+OpenHands est capable d'aider sur à peu près n'importe quelle tâche de codage. Mais il faut un peu de pratique
+pour en tirer le meilleur parti. N'oubliez pas de :
+* Garder vos tâches petites
+* Être aussi précis que possible
+* Fournir autant de contexte que possible
+* Commiter et pousser fréquemment
+
+Voir [Bonnes pratiques de prompting](./prompting-best-practices) pour plus de conseils sur la façon de tirer le meilleur parti d'OpenHands.
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/cli-mode.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/cli-mode.md
new file mode 100644
index 0000000000..6c315957e2
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/cli-mode.md
@@ -0,0 +1,110 @@
+
+
+# Mode CLI
+
+OpenHands peut être exécuté en mode CLI interactif, ce qui permet aux utilisateurs de démarrer une session interactive via la ligne de commande.
+
+Ce mode est différent du [mode headless](headless-mode), qui est non interactif et mieux adapté aux scripts.
+
+## Avec Python
+
+Pour démarrer une session OpenHands interactive via la ligne de commande, suivez ces étapes :
+
+1. Assurez-vous d'avoir suivi les [instructions de configuration de développement](https://github.com/All-Hands-AI/OpenHands/blob/main/Development.md).
+
+2. Exécutez la commande suivante :
+
+```bash
+poetry run python -m openhands.core.cli
+```
+
+Cette commande démarrera une session interactive où vous pourrez saisir des tâches et recevoir des réponses d'OpenHands.
+
+Vous devrez vous assurer de définir votre modèle, votre clé API et d'autres paramètres via des variables d'environnement
+[ou le fichier `config.toml`](https://github.com/All-Hands-AI/OpenHands/blob/main/config.template.toml).
+
+
+## Avec Docker
+
+Pour exécuter OpenHands en mode CLI avec Docker, suivez ces étapes :
+
+1. Définissez `WORKSPACE_BASE` sur le répertoire que vous souhaitez qu'OpenHands modifie :
+
+```bash
+WORKSPACE_BASE=$(pwd)/workspace
+```
+
+2. Définissez `LLM_MODEL` sur le modèle que vous souhaitez utiliser :
+
+```bash
+LLM_MODEL="anthropic/claude-3-5-sonnet-20240620"
+```
+
+3. Définissez `LLM_API_KEY` sur votre clé API :
+
+```bash
+LLM_API_KEY="sk_test_12345"
+```
+
+4. Exécutez la commande Docker suivante :
+
+```bash
+docker run -it \
+ --pull=always \
+ -e SANDBOX_USER_ID=$(id -u) \
+ -e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE \
+ -e LLM_API_KEY=$LLM_API_KEY \
+ -e LLM_MODEL=$LLM_MODEL \
+ -v $WORKSPACE_BASE:/opt/workspace_base \
+ -v /var/run/docker.sock:/var/run/docker.sock \
+ --add-host host.docker.internal:host-gateway \
+ --name openhands-app-$(date +%Y%m%d%H%M%S) \
+ ghcr.io/all-hands-ai/openhands:0.11 \
+ python -m openhands.core.cli
+```
+
+Cette commande démarrera une session interactive dans Docker où vous pourrez saisir des tâches et recevoir des réponses d'OpenHands.
+
+## Exemples de commandes CLI et de sorties attendues
+
+Voici quelques exemples de commandes CLI et leurs sorties attendues :
+
+### Exemple 1 : Tâche simple
+
+```bash
+Comment puis-je vous aider ? >> Écrivez un script Python qui affiche "Hello, World!"
+```
+
+Sortie attendue :
+
+```bash
+🤖 Bien sûr ! Voici un script Python qui affiche "Hello, World!" :
+
+❯ print("Hello, World!")
+```
+
+### Exemple 2 : Commande Bash
+
+```bash
+Comment puis-je vous aider ? >> Créez un répertoire nommé "test_dir"
+```
+
+Sortie attendue :
+
+```bash
+🤖 Création d'un répertoire nommé "test_dir" :
+
+❯ mkdir test_dir
+```
+
+### Exemple 3 : Gestion des erreurs
+
+```bash
+Comment puis-je vous aider ? >> Supprimez un fichier inexistant
+```
+
+Sortie attendue :
+
+```bash
+🤖 Une erreur s'est produite. Veuillez réessayer.
+```
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/custom-sandbox-guide.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/custom-sandbox-guide.md
new file mode 100644
index 0000000000..aee81595a6
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/custom-sandbox-guide.md
@@ -0,0 +1,83 @@
+
+
+# Sandbox Personnalisé
+
+Le sandbox est l'endroit où l'agent effectue ses tâches. Au lieu d'exécuter des commandes directement sur votre ordinateur (ce qui pourrait être risqué), l'agent les exécute à l'intérieur d'un conteneur Docker.
+
+Le sandbox OpenHands par défaut (`python-nodejs:python3.12-nodejs22` de [nikolaik/python-nodejs](https://hub.docker.com/r/nikolaik/python-nodejs)) est livré avec certains paquets installés tels que Python et Node.js, mais peut nécessiter l'installation d'autres logiciels par défaut.
+
+Vous avez deux options pour la personnalisation :
+
+1. Utiliser une image existante avec les logiciels requis.
+2. Créer votre propre image Docker personnalisée.
+
+Si vous choisissez la première option, vous pouvez passer la section `Créer Votre Image Docker`.
+
+## Créer Votre Image Docker
+
+Pour créer une image Docker personnalisée, elle doit être basée sur Debian.
+
+Par exemple, si vous voulez qu'OpenHands ait `ruby` installé, créez un `Dockerfile` avec le contenu suivant :
+
+```dockerfile
+FROM debian:latest
+
+# Installer les paquets requis
+RUN apt-get update && apt-get install -y ruby
+```
+
+Enregistrez ce fichier dans un dossier. Ensuite, construisez votre image Docker (par exemple, nommée custom-image) en naviguant vers le dossier dans le terminal et en exécutant :
+
+```bash
+docker build -t custom-image .
+```
+
+Cela produira une nouvelle image appelée `custom-image`, qui sera disponible dans Docker.
+
+> Notez que dans la configuration décrite dans ce document, OpenHands s'exécutera en tant qu'utilisateur "openhands" à l'intérieur du sandbox et donc tous les paquets installés via le docker file devraient être disponibles pour tous les utilisateurs du système, pas seulement root.
+
+## Utiliser le Workflow de Développement
+
+### Configuration
+
+Tout d'abord, assurez-vous de pouvoir exécuter OpenHands en suivant les instructions dans [Development.md](https://github.com/All-Hands-AI/OpenHands/blob/main/Development.md).
+
+### Spécifier l'Image de Base du Sandbox
+
+Dans le fichier `config.toml` dans le répertoire OpenHands, définissez `sandbox_base_container_image` sur l'image que vous souhaitez utiliser. Cela peut être une image que vous avez déjà extraite ou une que vous avez construite :
+
+```bash
+[core]
+...
+sandbox_base_container_image="custom-image"
+```
+
+### Exécuter
+
+Exécutez OpenHands en exécutant ```make run``` dans le répertoire de niveau supérieur.
+
+## Explication Technique
+
+Veuillez vous référer à la [section image docker personnalisée de la documentation d'exécution](https://docs.all-hands.dev/modules/usage/architecture/runtime#advanced-how-openhands-builds-and-maintains-od-runtime-images) pour plus de détails.
+
+## Dépannage / Erreurs
+
+### Erreur : ```useradd: UID 1000 is not unique```
+
+Si vous voyez cette erreur dans la sortie de la console, c'est parce qu'OpenHands essaie de créer l'utilisateur openhands dans le sandbox avec un UID de 1000, mais cet UID est déjà utilisé dans l'image (pour une raison quelconque). Pour corriger cela, changez le champ sandbox_user_id dans le fichier config.toml à une valeur différente :
+
+```toml
+[core]
+workspace_base="./workspace"
+run_as_openhands=true
+sandbox_base_container_image="custom_image"
+sandbox_user_id="1001"
+```
+
+### Erreurs d'utilisation de port
+
+Si vous voyez une erreur concernant un port déjà utilisé ou indisponible, essayez de supprimer tous les conteneurs Docker en cours d'exécution (exécutez `docker ps` et `docker rm` sur les conteneurs pertinents) puis réexécutez ```make run```.
+
+## Discuter
+
+Pour d'autres problèmes ou questions, rejoignez le [Slack](https://join.slack.com/t/opendevin/shared_invite/zt-2oikve2hu-UDxHeo8nsE69y6T7yFX_BA) ou le [Discord](https://discord.gg/ESHStjSjD4) et demandez !
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/debugging.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/debugging.md
new file mode 100644
index 0000000000..cc5f108278
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/debugging.md
@@ -0,0 +1,73 @@
+
+
+# Débogage
+
+Ce qui suit est destiné à servir d'introduction au débogage d'OpenHands à des fins de développement.
+
+## Serveur / VSCode
+
+Le `launch.json` suivant permettra de déboguer les éléments agent, contrôleur et serveur, mais pas le bac à sable (qui s'exécute dans docker). Il ignorera toutes les modifications à l'intérieur du répertoire `workspace/` :
+
+```
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "OpenHands CLI",
+ "type": "debugpy",
+ "request": "launch",
+ "module": "openhands.core.cli",
+ "justMyCode": false
+ },
+ {
+ "name": "OpenHands WebApp",
+ "type": "debugpy",
+ "request": "launch",
+ "module": "uvicorn",
+ "args": [
+ "openhands.server.listen:app",
+ "--reload",
+ "--reload-exclude",
+ "${workspaceFolder}/workspace",
+ "--port",
+ "3000"
+ ],
+ "justMyCode": false
+ }
+ ]
+}
+```
+
+Des configurations de débogage plus spécifiques qui incluent plus de paramètres peuvent être spécifiées :
+
+```
+ ...
+ {
+ "name": "Debug CodeAct",
+ "type": "debugpy",
+ "request": "launch",
+ "module": "openhands.core.main",
+ "args": [
+ "-t",
+ "Demandez-moi quelle est votre tâche.",
+ "-d",
+ "${workspaceFolder}/workspace",
+ "-c",
+ "CodeActAgent",
+ "-l",
+ "llm.o1",
+ "-n",
+ "prompts"
+ ],
+ "justMyCode": false
+ }
+ ...
+```
+
+Les valeurs dans l'extrait ci-dessus peuvent être mises à jour de telle sorte que :
+
+ * *t* : la tâche
+ * *d* : le répertoire de l'espace de travail openhands
+ * *c* : l'agent
+ * *l* : la configuration LLM (prédéfinie dans config.toml)
+ * *n* : le nom de la session (par exemple, le nom du flux d'événements)
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/evaluation-harness.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/evaluation-harness.md
new file mode 100644
index 0000000000..ec1fdfc70e
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/evaluation-harness.md
@@ -0,0 +1,280 @@
+
+
+# Évaluation
+
+Ce guide fournit un aperçu de la façon d'intégrer votre propre benchmark d'évaluation dans le framework OpenHands.
+
+## Configuration de l'environnement et de la configuration LLM
+
+Veuillez suivre les instructions [ici](https://github.com/All-Hands-AI/OpenHands/blob/main/Development.md) pour configurer votre environnement de développement local.
+OpenHands en mode développement utilise `config.toml` pour garder une trace de la plupart des configurations.
+
+Voici un exemple de fichier de configuration que vous pouvez utiliser pour définir et utiliser plusieurs LLMs :
+
+```toml
+[llm]
+# IMPORTANT : ajoutez votre clé API ici et définissez le modèle que vous souhaitez évaluer
+model = "claude-3-5-sonnet-20240620"
+api_key = "sk-XXX"
+
+[llm.eval_gpt4_1106_preview_llm]
+model = "gpt-4-1106-preview"
+api_key = "XXX"
+temperature = 0.0
+
+[llm.eval_some_openai_compatible_model_llm]
+model = "openai/MODEL_NAME"
+base_url = "https://OPENAI_COMPATIBLE_URL/v1"
+api_key = "XXX"
+temperature = 0.0
+```
+
+
+## Comment utiliser OpenHands en ligne de commande
+
+OpenHands peut être exécuté depuis la ligne de commande en utilisant le format suivant :
+
+```bash
+poetry run python ./openhands/core/main.py \
+ -i \
+ -t "" \
+ -c \
+ -l
+```
+
+Par exemple :
+
+```bash
+poetry run python ./openhands/core/main.py \
+ -i 10 \
+ -t "Écrivez-moi un script bash qui affiche hello world." \
+ -c CodeActAgent \
+ -l llm
+```
+
+Cette commande exécute OpenHands avec :
+- Un maximum de 10 itérations
+- La description de tâche spécifiée
+- En utilisant CodeActAgent
+- Avec la configuration LLM définie dans la section `llm` de votre fichier `config.toml`
+
+## Comment fonctionne OpenHands
+
+Le point d'entrée principal d'OpenHands se trouve dans `openhands/core/main.py`. Voici un flux simplifié de son fonctionnement :
+
+1. Analyse des arguments de ligne de commande et chargement de la configuration
+2. Création d'un environnement d'exécution à l'aide de `create_runtime()`
+3. Initialisation de l'agent spécifié
+4. Exécution du contrôleur à l'aide de `run_controller()`, qui :
+ - Attache l'environnement d'exécution à l'agent
+ - Exécute la tâche de l'agent
+ - Renvoie un état final une fois terminé
+
+La fonction `run_controller()` est le cœur de l'exécution d'OpenHands. Elle gère l'interaction entre l'agent, l'environnement d'exécution et la tâche, en gérant des choses comme la simulation d'entrée utilisateur et le traitement des événements.
+
+
+## Le moyen le plus simple de commencer : Explorer les benchmarks existants
+
+Nous vous encourageons à examiner les différents benchmarks d'évaluation disponibles dans le [répertoire `evaluation/`](https://github.com/All-Hands-AI/OpenHands/blob/main/evaluation) de notre dépôt.
+
+Pour intégrer votre propre benchmark, nous vous suggérons de commencer par celui qui ressemble le plus à vos besoins. Cette approche peut considérablement rationaliser votre processus d'intégration, vous permettant de vous appuyer sur les structures existantes et de les adapter à vos exigences spécifiques.
+
+## Comment créer un workflow d'évaluation
+
+
+Pour créer un workflow d'évaluation pour votre benchmark, suivez ces étapes :
+
+1. Importez les utilitaires OpenHands pertinents :
+ ```python
+ import openhands.agenthub
+ from evaluation.utils.shared import (
+ EvalMetadata,
+ EvalOutput,
+ make_metadata,
+ prepare_dataset,
+ reset_logger_for_multiprocessing,
+ run_evaluation,
+ )
+ from openhands.controller.state.state import State
+ from openhands.core.config import (
+ AppConfig,
+ SandboxConfig,
+ get_llm_config_arg,
+ parse_arguments,
+ )
+ from openhands.core.logger import openhands_logger as logger
+ from openhands.core.main import create_runtime, run_controller
+ from openhands.events.action import CmdRunAction
+ from openhands.events.observation import CmdOutputObservation, ErrorObservation
+ from openhands.runtime.runtime import Runtime
+ ```
+
+2. Créez une configuration :
+ ```python
+ def get_config(instance: pd.Series, metadata: EvalMetadata) -> AppConfig:
+ config = AppConfig(
+ default_agent=metadata.agent_class,
+ runtime='eventstream',
+ max_iterations=metadata.max_iterations,
+ sandbox=SandboxConfig(
+ base_container_image='your_container_image',
+ enable_auto_lint=True,
+ timeout=300,
+ ),
+ )
+ config.set_llm_config(metadata.llm_config)
+ return config
+ ```
+
+3. Initialisez l'environnement d'exécution et configurez l'environnement d'évaluation :
+ ```python
+ def initialize_runtime(runtime: Runtime, instance: pd.Series):
+ # Configurez votre environnement d'évaluation ici
+ # Par exemple, définir des variables d'environnement, préparer des fichiers, etc.
+ pass
+ ```
+
+4. Créez une fonction pour traiter chaque instance :
+ ```python
+ from openhands.utils.async_utils import call_async_from_sync
+ def process_instance(instance: pd.Series, metadata: EvalMetadata) -> EvalOutput:
+ config = get_config(instance, metadata)
+ runtime = create_runtime(config)
+ call_async_from_sync(runtime.connect)
+ initialize_runtime(runtime, instance)
+
+ instruction = get_instruction(instance, metadata)
+
+ state = run_controller(
+ config=config,
+ task_str=instruction,
+ runtime=runtime,
+ fake_user_response_fn=your_user_response_function,
+ )
+
+ # Évaluez les actions de l'agent
+ evaluation_result = await evaluate_agent_actions(runtime, instance)
+
+ return EvalOutput(
+ instance_id=instance.instance_id,
+ instruction=instruction,
+ test_result=evaluation_result,
+ metadata=metadata,
+ history=state.history.compatibility_for_eval_history_pairs(),
+ metrics=state.metrics.get() if state.metrics else None,
+ error=state.last_error if state and state.last_error else None,
+ )
+ ```
+
+5. Exécutez l'évaluation :
+ ```python
+ metadata = make_metadata(llm_config, dataset_name, agent_class, max_iterations, eval_note, eval_output_dir)
+ output_file = os.path.join(metadata.eval_output_dir, 'output.jsonl')
+ instances = prepare_dataset(your_dataset, output_file, eval_n_limit)
+
+ await run_evaluation(
+ instances,
+ metadata,
+ output_file,
+ num_workers,
+ process_instance
+ )
+ ```
+
+Ce workflow configure la configuration, initialise l'environnement d'exécution, traite chaque instance en exécutant l'agent et en évaluant ses actions, puis collecte les résultats dans un objet `EvalOutput`. La fonction `run_evaluation` gère la parallélisation et le suivi de la progression.
+
+N'oubliez pas de personnaliser les fonctions `get_instruction`, `your_user_response_function` et `evaluate_agent_actions` en fonction des exigences spécifiques de votre benchmark.
+
+En suivant cette structure, vous pouvez créer un workflow d'évaluation robuste pour votre benchmark dans le framework OpenHands.
+
+
+## Comprendre la `user_response_fn`
+
+La `user_response_fn` est un composant crucial dans le workflow d'évaluation d'OpenHands. Elle simule l'interaction de l'utilisateur avec l'agent, permettant des réponses automatisées pendant le processus d'évaluation. Cette fonction est particulièrement utile lorsque vous souhaitez fournir des réponses cohérentes et prédéfinies aux requêtes ou actions de l'agent.
+
+
+### Workflow et interaction
+
+Le workflow correct pour gérer les actions et la `user_response_fn` est le suivant :
+
+1. L'agent reçoit une tâche et commence à la traiter
+2. L'agent émet une Action
+3. Si l'Action est exécutable (par exemple, CmdRunAction, IPythonRunCellAction) :
+ - Le Runtime traite l'Action
+ - Le Runtime renvoie une Observation
+4. Si l'Action n'est pas exécutable (généralement une MessageAction) :
+ - La `user_response_fn` est appelée
+ - Elle renvoie une réponse utilisateur simulée
+5. L'agent reçoit soit l'Observation, soit la réponse simulée
+6. Les étapes 2 à 5 se répètent jusqu'à ce que la tâche soit terminée ou que le nombre maximum d'itérations soit atteint
+
+Voici une représentation visuelle plus précise :
+
+```
+ [Agent]
+ |
+ v
+ [Émettre une Action]
+ |
+ v
+ [L'Action est-elle exécutable ?]
+ / \
+ Oui Non
+ | |
+ v v
+ [Runtime] [user_response_fn]
+ | |
+ v v
+ [Renvoyer une Observation] [Réponse simulée]
+ \ /
+ \ /
+ v v
+ [L'agent reçoit le feedback]
+ |
+ v
+ [Continuer ou terminer la tâche]
+```
+
+Dans ce workflow :
+
+- Les actions exécutables (comme l'exécution de commandes ou de code) sont gérées directement par le Runtime
+- Les actions non exécutables (généralement lorsque l'agent veut communiquer ou demander des clarifications) sont gérées par la `user_response_fn`
+- L'agent traite ensuite le feedback, qu'il s'agisse d'une Observation du Runtime ou d'une réponse simulée de la `user_response_fn`
+
+Cette approche permet une gestion automatisée des actions concrètes et des interactions utilisateur simulées, ce qui la rend adaptée aux scénarios d'évaluation où vous souhaitez tester la capacité de l'agent à effectuer des tâches avec une intervention humaine minimale.
+
+### Exemple d'implémentation
+
+Voici un exemple de `user_response_fn` utilisée dans l'évaluation SWE-Bench :
+
+```python
+def codeact_user_response(state: State | None) -> str:
+ msg = (
+ 'Veuillez continuer à travailler sur la tâche avec l\'approche que vous jugez appropriée.\n'
+ 'Si vous pensez avoir résolu la tâche, veuillez d\'abord envoyer votre réponse à l\'utilisateur via un message, puis exit .\n'
+ 'IMPORTANT : VOUS NE DEVEZ JAMAIS DEMANDER DE L\'AIDE HUMAINE.\n'
+ )
+
+ if state and state.history:
+ # vérifier si l'agent a essayé de parler à l'utilisateur 3 fois, si oui, faire savoir à l'agent qu'il peut abandonner
+ user_msgs = [
+ event
+ for event in state.history.get_events()
+ if isinstance(event, MessageAction) and event.source == 'user'
+ ]
+ if len(user_msgs) >= 2:
+ # faire savoir à l'agent qu'il peut abandonner lorsqu'il a essayé 3 fois
+ return (
+ msg
+ + 'Si vous voulez abandonner, exécutez : exit .\n'
+ )
+ return msg
+```
+
+Cette fonction fait ce qui suit :
+
+1. Fournit un message standard encourageant l'agent à continuer à travailler
+2. Vérifie combien de fois l'agent a tenté de communiquer avec l'utilisateur
+3. Si l'agent a fait plusieurs tentatives, il lui donne la possibilité d'abandonner
+
+En utilisant cette fonction, vous pouvez garantir un comportement cohérent sur plusieurs exécutions d'évaluation et empêcher l'agent de rester bloqué en attendant une entrée humaine.
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/github-action.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/github-action.md
new file mode 100644
index 0000000000..391e1b42aa
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/github-action.md
@@ -0,0 +1,17 @@
+
+
+# Utilisation de l'Action GitHub OpenHands
+
+Ce guide explique comment utiliser l'Action GitHub OpenHands, à la fois dans le dépôt OpenHands et dans vos propres projets.
+
+## Utilisation de l'Action dans le dépôt OpenHands
+
+Pour utiliser l'Action GitHub OpenHands dans le dépôt OpenHands, un mainteneur OpenHands peut :
+
+1. Créer une issue dans le dépôt.
+2. Ajouter le label `fix-me` à l'issue.
+3. L'action se déclenchera automatiquement et tentera de résoudre l'issue.
+
+## Installation de l'Action dans un nouveau dépôt
+
+Pour installer l'Action GitHub OpenHands dans votre propre dépôt, suivez les [instructions dans le dépôt OpenHands Resolver](https://github.com/All-Hands-AI/OpenHands-resolver?tab=readme-ov-file#using-the-github-actions-workflow).
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/gui-mode.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/gui-mode.md
new file mode 100644
index 0000000000..bc1320cd86
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/gui-mode.md
@@ -0,0 +1,53 @@
+
+
+# Mode Interface Graphique
+
+## Introduction
+
+OpenHands fournit un mode Interface Graphique (GUI) convivial pour interagir avec l'assistant IA. Ce mode offre une façon intuitive de configurer l'environnement, gérer les paramètres et communiquer avec l'IA.
+
+## Installation et Configuration
+
+1. Suivez les instructions du guide d'[Installation](../installation) pour installer OpenHands.
+
+2. Après avoir exécuté la commande, accédez à OpenHands à l'adresse [http://localhost:3000](http://localhost:3000).
+
+## Interagir avec l'Interface Graphique
+
+### Configuration Initiale
+
+1. Lors du premier lancement, vous verrez une fenêtre modale de paramètres.
+2. Sélectionnez un `Fournisseur LLM` et un `Modèle LLM` dans les menus déroulants.
+3. Entrez la `Clé API` correspondante pour le fournisseur choisi.
+4. Cliquez sur "Enregistrer" pour appliquer les paramètres.
+
+### Paramètres Avancés
+
+1. Activez `Options Avancées` pour accéder aux paramètres supplémentaires.
+2. Utilisez la zone de texte `Modèle Personnalisé` pour entrer manuellement un modèle s'il n'est pas dans la liste.
+3. Spécifiez une `URL de Base` si requise par votre fournisseur LLM.
+
+### Interface Principale
+
+L'interface principale se compose de plusieurs éléments clés :
+
+1. **Fenêtre de Chat** : La zone centrale où vous pouvez voir l'historique de conversation avec l'assistant IA.
+2. **Zone de Saisie** : Située en bas de l'écran, utilisez-la pour taper vos messages ou commandes à l'IA.
+3. **Bouton Envoyer** : Cliquez dessus pour envoyer votre message à l'IA.
+4. **Bouton Paramètres** : Une icône d'engrenage qui ouvre la fenêtre modale des paramètres, vous permettant d'ajuster votre configuration à tout moment.
+5. **Panneau Espace de Travail** : Affiche les fichiers et dossiers de votre espace de travail, vous permettant de naviguer et visualiser les fichiers, ou l'historique des commandes passées de l'agent ou de navigation web.
+
+### Interagir avec l'IA
+
+1. Tapez votre question, requête ou description de tâche dans la zone de saisie.
+2. Cliquez sur le bouton envoyer ou appuyez sur Entrée pour soumettre votre message.
+3. L'IA traitera votre saisie et fournira une réponse dans la fenêtre de chat.
+4. Vous pouvez poursuivre la conversation en posant des questions de suivi ou en fournissant des informations supplémentaires.
+
+## Conseils pour une Utilisation Efficace
+
+1. Soyez spécifique dans vos requêtes pour obtenir les réponses les plus précises et utiles, comme décrit dans les [meilleures pratiques d'invite](../prompting-best-practices).
+2. Utilisez le panneau d'espace de travail pour explorer la structure de votre projet.
+3. Utilisez l'un des modèles recommandés, comme décrit dans la section [LLMs](usage/llms/llms.md).
+
+N'oubliez pas, le mode Interface Graphique d'OpenHands est conçu pour rendre votre interaction avec l'assistant IA aussi fluide et intuitive que possible. N'hésitez pas à explorer ses fonctionnalités pour maximiser votre productivité.
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/headless-mode.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/headless-mode.md
new file mode 100644
index 0000000000..10ba7ec186
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/headless-mode.md
@@ -0,0 +1,58 @@
+
+
+# Mode sans interface
+
+Vous pouvez exécuter OpenHands avec une seule commande, sans démarrer l'application web.
+Cela facilite l'écriture de scripts et l'automatisation des tâches avec OpenHands.
+
+Ceci est différent du [Mode CLI](cli-mode), qui est interactif et plus adapté au développement actif.
+
+## Avec Python
+
+Pour exécuter OpenHands en mode sans interface avec Python,
+[suivez les instructions de configuration de développement](https://github.com/All-Hands-AI/OpenHands/blob/main/Development.md),
+puis exécutez :
+
+```bash
+poetry run python -m openhands.core.main -t "write a bash script that prints hi"
+```
+
+Vous devrez vous assurer de définir votre modèle, votre clé API et d'autres paramètres via des variables d'environnement
+[ou le fichier `config.toml`](https://github.com/All-Hands-AI/OpenHands/blob/main/config.template.toml).
+
+## Avec Docker
+
+1. Définissez `WORKSPACE_BASE` sur le répertoire que vous voulez qu'OpenHands modifie :
+
+```bash
+WORKSPACE_BASE=$(pwd)/workspace
+```
+
+2. Définissez `LLM_MODEL` sur le modèle que vous voulez utiliser :
+
+```bash
+LLM_MODEL="anthropic/claude-3-5-sonnet-20240620"
+```
+
+3. Définissez `LLM_API_KEY` sur votre clé API :
+
+```bash
+LLM_API_KEY="sk_test_12345"
+```
+
+4. Exécutez la commande Docker suivante :
+
+```bash
+docker run -it \
+ --pull=always \
+ -e SANDBOX_USER_ID=$(id -u) \
+ -e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE \
+ -e LLM_API_KEY=$LLM_API_KEY \
+ -e LLM_MODEL=$LLM_MODEL \
+ -v $WORKSPACE_BASE:/opt/workspace_base \
+ -v /var/run/docker.sock:/var/run/docker.sock \
+ --add-host host.docker.internal:host-gateway \
+ --name openhands-app-$(date +%Y%m%d%H%M%S) \
+ ghcr.io/all-hands-ai/openhands:0.11 \
+ python -m openhands.core.main -t "write a bash script that prints hi"
+```
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/openshift-example.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/openshift-example.md
new file mode 100644
index 0000000000..4db6e0f85e
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/openshift-example.md
@@ -0,0 +1,338 @@
+
+
+# Kubernetes
+
+Il existe différentes façons d'exécuter OpenHands sur Kubernetes ou OpenShift. Ce guide présente une façon possible :
+1. Créer un PV "en tant qu'administrateur du cluster" pour mapper les données workspace_base et le répertoire docker au pod via le nœud worker
+2. Créer un PVC pour pouvoir monter ces PV sur le pod
+3. Créer un pod qui contient deux conteneurs : les conteneurs OpenHands et Sandbox
+
+## Étapes détaillées pour l'exemple ci-dessus
+
+> Remarque : Assurez-vous d'être connecté au cluster avec le compte approprié pour chaque étape. La création de PV nécessite un administrateur de cluster !
+
+> Assurez-vous d'avoir les autorisations de lecture/écriture sur le hostPath utilisé ci-dessous (c'est-à-dire /tmp/workspace)
+
+1. Créer le PV :
+Le fichier yaml d'exemple ci-dessous peut être utilisé par un administrateur de cluster pour créer le PV.
+- workspace-pv.yaml
+
+```yamlfile
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: workspace-pv
+spec:
+ capacity:
+ storage: 2Gi
+ accessModes:
+ - ReadWriteOnce
+ persistentVolumeReclaimPolicy: Retain
+ hostPath:
+ path: /tmp/workspace
+```
+
+```bash
+# appliquer le fichier yaml
+$ oc create -f workspace-pv.yaml
+persistentvolume/workspace-pv created
+
+# vérifier :
+$ oc get pv
+NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
+workspace-pv 2Gi RWO Retain Available 7m23s
+```
+
+- docker-pv.yaml
+
+```yamlfile
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: docker-pv
+spec:
+ capacity:
+ storage: 2Gi
+ accessModes:
+ - ReadWriteOnce
+ persistentVolumeReclaimPolicy: Retain
+ hostPath:
+ path: /var/run/docker.sock
+```
+
+```bash
+# appliquer le fichier yaml
+$ oc create -f docker-pv.yaml
+persistentvolume/docker-pv created
+
+# vérifier :
+oc get pv
+NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
+docker-pv 2Gi RWO Retain Available 6m55s
+workspace-pv 2Gi RWO Retain Available 7m23s
+```
+
+2. Créer le PVC :
+Exemple de fichier yaml PVC ci-dessous :
+
+- workspace-pvc.yaml
+
+```yamlfile
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: workspace-pvc
+spec:
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 1Gi
+```
+
+```bash
+# créer le pvc
+$ oc create -f workspace-pvc.yaml
+persistentvolumeclaim/workspace-pvc created
+
+# vérifier
+$ oc get pvc
+NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
+workspace-pvc Pending hcloud-volumes 4s
+
+$ oc get events
+LAST SEEN TYPE REASON OBJECT MESSAGE
+8s Normal WaitForFirstConsumer persistentvolumeclaim/workspace-pvc waiting for first consumer to be created before binding
+```
+
+- docker-pvc.yaml
+
+```yamlfile
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: docker-pvc
+spec:
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 1Gi
+```
+
+```bash
+# créer le pvc
+$ oc create -f docker-pvc.yaml
+persistentvolumeclaim/docker-pvc created
+
+# vérifier
+$ oc get pvc
+NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
+docker-pvc Pending hcloud-volumes 4s
+workspace-pvc Pending hcloud-volumes 2m53s
+
+$ oc get events
+LAST SEEN TYPE REASON OBJECT MESSAGE
+10s Normal WaitForFirstConsumer persistentvolumeclaim/docker-pvc waiting for first consumer to be created before binding
+10s Normal WaitForFirstConsumer persistentvolumeclaim/workspace-pvc waiting for first consumer to be created before binding
+```
+
+3. Créer le fichier yaml du pod :
+Exemple de fichier yaml de pod ci-dessous :
+
+- pod.yaml
+
+```yamlfile
+apiVersion: v1
+kind: Pod
+metadata:
+ name: openhands-app-2024
+ labels:
+ app: openhands-app-2024
+spec:
+ containers:
+ - name: openhands-app-2024
+ image: ghcr.io/all-hands-ai/openhands:main
+ env:
+ - name: SANDBOX_USER_ID
+ value: "1000"
+ - name: WORKSPACE_MOUNT_PATH
+ value: "/opt/workspace_base"
+ volumeMounts:
+ - name: workspace-volume
+ mountPath: /opt/workspace_base
+ - name: docker-sock
+ mountPath: /var/run/docker.sock
+ ports:
+ - containerPort: 3000
+ - name: openhands-sandbox-2024
+ image: ghcr.io/all-hands-ai/sandbox:main
+ ports:
+ - containerPort: 51963
+ command: ["/usr/sbin/sshd", "-D", "-p 51963", "-o", "PermitRootLogin=yes"]
+ volumes:
+ - name: workspace-volume
+ persistentVolumeClaim:
+ claimName: workspace-pvc
+ - name: docker-sock
+ persistentVolumeClaim:
+ claimName: docker-pvc
+```
+
+
+```bash
+# créer le pod
+$ oc create -f pod.yaml
+W0716 11:22:07.776271 107626 warnings.go:70] would violate PodSecurity "restricted:v1.24": allowPrivilegeEscalation != false (containers "openhands-app-2024", "openhands-sandbox-2024" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (containers "openhands-app-2024", "openhands-sandbox-2024" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or containers "openhands-app-2024", "openhands-sandbox-2024" must set securityContext.runAsNonRoot=true), seccompProfile (pod or containers "openhands-app-2024", "openhands-sandbox-2024" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")
+pod/openhands-app-2024 created
+
+# L'avertissement ci-dessus peut être ignoré pour l'instant car nous ne modifierons pas les restrictions SCC.
+
+# vérifier
+$ oc get pods
+NAME READY STATUS RESTARTS AGE
+openhands-app-2024 0/2 Pending 0 5s
+
+$ oc get pods
+NAME READY STATUS RESTARTS AGE
+openhands-app-2024 0/2 ContainerCreating 0 15s
+
+$ oc get events
+LAST SEEN TYPE REASON OBJECT MESSAGE
+38s Normal WaitForFirstConsumer persistentvolumeclaim/docker-pvc waiting for first consumer to be created before binding
+23s Normal ExternalProvisioning persistentvolumeclaim/docker-pvc waiting for a volume to be created, either by external provisioner "csi.hetzner.cloud" or manually created by system administrator
+27s Normal Provisioning persistentvolumeclaim/docker-pvc External provisioner is provisioning volume for claim "openhands/docker-pvc"
+17s Normal ProvisioningSucceeded persistentvolumeclaim/docker-pvc Successfully provisioned volume pvc-2b1d223a-1c8f-4990-8e3d-68061a9ae252
+16s Normal Scheduled pod/openhands-app-2024 Successfully assigned All-Hands-AI/OpenHands-app-2024 to worker1.hub.internal.blakane.com
+9s Normal SuccessfulAttachVolume pod/openhands-app-2024 AttachVolume.Attach succeeded for volume "pvc-2b1d223a-1c8f-4990-8e3d-68061a9ae252"
+9s Normal SuccessfulAttachVolume pod/openhands-app-2024 AttachVolume.Attach succeeded for volume "pvc-31f15b25-faad-4665-a25f-201a530379af"
+6s Normal AddedInterface pod/openhands-app-2024 Add eth0 [10.128.2.48/23] from openshift-sdn
+6s Normal Pulled pod/openhands-app-2024 Container image "ghcr.io/all-hands-ai/openhands:main" already present on machine
+6s Normal Created pod/openhands-app-2024 Created container openhands-app-2024
+6s Normal Started pod/openhands-app-2024 Started container openhands-app-2024
+6s Normal Pulled pod/openhands-app-2024 Container image "ghcr.io/all-hands-ai/sandbox:main" already present on machine
+5s Normal Created pod/openhands-app-2024 Created container openhands-sandbox-2024
+5s Normal Started pod/openhands-app-2024 Started container openhands-sandbox-2024
+83s Normal WaitForFirstConsumer persistentvolumeclaim/workspace-pvc waiting for first consumer to be created before binding
+27s Normal Provisioning persistentvolumeclaim/workspace-pvc External provisioner is provisioning volume for claim "openhands/workspace-pvc"
+17s Normal ProvisioningSucceeded persistentvolumeclaim/workspace-pvc Successfully provisioned volume pvc-31f15b25-faad-4665-a25f-201a530379af
+
+$ oc get pods
+NAME READY STATUS RESTARTS AGE
+openhands-app-2024 2/2 Running 0 23s
+
+$ oc get pvc
+NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
+docker-pvc Bound pvc-2b1d223a-1c8f-4990-8e3d-68061a9ae252 10Gi RWO hcloud-volumes 10m
+workspace-pvc Bound pvc-31f15b25-faad-4665-a25f-201a530379af 10Gi RWO hcloud-volumes 13m
+
+```
+
+4. Créer un service NodePort.
+Exemple de commande de création de service ci-dessous :
+
+```bash
+# créer le service de type NodePort
+$ oc create svc nodeport openhands-app-2024 --tcp=3000:3000
+service/openhands-app-2024 created
+
+# vérifier
+
+$ oc get svc
+NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
+openhands-app-2024 NodePort 172.30.225.42 3000:30495/TCP 4s
+
+$ oc describe svc openhands-app-2024
+Name: openhands-app-2024
+Namespace: openhands
+Labels: app=openhands-app-2024
+Annotations:
+Selector: app=openhands-app-2024
+Type: NodePort
+IP Family Policy: SingleStack
+IP Families: IPv4
+IP: 172.30.225.42
+IPs: 172.30.225.42
+Port: 3000-3000 3000/TCP
+TargetPort: 3000/TCP
+NodePort: 3000-3000 30495/TCP
+Endpoints: 10.128.2.48:3000
+Session Affinity: None
+External Traffic Policy: Cluster
+Events:
+```
+
+6. Se connecter à l'interface utilisateur d'OpenHands, configurer l'Agent, puis tester :
+
+
+
+
+
+## Déploiement d'Openhands sur GCP GKE
+
+**Avertissement** : ce déploiement accorde à l'application OpenHands l'accès au socket docker de Kubernetes, ce qui crée un risque de sécurité. Utilisez à vos propres risques.
+1- Créer une politique pour l'accès privilégié
+2- Créer des informations d'identification gke (facultatif)
+3- Créer le déploiement openhands
+4- Commandes de vérification et d'accès à l'interface utilisateur
+5- Dépanner le pod pour vérifier le conteneur interne
+
+1. créer une politique pour l'accès privilégié
+```bash
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: privileged-role
+rules:
+- apiGroups: [""]
+ resources: ["pods"]
+ verbs: ["create", "get", "list", "watch", "delete"]
+- apiGroups: ["apps"]
+ resources: ["deployments"]
+ verbs: ["create", "get", "list", "watch", "delete"]
+- apiGroups: [""]
+ resources: ["pods/exec"]
+ verbs: ["create"]
+- apiGroups: [""]
+ resources: ["pods/log"]
+ verbs: ["get"]
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: privileged-role-binding
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: privileged-role
+subjects:
+- kind: ServiceAccount
+ name: default # Remplacez par le nom de votre compte de service
+ namespace: default
+```
+2. créer des informations d'identification gke (facultatif)
+```bash
+kubectl create secret generic google-cloud-key \
+ --from-file=key.json=/path/to/your/google-cloud-key.json
+ ```
+3. créer le déploiement openhands
+## comme cela est testé pour le nœud worker unique, si vous en avez plusieurs, spécifiez l'indicateur pour le worker unique
+
+```bash
+kind: Deployment
+metadata:
+ name: openhands-app-2024
+ labels:
+ app: openhands-app-2024
+spec:
+ replicas: 1 # Vous pouvez augmenter ce nombre pour plusieurs réplicas
+ selector:
+ matchLabels:
+ app: openhands-app-2024
+ template:
+ metadata:
+ labels:
+ app: openhands-app-2024
+ spec:
+ containers:
+ -
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/installation.mdx b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/installation.mdx
new file mode 100644
index 0000000000..5c31cf6d1e
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/installation.mdx
@@ -0,0 +1,65 @@
+
+
+# Installation
+
+## Configuration requise
+
+* Docker version 26.0.0+ ou Docker Desktop 4.31.0+.
+* Vous devez utiliser Linux ou Mac OS.
+ * Si vous êtes sous Windows, vous devez utiliser [WSL](https://learn.microsoft.com/en-us/windows/wsl/install).
+
+## Démarrer l'application
+
+La façon la plus simple d'exécuter OpenHands est avec Docker. Vous pouvez modifier `WORKSPACE_BASE` ci-dessous pour pointer OpenHands vers
+du code existant que vous souhaitez modifier.
+
+```bash
+export WORKSPACE_BASE=$(pwd)/workspace
+
+docker pull ghcr.io/all-hands-ai/runtime:0.11-nikolaik
+
+docker run -it --pull=always \
+ -e SANDBOX_RUNTIME_CONTAINER_IMAGE=ghcr.io/all-hands-ai/runtime:0.11-nikolaik \
+ -e SANDBOX_USER_ID=$(id -u) \
+ -e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE \
+ -v $WORKSPACE_BASE:/opt/workspace_base \
+ -v /var/run/docker.sock:/var/run/docker.sock \
+ -p 3000:3000 \
+ --add-host host.docker.internal:host-gateway \
+ --name openhands-app-$(date +%Y%m%d%H%M%S) \
+ ghcr.io/all-hands-ai/openhands:0.11
+```
+
+Vous pouvez également exécuter OpenHands en mode [headless scriptable](https://docs.all-hands.dev/modules/usage/how-to/headless-mode), comme un [CLI interactif](https://docs.all-hands.dev/modules/usage/how-to/cli-mode), ou en utilisant l'[Action GitHub OpenHands](https://docs.all-hands.dev/modules/usage/how-to/github-action).
+
+## Configuration
+
+Après avoir exécuté la commande ci-dessus, vous trouverez OpenHands en cours d'exécution à l'adresse [http://localhost:3000](http://localhost:3000).
+
+L'agent aura accès au dossier `./workspace` pour effectuer son travail. Vous pouvez copier du code existant ici, ou modifier `WORKSPACE_BASE` dans la
+commande pour pointer vers un dossier existant.
+
+Au lancement d'OpenHands, vous verrez une fenêtre modale de paramètres. Vous **devez** sélectionner un `Fournisseur LLM` et un `Modèle LLM` et entrer une `Clé API` correspondante.
+Ceux-ci peuvent être modifiés à tout moment en sélectionnant le bouton `Paramètres` (icône d'engrenage) dans l'interface utilisateur.
+
+Si le `Modèle LLM` requis n'existe pas dans la liste, vous pouvez activer les `Options avancées` et le saisir manuellement avec le préfixe correct
+dans la zone de texte `Modèle personnalisé`.
+Les `Options avancées` vous permettent également de spécifier une `URL de base` si nécessaire.
+
+
+
+
+
+
+## Versions
+
+La commande ci-dessus récupère la version stable la plus récente d'OpenHands. Vous avez également d'autres options :
+- Pour une version spécifique, utilisez `ghcr.io/all-hands-ai/openhands:$VERSION`, en remplaçant $VERSION par le numéro de version.
+- Nous utilisons semver et publions des tags majeurs, mineurs et de correctifs. Ainsi, `0.9` pointera automatiquement vers la dernière version `0.9.x`, et `0` pointera vers la dernière version `0.x.x`.
+- Pour la version de développement la plus à jour, vous pouvez utiliser `ghcr.io/all-hands-ai/openhands:main`. Cette version est instable et n'est recommandée qu'à des fins de test ou de développement.
+
+Vous pouvez choisir le tag qui correspond le mieux à vos besoins en fonction des exigences de stabilité et des fonctionnalités souhaitées.
+
+Pour le workflow de développement, consultez [Development.md](https://github.com/All-Hands-AI/OpenHands/blob/main/Development.md).
+
+Vous rencontrez des problèmes ? Consultez notre [Guide de dépannage](https://docs.all-hands.dev/modules/usage/troubleshooting).
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/azure-llms.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/azure-llms.md
new file mode 100644
index 0000000000..0146f02c45
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/azure-llms.md
@@ -0,0 +1,48 @@
+
+
+# Azure
+
+OpenHands utilise LiteLLM pour faire des appels aux modèles de chat d'Azure. Vous pouvez trouver leur documentation sur l'utilisation d'Azure comme fournisseur [ici](https://docs.litellm.ai/docs/providers/azure).
+
+## Configuration d'Azure OpenAI
+
+Lorsque vous exécutez OpenHands, vous devrez définir la variable d'environnement suivante en utilisant `-e` dans la
+[commande docker run](/modules/usage/installation#start-the-app) :
+
+```
+LLM_API_VERSION="" # par exemple "2023-05-15"
+```
+
+Exemple :
+```bash
+docker run -it --pull=always \
+ -e LLM_API_VERSION="2023-05-15"
+ ...
+```
+
+Ensuite, définissez les éléments suivants dans l'interface utilisateur d'OpenHands via les paramètres :
+
+:::note
+Vous aurez besoin du nom de votre déploiement ChatGPT qui peut être trouvé sur la page des déploiements dans Azure. Il est référencé comme
+<deployment-name> ci-dessous.
+:::
+
+* Activez `Advanced Options`
+* `Custom Model` à azure/<deployment-name>
+* `Base URL` à votre URL de base de l'API Azure (par exemple `https://example-endpoint.openai.azure.com`)
+* `API Key` à votre clé API Azure
+
+## Embeddings
+
+OpenHands utilise llama-index pour les embeddings. Vous pouvez trouver leur documentation sur Azure [ici](https://docs.llamaindex.ai/en/stable/api_reference/embeddings/azure_openai/).
+
+### Configuration d'Azure OpenAI
+
+Lorsque vous exécutez OpenHands, définissez les variables d'environnement suivantes en utilisant `-e` dans la
+[commande docker run](/modules/usage/installation#start-the-app) :
+
+```
+LLM_EMBEDDING_MODEL="azureopenai"
+LLM_EMBEDDING_DEPLOYMENT_NAME="" # par exemple "TextEmbedding..."
+LLM_API_VERSION="" # par exemple "2024-02-15-preview"
+```
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/google-llms.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/google-llms.md
new file mode 100644
index 0000000000..04dfbddbcb
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/google-llms.md
@@ -0,0 +1,31 @@
+
+
+# Google Gemini/Vertex
+
+OpenHands utilise LiteLLM pour faire des appels aux modèles de chat de Google. Vous pouvez trouver leur documentation sur l'utilisation de Google comme fournisseur :
+
+- [Gemini - Google AI Studio](https://docs.litellm.ai/docs/providers/gemini)
+- [VertexAI - Google Cloud Platform](https://docs.litellm.ai/docs/providers/vertex)
+
+## Configurations de Gemini - Google AI Studio
+
+Lors de l'exécution d'OpenHands, vous devrez définir les éléments suivants dans l'interface utilisateur d'OpenHands via les paramètres :
+* `LLM Provider` à `Gemini`
+* `LLM Model` au modèle que vous utiliserez.
+Si le modèle ne figure pas dans la liste, activez `Advanced Options` et entrez-le dans `Custom Model` (par exemple, gemini/<model-name> comme `gemini/gemini-1.5-pro`).
+* `API Key` à votre clé API Gemini
+
+## Configurations de VertexAI - Google Cloud Platform
+
+Pour utiliser Vertex AI via Google Cloud Platform lors de l'exécution d'OpenHands, vous devrez définir les variables d'environnement suivantes en utilisant `-e` dans la [commande docker run](/modules/usage/installation#start-the-app) :
+
+```
+GOOGLE_APPLICATION_CREDENTIALS=""
+VERTEXAI_PROJECT=""
+VERTEXAI_LOCATION=""
+```
+
+Ensuite, définissez les éléments suivants dans l'interface utilisateur d'OpenHands via les paramètres :
+* `LLM Provider` à `VertexAI`
+* `LLM Model` au modèle que vous utiliserez.
+Si le modèle ne figure pas dans la liste, activez `Advanced Options` et entrez-le dans `Custom Model` (par exemple, vertex_ai/<model-name>).
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/groq.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/groq.md
new file mode 100644
index 0000000000..178b14eee6
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/groq.md
@@ -0,0 +1,22 @@
+
+
+# Groq
+
+OpenHands utilise LiteLLM pour faire des appels aux modèles de chat sur Groq. Vous pouvez trouver leur documentation sur l'utilisation de Groq comme fournisseur [ici](https://docs.litellm.ai/docs/providers/groq).
+
+## Configuration
+
+Lorsque vous exécutez OpenHands, vous devrez définir les éléments suivants dans l'interface utilisateur d'OpenHands via les paramètres :
+* `LLM Provider` à `Groq`
+* `LLM Model` au modèle que vous utiliserez. [Visitez ici pour voir la liste des modèles hébergés par Groq](https://console.groq.com/docs/models). Si le modèle n'est pas dans la liste, activez les `Advanced Options` et entrez-le dans `Custom Model` (par exemple, groq/<model-name> comme `groq/llama3-70b-8192`).
+* `API key` à votre clé API Groq. Pour trouver ou créer votre clé API Groq, [voir ici](https://console.groq.com/keys).
+
+
+
+## Utilisation de Groq comme point de terminaison compatible OpenAI
+
+Le point de terminaison Groq pour la complétion de chat est [principalement compatible OpenAI](https://console.groq.com/docs/openai). Par conséquent, vous pouvez accéder aux modèles Groq comme vous le feriez pour n'importe quel point de terminaison compatible OpenAI. Vous pouvez définir les éléments suivants dans l'interface utilisateur d'OpenHands via les paramètres :
+* Activer les `Advanced Options`
+* `Custom Model` au préfixe `openai/` + le modèle que vous utiliserez (par exemple, `openai/llama3-70b-8192`)
+* `Base URL` à `https://api.groq.com/openai/v1`
+* `API Key` à votre clé API Groq
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/llms.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/llms.md
index 1241bc2250..f6672a5dd6 100644
--- a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/llms.md
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/llms.md
@@ -1,44 +1,83 @@
----
-sidebar_position: 2
----
+
# 🤖 Backends LLM
-OpenHands peut fonctionner avec n'importe quel backend LLM.
-Pour une liste complète des fournisseurs et des modèles LM disponibles, veuillez consulter la
-[documentation litellm](https://docs.litellm.ai/docs/providers).
+OpenHands peut se connecter à n'importe quel LLM pris en charge par LiteLLM. Cependant, il nécessite un modèle puissant pour fonctionner.
+
+## Recommandations de modèles
+
+Sur la base d'une évaluation récente des modèles de langage pour les tâches de codage (en utilisant le jeu de données SWE-bench), nous pouvons fournir quelques recommandations pour la sélection des modèles. L'analyse complète se trouve dans [cet article de blog](https://www.all-hands.dev/blog/evaluation-of-llms-as-coding-agents-on-swe-bench-at-30x-speed).
+
+Lors du choix d'un modèle, tenez compte à la fois de la qualité des sorties et des coûts associés. Voici un résumé des résultats :
+
+- Claude 3.5 Sonnet est le meilleur d'une bonne marge, atteignant un taux de résolution de 27% avec l'agent par défaut dans OpenHands.
+- GPT-4o est à la traîne, et o1-mini a en fait obtenu des résultats légèrement inférieurs à ceux de GPT-4o. Nous avons analysé les résultats un peu, et brièvement, il semblait que o1 "réfléchissait trop" parfois, effectuant des tâches de configuration d'environnement supplémentaires alors qu'il aurait pu simplement aller de l'avant et terminer la tâche.
+- Enfin, les modèles ouverts les plus puissants étaient Llama 3.1 405 B et deepseek-v2.5, et ils ont obtenu des résultats raisonnables, surpassant même certains des modèles fermés.
+
+Veuillez vous référer à [l'article complet](https://www.all-hands.dev/blog/evaluation-of-llms-as-coding-agents-on-swe-bench-at-30x-speed) pour plus de détails.
+
+Sur la base de ces résultats et des commentaires de la communauté, il a été vérifié que les modèles suivants fonctionnent raisonnablement bien avec OpenHands :
+
+- claude-3-5-sonnet (recommandé)
+- gpt-4 / gpt-4o
+- llama-3.1-405b
+- deepseek-v2.5
:::warning
-OpenHands émettra de nombreuses invitations au LLM que vous configurez. La plupart de ces LLM coûtent de l'argent -- assurez-vous de définir des limites de dépenses et de surveiller l'utilisation.
+OpenHands enverra de nombreuses invites au LLM que vous configurez. La plupart de ces LLM sont payants, alors assurez-vous de définir des limites de dépenses et de surveiller l'utilisation.
:::
-La variable d'environnement `LLM_MODEL` contrôle le modèle utilisé dans les interactions programmatiques.
-Mais en utilisant l'interface utilisateur OpenHands, vous devrez choisir votre modèle dans la fenêtre des paramètres (la roue dentée en bas à gauche).
+Si vous avez réussi à exécuter OpenHands avec des LLM spécifiques qui ne figurent pas dans la liste, veuillez les ajouter à la liste vérifiée. Nous vous encourageons également à ouvrir une PR pour partager votre processus de configuration afin d'aider les autres utilisant le même fournisseur et LLM !
-Les variables d'environnement suivantes peuvent être nécessaires pour certains LLM :
+Pour une liste complète des fournisseurs et des modèles disponibles, veuillez consulter la [documentation litellm](https://docs.litellm.ai/docs/providers).
-- `LLM_API_KEY`
-- `LLM_BASE_URL`
+:::note
+La plupart des modèles locaux et open source actuels ne sont pas aussi puissants. Lorsque vous utilisez de tels modèles, vous pouvez constater de longs temps d'attente entre les messages, des réponses médiocres ou des erreurs concernant du JSON malformé. OpenHands ne peut être aussi puissant que les modèles qui le pilotent. Cependant, si vous en trouvez qui fonctionnent, veuillez les ajouter à la liste vérifiée ci-dessus.
+:::
+
+## Configuration LLM
+
+Les éléments suivants peuvent être définis dans l'interface utilisateur d'OpenHands via les paramètres :
+
+- `Fournisseur LLM`
+- `Modèle LLM`
+- `Clé API`
+- `URL de base` (via `Paramètres avancés`)
+
+Certains paramètres peuvent être nécessaires pour certains LLM/fournisseurs qui ne peuvent pas être définis via l'interface utilisateur. Au lieu de cela, ceux-ci peuvent être définis via des variables d'environnement passées à la [commande docker run](/modules/usage/installation#start-the-app) en utilisant `-e` :
+
+- `LLM_API_VERSION`
- `LLM_EMBEDDING_MODEL`
- `LLM_EMBEDDING_DEPLOYMENT_NAME`
-- `LLM_API_VERSION`
+- `LLM_DROP_PARAMS`
+- `LLM_DISABLE_VISION`
+- `LLM_CACHING_PROMPT`
Nous avons quelques guides pour exécuter OpenHands avec des fournisseurs de modèles spécifiques :
-- [ollama](llms/local-llms)
- [Azure](llms/azure-llms)
+- [Google](llms/google-llms)
+- [Groq](llms/groq)
+- [OpenAI](llms/openai-llms)
+- [OpenRouter](llms/openrouter)
-Si vous utilisez un autre fournisseur, nous vous encourageons à ouvrir une PR pour partager votre configuration !
+### Nouvelles tentatives d'API et limites de débit
-## Remarque sur les modèles alternatifs
+Les fournisseurs de LLM ont généralement des limites de débit, parfois très basses, et peuvent nécessiter de nouvelles tentatives. OpenHands réessaiera automatiquement les requêtes s'il reçoit une erreur de limite de débit (code d'erreur 429), une erreur de connexion API ou d'autres erreurs transitoires.
-Les meilleurs modèles sont GPT-4 et Claude 3. Les modèles locaux et open source actuels ne sont pas aussi puissants.
-Lors de l'utilisation d'un modèle alternatif, vous pouvez constater des temps d'attente prolongés entre les messages,
-des réponses de mauvaise qualité ou des erreurs sur des JSON mal formés. OpenHands
-ne peut être aussi puissant que les modèles qui le pilotent -- heureusement, les membres de notre équipe travaillent activement à la construction de meilleurs modèles open source !
+Vous pouvez personnaliser ces options selon vos besoins pour le fournisseur que vous utilisez. Consultez leur documentation et définissez les variables d'environnement suivantes pour contrôler le nombre de nouvelles tentatives et le temps entre les tentatives :
-## Réessais d'API et limites de taux
+- `LLM_NUM_RETRIES` (Par défaut 8)
+- `LLM_RETRY_MIN_WAIT` (Par défaut 15 secondes)
+- `LLM_RETRY_MAX_WAIT` (Par défaut 120 secondes)
+- `LLM_RETRY_MULTIPLIER` (Par défaut 2)
-Certains LLM ont des limites de taux et peuvent nécessiter des réessais. OpenHands réessaiera automatiquement les demandes s'il reçoit une erreur 429 ou une erreur de connexion API.
-Vous pouvez définir les variables d'environnement `LLM_NUM_RETRIES`, `LLM_RETRY_MIN_WAIT`, `LLM_RETRY_MAX_WAIT` pour contrôler le nombre de réessais et le temps entre les réessais.
-Par défaut, `LLM_NUM_RETRIES` est 8 et `LLM_RETRY_MIN_WAIT`, `LLM_RETRY_MAX_WAIT` sont respectivement de 15 secondes et 120 secondes.
+Si vous exécutez OpenHands en mode développement, vous pouvez également définir ces options dans le fichier `config.toml` :
+
+```toml
+[llm]
+num_retries = 8
+retry_min_wait = 15
+retry_max_wait = 120
+retry_multiplier = 2
+```
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/local-llms.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/local-llms.md
new file mode 100644
index 0000000000..723285a067
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/local-llms.md
@@ -0,0 +1,217 @@
+
+
+# LLM local avec Ollama
+
+:::warning
+Lors de l'utilisation d'un LLM local, OpenHands peut avoir des fonctionnalités limitées.
+:::
+
+Assurez-vous que le serveur Ollama est opérationnel.
+Pour des instructions détaillées sur le démarrage, référez-vous à [ici](https://github.com/ollama/ollama).
+
+Ce guide suppose que vous avez démarré ollama avec `ollama serve`. Si vous exécutez ollama différemment (par exemple, à l'intérieur de docker), les instructions peuvent nécessiter des modifications. Veuillez noter que si vous utilisez WSL, la configuration par défaut d'ollama bloque les requêtes provenant des conteneurs docker. Voir [ici](#configuring-ollama-service-wsl-fr).
+
+## Récupérer les modèles
+
+Les noms des modèles Ollama peuvent être trouvés [ici](https://ollama.com/library). Pour un petit exemple, vous pouvez utiliser le modèle `codellama:7b`. Les modèles plus grands auront généralement de meilleures performances.
+
+```bash
+ollama pull codellama:7b
+```
+
+Vous pouvez vérifier quels modèles vous avez téléchargés comme ceci :
+
+```bash
+~$ ollama list
+NAME ID SIZE MODIFIED
+codellama:7b 8fdf8f752f6e 3.8 GB 6 weeks ago
+mistral:7b-instruct-v0.2-q4_K_M eb14864c7427 4.4 GB 2 weeks ago
+starcoder2:latest f67ae0f64584 1.7 GB 19 hours ago
+```
+
+## Exécuter OpenHands avec Docker
+
+### Démarrer OpenHands
+Utilisez les instructions [ici](../getting-started) pour démarrer OpenHands en utilisant Docker.
+Mais lorsque vous exécutez `docker run`, vous devrez ajouter quelques arguments supplémentaires :
+
+```bash
+--add-host host.docker.internal:host-gateway \
+-e LLM_OLLAMA_BASE_URL="http://host.docker.internal:11434" \
+```
+
+LLM_OLLAMA_BASE_URL est facultatif. Si vous le définissez, il sera utilisé pour afficher les modèles installés disponibles dans l'interface utilisateur.
+
+Exemple :
+
+```bash
+# Le répertoire que vous voulez qu'OpenHands modifie. DOIT être un chemin absolu !
+export WORKSPACE_BASE=$(pwd)/workspace
+
+docker run \
+ -it \
+ --pull=always \
+ --add-host host.docker.internal:host-gateway \
+ -e SANDBOX_USER_ID=$(id -u) \
+ -e LLM_OLLAMA_BASE_URL="http://host.docker.internal:11434" \
+ -e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE \
+ -v $WORKSPACE_BASE:/opt/workspace_base \
+ -v /var/run/docker.sock:/var/run/docker.sock \
+ -p 3000:3000 \
+ ghcr.io/all-hands-ai/openhands:main
+```
+
+Vous devriez maintenant pouvoir vous connecter à `http://localhost:3000/`
+
+### Configurer l'application Web
+
+Lors de l'exécution d'`openhands`, vous devrez définir les éléments suivants dans l'interface utilisateur d'OpenHands via les paramètres :
+- le modèle à "ollama/<nom-du-modèle>"
+- l'URL de base à `http://host.docker.internal:11434`
+- la clé API est facultative, vous pouvez utiliser n'importe quelle chaîne, comme `ollama`.
+
+
+## Exécuter OpenHands en mode développement
+
+### Construire à partir de la source
+
+Utilisez les instructions dans [Development.md](https://github.com/All-Hands-AI/OpenHands/blob/main/Development.md) pour construire OpenHands.
+Assurez-vous que `config.toml` est présent en exécutant `make setup-config` qui en créera un pour vous. Dans `config.toml`, entrez ce qui suit :
+
+```
+[core]
+workspace_base="./workspace"
+
+[llm]
+embedding_model="local"
+ollama_base_url="http://localhost:11434"
+
+```
+
+Terminé ! Vous pouvez maintenant démarrer OpenHands avec : `make run`. Vous devriez maintenant pouvoir vous connecter à `http://localhost:3000/`
+
+### Configurer l'application Web
+
+Dans l'interface utilisateur d'OpenHands, cliquez sur la roue des paramètres dans le coin inférieur gauche.
+Ensuite, dans le champ `Model`, entrez `ollama/codellama:7b`, ou le nom du modèle que vous avez récupéré précédemment.
+S'il n'apparaît pas dans le menu déroulant, activez `Advanced Settings` et tapez-le. Veuillez noter : vous avez besoin du nom du modèle tel qu'il est listé par `ollama list`, avec le préfixe `ollama/`.
+
+Dans le champ API Key, entrez `ollama` ou n'importe quelle valeur, puisque vous n'avez pas besoin d'une clé particulière.
+
+Dans le champ Base URL, entrez `http://localhost:11434`.
+
+Et maintenant vous êtes prêt à démarrer !
+
+## Configurer le service ollama (WSL) {#configuring-ollama-service-wsl-fr}
+
+La configuration par défaut pour ollama dans WSL ne sert que localhost. Cela signifie que vous ne pouvez pas y accéder depuis un conteneur docker. Par ex. cela ne fonctionnera pas avec OpenHands. Testons d'abord qu'ollama fonctionne correctement.
+
+```bash
+ollama list # obtenir la liste des modèles installés
+curl http://localhost:11434/api/generate -d '{"model":"[NOM]","prompt":"hi"}'
+#ex. curl http://localhost:11434/api/generate -d '{"model":"codellama:7b","prompt":"hi"}'
+#ex. curl http://localhost:11434/api/generate -d '{"model":"codellama","prompt":"hi"}' #le tag est facultatif s'il n'y en a qu'un seul
+```
+
+Une fois cela fait, testez qu'il autorise les requêtes "extérieures", comme celles provenant d'un conteneur docker.
+
+```bash
+docker ps # obtenir la liste des conteneurs docker en cours d'exécution, pour un test plus précis, choisissez le conteneur sandbox OpenHands.
+docker exec [ID CONTENEUR] curl http://host.docker.internal:11434/api/generate -d '{"model":"[NOM]","prompt":"hi"}'
+#ex. docker exec cd9cc82f7a11 curl http://host.docker.internal:11434/api/generate -d '{"model":"codellama","prompt":"hi"}'
+```
+
+## Le réparer
+
+Maintenant, faisons en sorte que cela fonctionne. Modifiez /etc/systemd/system/ollama.service avec des privilèges sudo. (Le chemin peut varier selon la distribution Linux)
+
+```bash
+sudo vi /etc/systemd/system/ollama.service
+```
+
+ou
+
+```bash
+sudo nano /etc/systemd/system/ollama.service
+```
+
+Dans le crochet [Service], ajoutez ces lignes
+
+```
+Environment="OLLAMA_HOST=0.0.0.0:11434"
+Environment="OLLAMA_ORIGINS=*"
+```
+
+Ensuite, enregistrez, rechargez la configuration et redémarrez le service.
+
+```bash
+sudo systemctl daemon-reload
+sudo systemctl restart ollama
+```
+
+Enfin, testez qu'ollama est accessible depuis le conteneur
+
+```bash
+ollama list # obtenir la liste des modèles installés
+docker ps # obtenir la liste des conteneurs docker en cours d'exécution, pour un test plus précis, choisissez le conteneur sandbox OpenHands.
+docker exec [ID CONTENEUR] curl http://host.docker.internal:11434/api/generate -d '{"model":"[NOM]","prompt":"hi"}'
+```
+
+
+# LLM local avec LM Studio
+
+Étapes pour configurer LM Studio :
+1. Ouvrez LM Studio
+2. Allez dans l'onglet Serveur local.
+3. Cliquez sur le bouton "Démarrer le serveur".
+4. Sélectionnez le modèle que vous souhaitez utiliser dans le menu déroulant.
+
+
+Définissez les configurations suivantes :
+```bash
+LLM_MODEL="openai/lmstudio"
+LLM_BASE_URL="http://localhost:1234/v1"
+CUSTOM_LLM_PROVIDER="openai"
+```
+
+### Docker
+
+```bash
+docker run \
+ -it \
+ --pull=always \
+ -e SANDBOX_USER_ID=$(id -u) \
+ -e LLM_MODEL="openai/lmstudio" \
+ -e LLM_BASE_URL="http://host.docker.internal:1234/v1" \
+ -e CUSTOM_LLM_PROVIDER="openai" \
+ -e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE \
+ -v $WORKSPACE_BASE:/opt/workspace_base \
+ -v /var/run/docker.sock:/var/run/docker.sock \
+ -p 3000:3000 \
+ ghcr.io/all-hands-ai/openhands:main
+```
+
+Vous devriez maintenant pouvoir vous connecter à `http://localhost:3000/`
+
+Dans l'environnement de développement, vous pouvez définir les configurations suivantes dans le fichier `config.toml` :
+
+```
+[core]
+workspace_base="./workspace"
+
+[llm]
+model="openai/lmstudio"
+base_url="http://localhost:1234/v1"
+custom_llm_provider="openai"
+```
+
+Terminé ! Vous pouvez maintenant démarrer OpenHands avec : `make run` sans Docker. Vous devriez maintenant pouvoir vous connecter à `http://localhost:3000/`
+
+# Note
+
+Pour WSL, exécutez les commandes suivantes dans cmd pour configurer le mode réseau en mode miroir :
+
+```
+python -c "print('[wsl2]\nnetworkingMode=mirrored',file=open(r'%UserProfile%\.wslconfig','w'))"
+wsl --shutdown
+```
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/openai-llms.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/openai-llms.md
new file mode 100644
index 0000000000..a9276fc474
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/openai-llms.md
@@ -0,0 +1,26 @@
+
+
+# OpenAI
+
+OpenHands utilise LiteLLM pour effectuer des appels aux modèles de chat d'OpenAI. Vous pouvez trouver leur documentation sur l'utilisation d'OpenAI en tant que fournisseur [ici](https://docs.litellm.ai/docs/providers/openai).
+
+## Configuration
+
+Lors de l'exécution d'OpenHands, vous devrez définir les éléments suivants dans l'interface utilisateur d'OpenHands via les paramètres :
+* `LLM Provider` à `OpenAI`
+* `LLM Model` au modèle que vous utiliserez.
+[Visitez ce lien pour voir une liste complète des modèles OpenAI pris en charge par LiteLLM.](https://docs.litellm.ai/docs/providers/openai#openai-chat-completion-models)
+Si le modèle ne figure pas dans la liste, activez les `Advanced Options` et entrez-le dans `Custom Model` (par exemple, openai/<model-name> comme `openai/gpt-4o`).
+* `API Key` à votre clé API OpenAI. Pour trouver ou créer votre clé API de projet OpenAI, [voir ici](https://platform.openai.com/api-keys).
+
+## Utilisation des endpoints compatibles OpenAI
+
+Tout comme pour les chat completions OpenAI, nous utilisons LiteLLM pour les endpoints compatibles OpenAI. Vous pouvez trouver leur documentation complète sur ce sujet [ici](https://docs.litellm.ai/docs/providers/openai_compatible).
+
+## Utilisation d'un proxy OpenAI
+
+Si vous utilisez un proxy OpenAI, vous devrez définir les éléments suivants dans l'interface utilisateur d'OpenHands via les paramètres :
+* Activer les `Advanced Options`
+* `Custom Model` à openai/<model-name> (par exemple, `openai/gpt-4o` ou openai/<proxy-prefix>/<model-name>)
+* `Base URL` à l'URL de votre proxy OpenAI
+* `API Key` à votre clé API OpenAI
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/openrouter.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/openrouter.md
new file mode 100644
index 0000000000..7338d42b26
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/openrouter.md
@@ -0,0 +1,14 @@
+
+
+# OpenRouter
+
+OpenHands utilise LiteLLM pour effectuer des appels aux modèles de chat sur OpenRouter. Vous pouvez trouver leur documentation sur l'utilisation d'OpenRouter en tant que fournisseur [ici](https://docs.litellm.ai/docs/providers/openrouter).
+
+## Configuration
+
+Lors de l'exécution d'OpenHands, vous devrez définir les éléments suivants dans l'interface utilisateur d'OpenHands via les paramètres :
+* `LLM Provider` à `OpenRouter`
+* `LLM Model` au modèle que vous utiliserez.
+[Visitez ici pour voir une liste complète des modèles OpenRouter](https://openrouter.ai/models).
+Si le modèle ne figure pas dans la liste, activez `Advanced Options`, et entrez-le dans `Custom Model` (par exemple openrouter/<model-name> comme `openrouter/anthropic/claude-3.5-sonnet`).
+* `API Key` à votre clé API OpenRouter.
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/prompting-best-practices.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/prompting-best-practices.md
new file mode 100644
index 0000000000..44c08b64a5
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/prompting-best-practices.md
@@ -0,0 +1,43 @@
+
+
+# Meilleures pratiques pour les prompts
+
+Lorsque vous travaillez avec le développeur de logiciels OpenHands AI, il est crucial de fournir des prompts clairs et efficaces. Ce guide décrit les meilleures pratiques pour créer des prompts qui produiront les réponses les plus précises et utiles.
+
+## Caractéristiques des bons prompts
+
+Les bons prompts sont :
+
+1. **Concrets** : Ils expliquent exactement quelle fonctionnalité doit être ajoutée ou quelle erreur doit être corrigée.
+2. **Spécifiques à l'emplacement** : Si connu, ils expliquent les emplacements dans la base de code qui doivent être modifiés.
+3. **Correctement dimensionnés** : Ils doivent avoir la taille d'une seule fonctionnalité, ne dépassant généralement pas 100 lignes de code.
+
+## Exemples
+
+### Exemples de bons prompts
+
+1. "Ajoutez une fonction `calculate_average` dans `utils/math_operations.py` qui prend une liste de nombres en entrée et renvoie leur moyenne."
+
+2. "Corrigez le TypeError dans `frontend/src/components/UserProfile.tsx` se produisant à la ligne 42. L'erreur suggère que nous essayons d'accéder à une propriété de undefined."
+
+3. "Implémentez la validation des entrées pour le champ email dans le formulaire d'inscription. Mettez à jour `frontend/src/components/RegistrationForm.tsx` pour vérifier si l'email est dans un format valide avant la soumission."
+
+### Exemples de mauvais prompts
+
+1. "Améliorez le code." (Trop vague, pas concret)
+
+2. "Réécrivez tout le backend pour utiliser un framework différent." (Pas correctement dimensionné)
+
+3. "Il y a un bug quelque part dans l'authentification des utilisateurs. Pouvez-vous le trouver et le corriger ?" (Manque de spécificité et d'informations de localisation)
+
+## Conseils pour des prompts efficaces
+
+1. Soyez aussi précis que possible sur le résultat souhaité ou le problème à résoudre.
+2. Fournissez du contexte, y compris les chemins de fichiers et les numéros de ligne pertinents si disponibles.
+3. Décomposez les grandes tâches en prompts plus petits et gérables.
+4. Incluez tous les messages d'erreur ou logs pertinents.
+5. Spécifiez le langage de programmation ou le framework s'il n'est pas évident d'après le contexte.
+
+N'oubliez pas, plus votre prompt est précis et informatif, mieux l'IA pourra vous aider à développer ou à modifier le logiciel OpenHands.
+
+Voir [Getting Started with OpenHands](./getting-started) pour plus d'exemples de prompts utiles.
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/troubleshooting/troubleshooting.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/troubleshooting/troubleshooting.md
index 71de9a21ef..96e8bd58c0 100644
--- a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/troubleshooting/troubleshooting.md
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/troubleshooting/troubleshooting.md
@@ -1,101 +1,53 @@
----
-sidebar_position: 5
----
+
# 🚧 Dépannage
-Il existe certains messages d'erreur qui sont souvent signalés par les utilisateurs.
-
-Nous essaierons de rendre le processus d'installation plus facile et ces messages d'erreur
-mieux à l'avenir. Mais pour l'instant, vous pouvez rechercher votre message d'erreur ci-dessous et voir s'il existe des solutions de contournement.
-
-Pour chacun de ces messages d'erreur, **il existe un problème existant**. Veuillez ne pas
-ouvrir un nouveau problème - commentez simplement dessus.
-
-Si vous trouvez plus d'informations ou une solution de contournement pour l'un de ces problèmes, veuillez ouvrir un *PR* pour ajouter des détails à ce fichier.
+Il y a certains messages d'erreur qui sont fréquemment signalés par les utilisateurs.
+Nous allons essayer de rendre le processus d'installation plus facile, mais pour l'instant vous pouvez rechercher votre message d'erreur ci-dessous et voir s'il y a des solutions de contournement.
+Si vous trouvez plus d'informations ou une solution de contournement pour l'un de ces problèmes, veuillez ouvrir une *PR* pour ajouter des détails à ce fichier.
:::tip
-Si vous utilisez Windows et que vous rencontrez des problèmes, consultez notre [guide pour les utilisateurs de Windows (WSL)](troubleshooting/windows).
+OpenHands ne prend en charge Windows que via [WSL](https://learn.microsoft.com/en-us/windows/wsl/install).
+Veuillez vous assurer d'exécuter toutes les commandes à l'intérieur de votre terminal WSL.
+Consultez les [Notes pour les utilisateurs de WSL sur Windows](troubleshooting/windows) pour des guides de dépannage.
:::
-## Impossible de se connecter à Docker
+## Problèmes courants
-[Problème GitHub](https://github.com/All-Hands-AI/OpenHands/issues/1226)
+* [Impossible de se connecter à Docker](#impossible-de-se-connecter-à-docker)
+* [404 Ressource introuvable](#404-ressource-introuvable)
+* [`make build` bloqué sur les installations de paquets](#make-build-bloqué-sur-les-installations-de-paquets)
+* [Les sessions ne sont pas restaurées](#les-sessions-ne-sont-pas-restaurées)
-### Symptômes
+### Impossible de se connecter à Docker
+
+[GitHub Issue](https://github.com/All-Hands-AI/OpenHands/issues/1226)
+
+**Symptômes**
```bash
-Erreur lors de la création du contrôleur. Veuillez vérifier que Docker est en cours d'exécution et visitez `https://docs.all-hands.dev/modules/usage/troubleshooting` pour plus d'informations sur le débogage.
+Error creating controller. Please check Docker is running and visit `https://docs.all-hands.dev/modules/usage/troubleshooting` for more debugging information.
```
```bash
-docker.errors.DockerException: Erreur lors de la récupération de la version de l'API du serveur : ('Connection aborted.', FileNotFoundError(2, 'Aucun fichier ou répertoire de ce type'))
+docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
```
-### Détails
+**Détails**
-OpenHands utilise un conteneur Docker pour effectuer son travail en toute sécurité, sans risquer de briser votre machine.
+OpenHands utilise un conteneur Docker pour faire son travail en toute sécurité, sans risquer de casser votre machine.
-### Solutions de contournement
+**Solutions de contournement**
* Exécutez `docker ps` pour vous assurer que docker est en cours d'exécution
* Assurez-vous que vous n'avez pas besoin de `sudo` pour exécuter docker [voir ici](https://www.baeldung.com/linux/docker-run-without-sudo)
-* Si vous êtes sur un Mac, vérifiez les [exigences en matière d'autorisations](https://docs.docker.com/desktop/mac/permission-requirements/) et envisagez particulièrement d'activer l'option `Allow the default Docker socket to be used` sous `Settings > Advanced` dans Docker Desktop.
-* De plus, mettez à jour Docker vers la dernière version sous `Check for Updates`
+* Si vous êtes sur un Mac, vérifiez les [exigences d'autorisation](https://docs.docker.com/desktop/mac/permission-requirements/) et en particulier envisagez d'activer `Allow the default Docker socket to be used` sous `Settings > Advanced` dans Docker Desktop.
+* De plus, mettez à niveau votre Docker vers la dernière version sous `Check for Updates`
-## Impossible de se connecter à la boîte SSH
+---
+### `404 Ressource introuvable`
-[Problème GitHub](https://github.com/All-Hands-AI/OpenHands/issues/1156)
-
-### Symptômes
-
-```python
-self.shell = DockerSSHBox(
-...
-pexpect.pxssh.ExceptionPxssh: Impossible d'établir une connexion avec l'hôte
-```
-
-### Détails
-
-Par défaut, OpenHands se connecte à un conteneur en cours d'exécution via SSH. Sur certaines machines,
-en particulier Windows, cela semble échouer.
-
-### Solutions de contournement
-
-* Redémarrez votre ordinateur (parfois cela fonctionne)
-* Assurez-vous d'avoir les dernières versions de WSL et Docker
-* Vérifiez que votre distribution dans WSL est également à jour
-* Essayez [ce guide de réinstallation](https://github.com/All-Hands-AI/OpenHands/issues/1156#issuecomment-2064549427)
-
-## Impossible de se connecter à LLM
-
-[Problème GitHub](https://github.com/All-Hands-AI/OpenHands/issues/1208)
-
-### Symptômes
-
-```python
- File "/app/.venv/lib/python3.12/site-packages/openai/_exceptions.py", line 81, in __init__
- super().__init__(message, response.request, body=body)
- ^^^^^^^^^^^^^^^^
-AttributeError: 'NoneType' object has no attribute 'request'
-```
-
-### Détails
-
-[Problèmes GitHub](https://github.com/All-Hands-AI/OpenHands/issues?q=is%3Aissue+is%3Aopen+404)
-
-Cela se produit généralement avec les configurations de LLM *locales*, lorsque OpenHands ne parvient pas à se connecter au serveur LLM.
-Consultez notre guide pour [LLMs locaux](llms/local-llms) pour plus d'informations.
-
-### Solutions de contournement
-
-* Vérifiez votre `base_url` dans votre config.toml (si elle existe) sous la section "llm"
-* Vérifiez que ollama (ou tout autre LLM que vous utilisez) fonctionne correctement
-* Assurez-vous d'utiliser `--add-host host.docker.internal:host-gateway` lorsque vous utilisez Docker
-
-## `404 Ressource non trouvée`
-
-### Symptômes
+**Symptômes**
```python
Traceback (most recent call last):
@@ -118,89 +70,81 @@ Traceback (most recent call last):
^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/openai/_base_client.py", line 1012, in _request
raise self._make_status_error_from_response(err.response) from None
-openai.NotFoundError: Code d'erreur : 404 - {'error': {'code': '404', 'message': 'Ressource non trouvée'}}
+openai.NotFoundError: Error code: 404 - {'error': {'code': '404', 'message': 'Resource not found'}}
```
-### Détails
+**Détails**
-Cela se produit lorsque LiteLLM (notre bibliothèque pour se connecter à différents fournisseurs de LLM) ne parvient pas à trouver
-le point de terminaison API avec lequel vous essayez de vous connecter. Cela arrive le plus souvent aux utilisateurs de Azure ou ollama.
+Cela se produit lorsque LiteLLM (notre bibliothèque pour se connecter à différents fournisseurs de LLM) ne peut pas trouver le point de terminaison d'API auquel vous essayez de vous connecter. Le plus souvent, cela se produit pour les utilisateurs d'Azure ou d'ollama.
-### Solutions de contournement
+**Solutions de contournement**
* Vérifiez que vous avez correctement défini `LLM_BASE_URL`
-* Vérifiez que le modèle est correctement défini, en fonction des [docs de LiteLLM](https://docs.litellm.ai/docs/providers)
- * Si vous êtes en cours d'exécution dans l'interface utilisateur, assurez-vous de définir le `model` dans le modal des paramètres
- * Si vous êtes en cours d'exécution sans interface (via main.py), assurez-vous de définir `LLM_MODEL` dans votre env/config
-* Assurez-vous de suivre les instructions spéciales de votre fournisseur de LLM
- * [ollama](/fr/modules/usage/llms/local-llms)
- * [Azure](/fr/modules/usage/llms/azure-llms)
- * [Google](/fr/modules/usage/llms/google-llms)
+* Vérifiez que le modèle est correctement défini, en fonction de la [documentation de LiteLLM](https://docs.litellm.ai/docs/providers)
+ * Si vous exécutez dans l'interface utilisateur, assurez-vous de définir le `model` dans la fenêtre modale des paramètres
+ * Si vous exécutez en mode headless (via main.py), assurez-vous de définir `LLM_MODEL` dans votre env/config
+* Assurez-vous d'avoir suivi toutes les instructions spéciales pour votre fournisseur de LLM
+ * [Azure](/modules/usage/llms/azure-llms)
+ * [Google](/modules/usage/llms/google-llms)
* Assurez-vous que votre clé API est correcte
* Voyez si vous pouvez vous connecter au LLM en utilisant `curl`
-* Essayez de [vous connecter via LiteLLM directement](https://github.com/BerriAI/litellm) pour tester votre configuration
+* Essayez de [vous connecter directement via LiteLLM](https://github.com/BerriAI/litellm) pour tester votre configuration
-## `make build` bloqué sur les installations de packages
+---
+### `make build` bloqué sur les installations de paquets
-### Symptômes
+**Symptômes**
-Installation de package bloquée sur `En attente...` sans aucun message d'erreur :
+L'installation des paquets est bloquée sur `Pending...` sans aucun message d'erreur :
```bash
-Opérations de package : 286 installations, 0 mises à jour, 0 suppressions
+Package operations: 286 installs, 0 updates, 0 removals
- - Installation de certifi (2024.2.2) : En attente...
- - Installation de h11 (0.14.0) : En attente...
- - Installation de idna (3.7) : En attente...
- - Installation de sniffio (1.3.1) : En attente...
- - Installation de typing-extensions (4.11.0) : En attente...
+ - Installing certifi (2024.2.2): Pending...
+ - Installing h11 (0.14.0): Pending...
+ - Installing idna (3.7): Pending...
+ - Installing sniffio (1.3.1): Pending...
+ - Installing typing-extensions (4.11.0): Pending...
```
-### Détails
+**Détails**
-Dans de rares cas, `make build` peut sembler bloqué sur les installations de packages
-sans aucun message d'erreur.
+Dans de rares cas, `make build` peut sembler se bloquer sur les installations de paquets sans aucun message d'erreur.
-### Solutions de contournement
+**Solutions de contournement**
-* Le gestionnaire de packages Poetry peut manquer d'un paramètre de configuration concernant
-l'emplacement où doivent être recherchées les informations d'identification (keyring).
+L'installateur de paquets Poetry peut manquer un paramètre de configuration pour savoir où rechercher les informations d'identification (keyring).
-### Solution de contournement
-
-Tout d'abord, vérifiez avec `env` si une valeur pour `PYTHON_KEYRING_BACKEND` existe.
-Sinon, exécutez la commande ci-dessous pour la définir à une valeur connue et réessayez la construction :
+Vérifiez d'abord avec `env` si une valeur pour `PYTHON_KEYRING_BACKEND` existe.
+Si ce n'est pas le cas, exécutez la commande ci-dessous pour la définir sur une valeur connue et réessayez la construction :
```bash
export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
```
-## Les sessions ne sont pas restaurées
+---
+### Les sessions ne sont pas restaurées
-### Symptômes
+**Symptômes**
-OpenHands demande généralement s'il faut reprendre ou commencer une nouvelle session lors de l'ouverture de l'interface utilisateur.
-Mais cliquer sur "Reprendre" démarre toujours une toute nouvelle discussion.
+OpenHands demande généralement s'il faut reprendre ou démarrer une nouvelle session lors de l'ouverture de l'interface utilisateur.
+Mais cliquer sur "Reprendre" démarre quand même un nouveau chat.
-### Détails
+**Détails**
Avec une installation standard à ce jour, les données de session sont stockées en mémoire.
-Actuellement, si le service OpenHands est redémarré, les sessions précédentes deviennent
-invalides (un nouveau secret est généré) et donc non récupérables.
+Actuellement, si le service OpenHands est redémarré, les sessions précédentes deviennent invalides (un nouveau secret est généré) et donc non récupérables.
-### Solutions de contournement
+**Solutions de contournement**
-* Modifiez la configuration pour rendre les sessions persistantes en éditant le fichier `config.toml`
-(dans le dossier racine d'OpenHands) en spécifiant un `file_store` et un
-`file_store_path` absolu :
+* Modifiez la configuration pour rendre les sessions persistantes en éditant le fichier `config.toml` (dans le dossier racine d'OpenHands) en spécifiant un `file_store` et un `file_store_path` absolu :
```toml
file_store="local"
file_store_path="/absolute/path/to/openhands/cache/directory"
```
-* Ajoutez un secret jwt fixe dans votre .bashrc, comme ci-dessous, afin que les id de session précédents
-restent acceptés.
+* Ajoutez un secret jwt fixe dans votre .bashrc, comme ci-dessous, afin que les ID de session précédents restent acceptés.
```bash
EXPORT JWT_SECRET=A_CONST_VALUE
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/troubleshooting/windows.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/troubleshooting/windows.md
index ddfae792c6..467f9deb76 100644
--- a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/troubleshooting/windows.md
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/troubleshooting/windows.md
@@ -1,49 +1,38 @@
-# Notes pour les utilisateurs de Windows et WSL
-OpenHands ne supporte Windows que via [WSL](https://learn.microsoft.com/en-us/windows/wsl/install).
-Veuillez vous assurer de lancer toutes les commandes à l'intérieur de votre terminal WSL.
+
+# Notes pour les utilisateurs de WSL sur Windows
+
+OpenHands ne prend en charge Windows que via [WSL](https://learn.microsoft.com/en-us/windows/wsl/install).
+Veuillez vous assurer d'exécuter toutes les commandes dans votre terminal WSL.
## Dépannage
-### Erreur : 'docker' n'a pas pu être trouvé dans cette distribution WSL 2.
-
-Si vous utilisez Docker Desktop, assurez-vous de le démarrer avant d'exécuter toute commande docker depuis l'intérieur de WSL.
-Docker doit également avoir l'option d'intégration WSL activée.
-
### Recommandation : Ne pas exécuter en tant qu'utilisateur root
Pour des raisons de sécurité, il est fortement recommandé de ne pas exécuter OpenHands en tant qu'utilisateur root, mais en tant qu'utilisateur avec un UID non nul.
-De plus, les sandboxes persistants ne seront pas pris en charge lors de l'exécution en tant que root et un message approprié pourrait apparaître lors du démarrage d'OpenHands.
Références :
* [Pourquoi il est mauvais de se connecter en tant que root](https://askubuntu.com/questions/16178/why-is-it-bad-to-log-in-as-root)
* [Définir l'utilisateur par défaut dans WSL](https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html#option2)
-Astuce pour la 2e référence : pour les utilisateurs d'Ubuntu, la commande pourrait en fait être "ubuntupreview" au lieu de "ubuntu".
+Astuce concernant la 2ème référence : pour les utilisateurs d'Ubuntu, la commande pourrait en fait être "ubuntupreview" au lieu de "ubuntu".
-### Échec de la création de l'utilisateur openhands
+---
+### Erreur : 'docker' n'a pas pu être trouvé dans cette distribution WSL 2.
-Si vous rencontrez l'erreur suivante lors de l'installation :
-
-```sh
-Exception: Failed to create openhands user in sandbox: 'useradd: UID 0 is not unique'
-```
-
-Vous pouvez la résoudre en exécutant :
-
-```sh
-export SANDBOX_USER_ID=1000
-```
+Si vous utilisez Docker Desktop, assurez-vous de le démarrer avant d'appeler toute commande docker depuis WSL.
+Docker doit également avoir l'option d'intégration WSL activée.
+---
### Installation de Poetry
-* Si vous rencontrez des problèmes pour exécuter Poetry même après l'avoir installé pendant le processus de construction, il peut être nécessaire d'ajouter son chemin binaire à votre environnement :
+* Si vous rencontrez des problèmes pour exécuter Poetry même après l'avoir installé pendant le processus de build, vous devrez peut-être ajouter son chemin binaire à votre environnement :
```sh
export PATH="$HOME/.local/bin:$PATH"
```
-* Si `make build` s'arrête avec une erreur telle que :
+* Si make build s'arrête sur une erreur comme celle-ci :
```sh
ModuleNotFoundError: no module named
@@ -57,9 +46,10 @@ rm -r ~/.cache/pypoetry
make build
```
+---
### L'objet NoneType n'a pas d'attribut 'request'
-Si vous rencontrez des problèmes liés au réseau, tels que `NoneType object has no attribute 'request'` lors de l'exécution de `make run`, il peut être nécessaire de configurer vos paramètres réseau WSL2. Suivez ces étapes :
+Si vous rencontrez des problèmes liés au réseau, tels que `NoneType object has no attribute 'request'` lors de l'exécution de `make run`, vous devrez peut-être configurer les paramètres réseau de WSL2. Suivez ces étapes :
* Ouvrez ou créez le fichier `.wslconfig` situé à `C:\Users\%username%\.wslconfig` sur votre machine hôte Windows.
* Ajoutez la configuration suivante au fichier `.wslconfig` :
@@ -71,6 +61,6 @@ localhostForwarding=true
```
* Enregistrez le fichier `.wslconfig`.
-* Redémarrez WSL2 complètement en quittant toute instance WSL2 en cours d'exécution et en exécutant la commande `wsl --shutdown` dans votre invite de commande ou terminal.
-* Après avoir redémarré WSL, essayez d'exécuter `make run` à nouveau.
-Le problème réseau devrait être résolu.
+* Redémarrez complètement WSL2 en quittant toutes les instances WSL2 en cours d'exécution et en exécutant la commande `wsl --shutdown` dans votre invite de commande ou terminal.
+* Après avoir redémarré WSL, essayez d'exécuter à nouveau `make run`.
+Le problème de réseau devrait être résolu.
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/upgrade-guide.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/upgrade-guide.md
new file mode 100644
index 0000000000..8dc06f92f1
--- /dev/null
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/upgrade-guide.md
@@ -0,0 +1,72 @@
+
+
+# ⬆️ Guide de mise à niveau
+
+## 0.8.0 (2024-07-13)
+
+### Changements de configuration importants
+
+Dans cette version, nous avons introduit quelques changements importants dans les configurations backend.
+Si vous avez uniquement utilisé OpenHands via l'interface frontend (interface web), aucune action n'est nécessaire.
+
+Voici une liste des changements importants dans les configurations. Ils ne s'appliquent qu'aux utilisateurs qui
+utilisent OpenHands CLI via `main.py`. Pour plus de détails, voir [#2756](https://github.com/All-Hands-AI/OpenHands/pull/2756).
+
+#### Suppression de l'option --model-name de main.py
+
+Veuillez noter que l'option `--model-name`, ou `-m`, n'existe plus. Vous devez configurer les
+configurations LLM dans `config.toml` ou via des variables d'environnement.
+
+#### Les groupes de configuration LLM doivent être des sous-groupes de 'llm'
+
+Avant la version 0.8, vous pouviez utiliser un nom arbitraire pour la configuration LLM dans `config.toml`, par exemple :
+
+```toml
+[gpt-4o]
+model="gpt-4o"
+api_key=""
+```
+
+puis utiliser l'argument CLI `--llm-config` pour spécifier le groupe de configuration LLM souhaité
+par nom. Cela ne fonctionne plus. Au lieu de cela, le groupe de configuration doit être sous le groupe `llm`,
+par exemple :
+
+```toml
+[llm.gpt-4o]
+model="gpt-4o"
+api_key=""
+```
+
+Si vous avez un groupe de configuration nommé `llm`, il n'est pas nécessaire de le modifier, il sera utilisé
+comme groupe de configuration LLM par défaut.
+
+#### Le groupe 'agent' ne contient plus le champ 'name'
+
+Avant la version 0.8, vous pouviez avoir ou non un groupe de configuration nommé `agent` qui
+ressemblait à ceci :
+
+```toml
+[agent]
+name="CodeActAgent"
+memory_max_threads=2
+```
+
+Notez que le champ `name` est maintenant supprimé. Au lieu de cela, vous devez mettre le champ `default_agent`
+sous le groupe `core`, par exemple :
+
+```toml
+[core]
+# autres configurations
+default_agent='CodeActAgent'
+
+[agent]
+llm_config='llm'
+memory_max_threads=2
+
+[agent.CodeActAgent]
+llm_config='gpt-4o'
+```
+
+Notez que, comme pour les sous-groupes `llm`, vous pouvez également définir des sous-groupes `agent`.
+De plus, un agent peut être associé à un groupe de configuration LLM spécifique. Pour plus
+de détails, voir les exemples dans `config.template.toml`.
diff --git a/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/python/python.md b/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/python/python.md
index 626c8e7507..eca64e874b 100644
--- a/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/python/python.md
+++ b/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/python/python.md
@@ -1,3 +1,3 @@
# Python 文档
-部署后文档将会显示在这里。
+部署后文档将显示在此处。
diff --git a/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/about.md b/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/about.md
index a426bd0a75..70c92fa4f8 100644
--- a/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/about.md
+++ b/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/about.md
@@ -1,53 +1,49 @@
----
-sidebar_position: 7
----
-
-# 📚 杂项
+# 📚 其他
## ⭐️ 研究策略
-通过 LLM 完全复制生产级应用程序是一个复杂的任务。我们的策略包含以下几个方面:
+使用大语言模型完全复制生产级应用程序是一项复杂的工作。我们的策略包括:
-1. **核心技术研究:** 专注于基础研究,以理解和改进代码生成和处理的技术方面。
-2. **专家能力:** 通过数据策划、训练方法等方式增强核心组件的有效性。
-3. **任务规划:** 开发错误检测、代码库管理和优化的能力。
-4. **评价:** 建立全面的评价指标,以更好地理解和改进我们的模型。
+1. **核心技术研究:** 专注于基础研究,以理解和改进代码生成和处理的技术方面
+2. **专业能力:** 通过数据管理、训练方法等提高核心组件的效率
+3. **任务规划:** 开发错误检测、代码库管理和优化的能力
+4. **评估:** 建立全面的评估指标,以更好地理解和改进我们的模型
## 🚧 默认代理
-- 我们当前的默认代理是 CodeActAgent,具备生成代码和处理文件的能力。我们正在开发其他代理实现,包括 [SWE Agent](https://swe-agent.com/)。您可以[在这里阅读我们当前的代理集合](./agents)。
+我们当前的默认代理是 [CodeActAgent](agents),它能够生成代码并处理文件。
## 🤝 如何贡献
-OpenHands 是一个社区驱动的项目,我们欢迎每个人的贡献。无论您是开发人员、研究人员,还是对用 AI 提升软件工程领域有兴趣,只要您愿意参与,我们都有很多方式可供选择:
+OpenHands 是一个社区驱动的项目,我们欢迎每个人的贡献。无论你是开发人员、研究人员,还是只是对用 AI 推进软件工程领域感兴趣,都有很多方式可以参与:
-- **代码贡献:** 帮助我们开发核心功能、前端界面或沙箱解决方案。
-- **研究和评价:** 贡献您对 LLM 在软件工程领域理解的见解,参与评估模型,或提出改进建议。
-- **反馈和测试:** 使用 OpenHands 工具集,报告错误,建议功能,或提供可用性方面的反馈。
+- **代码贡献:** 帮助我们开发核心功能、前端界面或沙盒解决方案
+- **研究和评估:** 为我们对大语言模型在软件工程中的应用的理解做出贡献,参与模型评估或提出改进建议
+- **反馈和测试:** 使用 OpenHands 工具集,报告错误,提出功能建议或提供可用性反馈
-详情请查阅[此文件](https://github.com/All-Hands-AI/OpenHands/blob/main/CONTRIBUTING.md)。
+有关详细信息,请查看[此文档](https://github.com/All-Hands-AI/OpenHands/blob/main/CONTRIBUTING.md)。
## 🤖 加入我们的社区
-我们现在有一个 Slack 工作区,用于合作建设 OpenHands,还设有一个 Discord 服务器,用于讨论与该项目、LLM、代理等相关的任何事情。
+我们有 Slack 工作区用于协作构建 OpenHands,也有 Discord 服务器用于讨论任何相关的内容,例如此项目、大语言模型、代理等。
- [Slack 工作区](https://join.slack.com/t/opendevin/shared_invite/zt-2oikve2hu-UDxHeo8nsE69y6T7yFX_BA)
- [Discord 服务器](https://discord.gg/ESHStjSjD4)
-如果您愿意贡献,请随时加入我们的社区。让我们一起简化软件工程!
+如果你想做出贡献,欢迎加入我们的社区。让我们一起简化软件工程!
-🐚 **少写代码,用 OpenHands 做更多的事情。**
+🐚 **用 OpenHands 写更少的代码,做更多的事。**
[](https://star-history.com/#All-Hands-AI/OpenHands&Date)
-## 🛠️ 技术选型
+## 🛠️ 构建技术
-OpenHands 使用了一系列强大的框架和库,提供了坚实的开发基础。以下是项目中使用的关键技术:
+OpenHands 使用强大的框架和库组合构建,为其开发提供了坚实的基础。以下是项目中使用的关键技术:
       
-请注意,这些技术选型仍在进行中,随着项目的发展,可能会添加新的技术或移除现有的技术。我们努力采用最适合、最高效的工具,以增强 OpenHands 的能力。
+请注意,这些技术的选择正在进行中,随着项目的发展,可能会添加其他技术或删除现有技术。我们努力采用最合适和最有效的工具来增强 OpenHands 的功能。
## 📜 许可证
-根据 MIT 许可证分发。详见[我们的许可证](https://github.com/All-Hands-AI/OpenHands/blob/main/LICENSE)了解更多信息。
+根据 MIT 许可证分发。有关更多信息,请参阅[我们的许可证](https://github.com/All-Hands-AI/OpenHands/blob/main/LICENSE)。
diff --git a/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/agents.md b/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/agents.md
index f3b1546e62..90e32f0aad 100644
--- a/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/agents.md
+++ b/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/agents.md
@@ -1,98 +1,23 @@
----
-sidebar_position: 3
----
+# 🧠 主代理和能力
-# 🧠 Agents and Capabilities
-
-## CodeAct Agent
+## CodeActAgent
### 描述
-该Agent实现了CodeAct的思想([论文](https://arxiv.org/abs/2402.01030),[推特](https://twitter.com/xingyaow_/status/1754556835703751087)),将LLM agents的**行为**合并到一个统一的**代码**动作空间中,以实现_简化_和_性能_(详情见论文)。
+这个代理实现了 CodeAct 的思想([论文](https://arxiv.org/abs/2402.01030),[推文](https://twitter.com/xingyaow_/status/1754556835703751087)),将 LLM 代理的**行动**整合到一个统一的**代码**行动空间中,以实现_简单性_和_性能_。
-概念理念如下图所示。在每个回合,Agent可以:
+概念思想如下图所示。在每一轮中,代理可以:
-1. **对话**:用自然语言与人类交流,进行澄清、确认等。
-2. **CodeAct**:选择通过执行代码来完成任务
+1. **对话**:用自然语言与人类交流,以寻求澄清、确认等。
+2. **CodeAct**:选择通过执行代码来执行任务
-- 执行任何有效的Linux `bash`命令
-- 使用[交互式Python解释器](https://ipython.org/)执行任何有效的 `Python`代码。这是通过`bash`命令模拟的,详细信息请参见插件系统。
+- 执行任何有效的 Linux `bash` 命令
+- 使用 [交互式 Python 解释器](https://ipython.org/) 执行任何有效的 `Python` 代码。这是通过 `bash` 命令模拟的,有关更多详细信息,请参阅下面的插件系统。

-### 插件系统
-
-为了使CodeAct agent在仅能访问`bash`动作空间时更强大,CodeAct agent利用了OpenHands的插件系统:
-
-- [Jupyter插件](https://github.com/All-Hands-AI/OpenHands/tree/main/openhands/runtime/plugins/jupyter):通过bash命令实现IPython执行
-- [SWE-agent工具插件](https://github.com/All-Hands-AI/OpenHands/tree/main/openhands/runtime/plugins/swe_agent_commands):为软件开发任务引入的强大bash命令行工具,由[swe-agent](https://github.com/princeton-nlp/swe-agent)提供。
-
### 演示
https://github.com/All-Hands-AI/OpenHands/assets/38853559/f592a192-e86c-4f48-ad31-d69282d5f6ac
-_CodeActAgent使用`gpt-4-turbo-2024-04-09`执行数据科学任务(线性回归)的示例_
-
-### 动作
-
-`Action`,
-`CmdRunAction`,
-`IPythonRunCellAction`,
-`AgentEchoAction`,
-`AgentFinishAction`,
-`AgentTalkAction`
-
-### 观测
-
-`CmdOutputObservation`,
-`IPythonRunCellObservation`,
-`AgentMessageObservation`,
-`UserMessageObservation`
-
-### 方法
-
-| 方法 | 描述 |
-| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
-| `__init__` | 使用`llm`和一系列信息`list[Mapping[str, str]]`初始化Agent |
-| `step` | 使用CodeAct Agent执行一步操作,包括收集前一步的信息并提示模型执行命令。 |
-
-### 进行中的工作 & 下一步
-
-[] 支持Web浏览
-[] 完成CodeAct agent提交Github PR的工作流程
-
-## Planner Agent
-
-### 描述
-
-Planner agent利用特殊的提示策略为解决问题创建长期计划。
-在每一步中,Agent会获得其先前的动作-观测对、当前任务以及基于上一次操作提供的提示。
-
-### 动作
-
-`NullAction`,
-`CmdRunAction`,
-`BrowseURLAction`,
-`GithubPushAction`,
-`FileReadAction`,
-`FileWriteAction`,
-`AgentThinkAction`,
-`AgentFinishAction`,
-`AgentSummarizeAction`,
-`AddTaskAction`,
-`ModifyTaskAction`
-
-### 观测
-
-`Observation`,
-`NullObservation`,
-`CmdOutputObservation`,
-`FileReadObservation`,
-`BrowserOutputObservation`
-
-### 方法
-
-| 方法 | 描述 |
-| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `__init__` | 使用`llm`初始化Agent |
-| `step` | 检查当前步骤是否完成,如果是则返回`AgentFinishAction`。否则,创建计划提示并发送给模型进行推理,将结果作为下一步动作。 |
+_使用 `gpt-4-turbo-2024-04-09` 的 CodeActAgent 执行数据科学任务(线性回归)的示例_。
diff --git a/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/architecture/backend.mdx b/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/architecture/backend.mdx
new file mode 100644
index 0000000000..c22231dc1d
--- /dev/null
+++ b/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/architecture/backend.mdx
@@ -0,0 +1,54 @@
+以下是翻译后的内容:
+
+# 🏛️ 系统架构
+
+