Skip to content

Commit e1caf1d

Browse files
Umpire2018yufansongneubig
authored
Add i18n support for official website (OpenHands#2463)
* feat(i18n): initial i18n setup - Configured i18n settings in docusaurus.config.js - Implemented Translate component and translate function in key components * docs(i18n): complete documentation internationalization - Added support for Simplified Chinese and French * Update docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/troubleshooting/troubleshooting.md * Update docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/troubleshooting/troubleshooting.md * Update docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/troubleshooting/troubleshooting.md * fix(build): resolve broken links causing build failure - Fix issue causing build errors due to broken links in Docusaurus documentation. - Resolve uncontrolled resource consumption in braces (see: GHSA-grv7-fg5c-xmjg). - Bump Docusaurus to ^3.4.0 to fix MDX loader: linkify should process the md AST instead of the md string. * fix: sync with commit 868b746 - Change to `docusaurus write-translations` to provide translation for JSON files. --------- Co-authored-by: Yufan Song <[email protected]> Co-authored-by: Graham Neubig <[email protected]>
1 parent 868b746 commit e1caf1d

44 files changed

Lines changed: 3671 additions & 2187 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/docusaurus.config.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,13 @@ const config: Config = {
2323
// useful metadata like html lang. For example, if your site is Chinese, you
2424
// may want to replace "en" with "zh-Hans".
2525
i18n: {
26-
defaultLocale: "en",
27-
locales: ["en"],
26+
defaultLocale: 'en',
27+
locales: ['en', 'fr', 'zh-Hans'],
28+
localeConfigs: {
29+
en: {
30+
htmlLang: 'en-GB',
31+
},
32+
},
2833
},
2934

3035
presets: [
@@ -78,6 +83,10 @@ const config: Config = {
7883
label: "GitHub",
7984
position: "right",
8085
},
86+
{
87+
type: 'localeDropdown',
88+
position: 'left',
89+
},
8190
],
8291
},
8392
prism: {

docs/i18n/fr/code.json

Lines changed: 406 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"title": {
3+
"message": "Blog",
4+
"description": "The title for the blog used in SEO"
5+
},
6+
"description": {
7+
"message": "Blog",
8+
"description": "The description for the blog used in SEO"
9+
},
10+
"sidebar.title": {
11+
"message": "Articles récents",
12+
"description": "The label for the left sidebar"
13+
}
14+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"version.label": {
3+
"message": "Next",
4+
"description": "The label for version current"
5+
},
6+
"sidebar.docsSidebar.category.🤖 Backends LLM": {
7+
"message": "🤖 Backends LLM",
8+
"description": "The label for category 🤖 Backends LLM in sidebar docsSidebar"
9+
},
10+
"sidebar.docsSidebar.category.🚧 Dépannage": {
11+
"message": "🚧 Dépannage",
12+
"description": "The label for category 🚧 Dépannage in sidebar docsSidebar"
13+
},
14+
"sidebar.apiSidebar.category.Backend": {
15+
"message": "Backend",
16+
"description": "The label for category Backend in sidebar apiSidebar"
17+
}
18+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Documentation Python
2+
3+
Les documents apparaîtront ici après le déploiement.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
```json
2+
{
3+
"items": ["python/python"],
4+
"label": "Backend",
5+
"type": "categorie"
6+
}
7+
```
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
sidebar_position: 7
3+
---
4+
5+
# 📚 Divers {#misc}
6+
7+
## ⭐️ Stratégie de Recherche {#research-strategy}
8+
9+
La réalisation d'une réplication complète des applications de production avec les LLM est une entreprise complexe. Notre stratégie implique :
10+
11+
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.
12+
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.
13+
3. **Planification des Tâches :** Développer des capacités pour la détection de bogues, la gestion du code source et l'optimisation.
14+
4. **Évaluation :** Établir des métriques d'évaluation complètes pour mieux comprendre et améliorer nos modèles.
15+
16+
## 🚧 Agent Par Défaut {#default-agent}
17+
18+
- 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).
19+
20+
## 🤝 Comment Contribuer {#how-to-contribute}
21+
22+
OpenDevin 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 :
23+
24+
- **Contributions de Code :** Aidez-nous à développer les fonctionnalités de base, l'interface frontend ou les solutions de sandboxing.
25+
- **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.
26+
- **Retour d'Information et Tests :** Utilisez l'ensemble d'outils OpenDevin, signalez des bogues, suggérez des fonctionnalités ou fournissez des retours sur l'ergonomie.
27+
28+
Pour plus de détails, veuillez consulter [ce document](https://github.com/OpenDevin/OpenDevin/blob/main/CONTRIBUTING.md).
29+
30+
## 🤖 Rejoignez Notre Communauté {#join-our-community}
31+
32+
Nous avons maintenant à la fois un espace de travail Slack pour la collaboration sur la construction d'OpenDevin et un serveur Discord pour discuter de tout ce qui est lié, par exemple, à ce projet, aux LLM, aux agents, etc.
33+
34+
- [Espace de travail Slack](https://join.slack.com/t/opendevin/shared_invite/zt-2jsrl32uf-fTeeFjNyNYxqSZt5NPY3fA)
35+
- [Serveur Discord](https://discord.gg/ESHStjSjD4)
36+
37+
Si vous souhaitez contribuer, n'hésitez pas à rejoindre notre communauté. Simplifions l'ingénierie logicielle ensemble !
38+
39+
🐚 **Codez moins, créez plus avec OpenDevin.**
40+
41+
[![Star History Chart](https://api.star-history.com/svg?repos=OpenDevin/OpenDevin&type=Date)](https://star-history.com/#OpenDevin/OpenDevin&Date)
42+
43+
## 🛠️ Construit Avec {#built-with}
44+
45+
OpenDevin 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 :
46+
47+
![FastAPI](https://img.shields.io/badge/FastAPI-black?style=for-the-badge) ![uvicorn](https://img.shields.io/badge/uvicorn-black?style=for-the-badge) ![LiteLLM](https://img.shields.io/badge/LiteLLM-black?style=for-the-badge) ![Docker](https://img.shields.io/badge/Docker-black?style=for-the-badge) ![Ruff](https://img.shields.io/badge/Ruff-black?style=for-the-badge) ![MyPy](https://img.shields.io/badge/MyPy-black?style=for-the-badge) ![LlamaIndex](https://img.shields.io/badge/LlamaIndex-black?style=for-the-badge) ![React](https://img.shields.io/badge/React-black?style=for-the-badge)
48+
49+
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'OpenDevin.
50+
51+
## 📜 Licence {#license}
52+
53+
Distribué sous la licence MIT. Voir [notre licence](https://github.com/OpenDevin/OpenDevin/blob/main/LICENSE) pour plus d'informations.
Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
---
2+
sidebar_position: 3
3+
---
4+
5+
# 🧠 Agents et Capacités
6+
7+
## Agent CodeAct
8+
9+
### Description
10+
11+
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).
12+
13+
L'idée conceptuelle est illustrée ci-dessous. À chaque tour, l'agent peut :
14+
15+
1. **Converse** : Communiquer avec les humains en langage naturel pour demander des clarifications, des confirmations, etc.
16+
2. **CodeAct** : Choisir d'accomplir la tâche en exécutant du code
17+
18+
- Exécuter toute commande `bash` Linux valide
19+
- 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.
20+
21+
![image](https://github.com/OpenDevin/OpenDevin/assets/38853559/92b622e3-72ad-4a61-8f41-8c040b6d5fb3)
22+
23+
### Système de Plugin
24+
25+
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'OpenDevin:
26+
27+
- [Plugin Jupyter](https://github.com/OpenDevin/OpenDevin/tree/main/opendevin/runtime/plugins/jupyter) : pour l'exécution d'IPython via la commande bash
28+
- [Plugin outil agent SWE](https://github.com/OpenDevin/OpenDevin/tree/main/opendevin/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).
29+
30+
### Démonstration
31+
32+
https://github.com/OpenDevin/OpenDevin/assets/38853559/f592a192-e86c-4f48-ad31-d69282d5f6ac
33+
34+
_Exemple de CodeActAgent avec `gpt-4-turbo-2024-04-09` effectuant une tâche de science des données (régression linéaire)_
35+
36+
### Actions
37+
38+
`Action`,
39+
`CmdRunAction`,
40+
`IPythonRunCellAction`,
41+
`AgentEchoAction`,
42+
`AgentFinishAction`,
43+
`AgentTalkAction`
44+
45+
### Observations
46+
47+
`CmdOutputObservation`,
48+
`IPythonRunCellObservation`,
49+
`AgentMessageObservation`,
50+
`UserMessageObservation`
51+
52+
### Méthodes
53+
54+
| Méthode | Description |
55+
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
56+
| `__init__` | Initialise un agent avec `llm` et une liste de messages `list[Mapping[str, str]]` |
57+
| `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. |
58+
| `search_memory` | Pas encore implémenté |
59+
60+
### En cours de réalisation & prochaine étape
61+
62+
[] Support de la navigation sur le web
63+
[] Compléter le workflow pour l'agent CodeAct afin de soumettre des PRs Github
64+
65+
## Agent Monologue
66+
67+
### Description
68+
69+
L'agent Monologue utilise la mémoire à long terme et à court terme pour accomplir des tâches.
70+
La mémoire à long terme est stockée en tant qu'objet LongTermMemory et le modèle l'utilise pour rechercher des exemples du passé.
71+
La mémoire à court terme est stockée en tant qu'objet Monologue et le modèle peut la condenser si nécessaire.
72+
73+
### Actions
74+
75+
`Action`,
76+
`NullAction`,
77+
`CmdRunAction`,
78+
`FileWriteAction`,
79+
`FileReadAction`,
80+
`AgentRecallAction`,
81+
`BrowseURLAction`,
82+
`GithubPushAction`,
83+
`AgentThinkAction`
84+
85+
### Observations
86+
87+
`Observation`,
88+
`NullObservation`,
89+
`CmdOutputObservation`,
90+
`FileReadObservation`,
91+
`AgentRecallObservation`,
92+
`BrowserOutputObservation`
93+
94+
### Méthodes
95+
96+
| Méthode | Description |
97+
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
98+
| `__init__` | Initialise l'agent avec une mémoire à long terme et un monologue interne |
99+
| `_add_event` | Ajoute des événements au monologue de l'agent et condense avec un résumé automatiquement si le monologue est trop long |
100+
| `_initialize` | Utilise la liste `INITIAL_THOUGHTS` pour donner à l'agent un contexte pour ses capacités et comment naviguer dans le `/workspace` |
101+
| `step` | Modifie l'état actuel en ajoutant les actions et observations les plus récentes, puis invite le modèle à réfléchir à la prochaine action à entreprendre. |
102+
| `search_memory` | Utilise `VectorIndexRetriever` pour trouver des souvenirs liés à la mémoire à long terme. |
103+
104+
## Agent Planificateur
105+
106+
### Description
107+
108+
L'agent planificateur utilise une stratégie d'incitation spéciale pour créer des plans à long terme pour résoudre les problèmes.
109+
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.
110+
111+
### Actions
112+
113+
`NullAction`,
114+
`CmdRunAction`,
115+
`CmdKillAction`,
116+
`BrowseURLAction`,
117+
`GithubPushAction`,
118+
`FileReadAction`,
119+
`FileWriteAction`,
120+
`AgentRecallAction`,
121+
`AgentThinkAction`,
122+
`AgentFinishAction`,
123+
`AgentSummarizeAction`,
124+
`AddTaskAction`,
125+
`ModifyTaskAction`,
126+
127+
### Observations
128+
129+
`Observation`,
130+
`NullObservation`,
131+
`CmdOutputObservation`,
132+
`FileReadObservation`,
133+
`AgentRecallObservation`,
134+
`BrowserOutputObservation`
135+
136+
### Méthodes
137+
138+
| Méthode | Description |
139+
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
140+
| `__init__` | Initialise un agent avec `llm` |
141+
| `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. |
142+
| `search_memory` | Pas encore implémenté |
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
sidebar_position: 4
3+
---
4+
5+
# 🏛️ Aperçu de l'Architecture Système
6+
7+
Voici un aperçu 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 avec l'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.
8+
9+
![system_architecture.svg](/img/system_architecture.svg)
10+
11+
Cet aperçu est simplifié pour montrer les principaux composants et leurs interactions. Pour une vue plus détaillée de l'architecture du backend, consultez la section [Architecture du Backend](#backend-architecture-fr).
12+
13+
# Architecture du Backend {#backend-architecture-fr}
14+
15+
_**Avertissement**: L'architecture du backend est en cours de développement et est sujette à modifications. Le schéma suivant montre l'architecture actuelle du backend basée sur le commit indiqué dans le pied de page du schéma._
16+
17+
![backend_architecture.svg](/img/backend_architecture.svg)
18+
19+
<details>
20+
<summary>Mise à jour de ce Schéma</summary>
21+
<div>
22+
La génération du schéma d'architecture du backend est partiellement automatisée.
23+
Le schéma est généré à partir des annotations de type dans le code en utilisant l'outil py2puml.
24+
Le schéma est ensuite revu manuellement, ajusté et exporté en PNG et SVG.
25+
26+
## Prérequis
27+
28+
- Un environnement Python dans lequel opendevin est exécutable
29+
(selon les instructions du fichier README.md à la racine du dépôt)
30+
- [py2puml](https://github.com/lucsorel/py2puml) installé
31+
32+
## Étapes
33+
34+
1. Générez automatiquement le schéma en exécutant la commande suivante depuis la racine du dépôt :
35+
`py2puml opendevin opendevin > docs/architecture/backend_architecture.puml`
36+
37+
2. Ouvrez le fichier généré dans un éditeur PlantUML, par exemple Visual Studio Code avec l'extension PlantUML ou [PlantText](https://www.planttext.com/)
38+
39+
3. Révisez le PUML généré et apportez toutes les modifications nécessaires au schéma (ajoutez les parties manquantes, corrigez les erreurs, améliorez l'agencement).
40+
_py2puml crée le schéma à partir des annotations de type dans le code, donc les annotations de type manquantes ou incorrectes peuvent entraîner un schéma incomplet ou incorrect._
41+
42+
4. Examinez la différence entre le nouveau schéma et le précédent et vérifiez manuellement si les modifications sont correctes.
43+
_Assurez-vous de ne pas supprimer les parties ajoutées manuellement au schéma par le passé et qui sont toujours pertinentes._
44+
45+
5. Ajoutez le hash du commit qui a été utilisé pour générer le schéma dans le pied de page du schéma.
46+
47+
6. Exporte le schéma sous forme de fichiers PNG et SVG et remplacez les schémas existants dans le répertoire `docs/architecture`. Cela peut être fait avec (par exemple [PlantText](https://www.planttext.com/))
48+
49+
</div>
50+
</details>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
sidebar_position: 6
3+
---
4+
5+
# ✅ Fournir des Commentaires
6+
7+
Lorsque vous utilisez OpenDevin, 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 OpenDevin 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-OpenDevin !
8+
9+
## 📝 Comment Fournir des Commentaires
10+
11+
Fournir des commentaires est simple ! Lorsque vous utilisez OpenDevin, 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é.
12+
13+
<iframe width="560" height="315" src="https://www.youtube.com/embed/5rFx-StMVV0?si=svo7xzp6LhGK_GXr" title="Lecteur vidéo YouTube" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
14+
15+
## 📜 Licence de Données et Confidentialité
16+
17+
* Les données **publiques** seront distribuées sous la licence MIT, comme OpenDevin 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 !
18+
* Les données **privées** ne seront partagées qu'avec l'équipe OpenDevin dans le but d'améliorer OpenDevin.

0 commit comments

Comments
 (0)