APHRA est un agent de traduction open source conçu pour améliorer la qualité des traductions de texte en tirant parti des modèles de grands langues (LLM). Contrairement aux outils de traduction traditionnels qui s'appuient uniquement sur les traductions directes, APHRA introduit un processus en plusieurs étapes et conscient du contexte qui comprend la création de glossaire, la recherche contextuelle, la critique et le raffinement. Cette approche vise à produire des traductions qui non seulement conservent la signification d'origine, mais aussi incorporer des notes de traductrice, des ajustements contextuels et des améliorations stylistiques. Que vous traduisiez des articles de blog, des articles ou des documents complexes, APHRA assure une traduction plus nuancée et précise qui respecte l'intégrité du contenu original.
Remarque importante: APHRA n'est pas destiné à remplacer le travail d'un traducteur professionnel. Au lieu de cela, il vise à faciliter le soutien multilingue dans de petits projets où l'embauche d'un traducteur professionnel peut ne pas être possible. APHRA propose une solution pratique pour obtenir des traductions de qualité dans des contextes où un service de traduction entièrement professionnel est hors de portée, garantissant que les barrières linguistiques n'entravent pas la portée mondiale de votre contenu.
Démo · Rapport Bogue · Fonction de demande · Wiki
Motivation
Pourquoi Aphra?
Comment fonctionne Aphra
Démo
Commencer
Personnalisation et idées pour les extensions
Licence
Contributif
Références
L'étincelle pour commencer ce projet est venue d'un désir de me défier en concevant un flux de travail agentique complexe à partir de zéro. L'objectif principal ici est d'apprendre et de se développer tout au long du processus de construction de quelque chose comme ça à partir de zéro. J'ai choisi le thème de la traduction parce que j'ai également joué avec l'idée de publier mon blog personnel en anglais. J'ai réussi à intégrer Aphra dans le pipeline de publication, faisant des traductions une partie transparente du processus. Si vous êtes intéressé par la façon dont cela a été réalisé, vous pouvez trouver un guide détaillé dans le wiki.
En tant que professeur d'informatique, j'ai également vu cela comme une excellente occasion de créer un petit projet open-source mais complet qui suit les meilleures pratiques pour publier sur Github. C'est pourquoi il y a tellement d'options pour commencer, toutes conçues avec une approche didactique à l'esprit. Tout commentaire sur la façon de s'améliorer dans ce domaine est plus que bienvenu.
Le nom "Aphra" est un hommage à Aphra Behn, l'une des premières femmes anglaises à gagner sa vie en écrivant au 17ème siècle. Behn était un dramaturge, un poète et un traducteur qui ont franchi des barrières culturelles importantes, faisant d'elle une première pionnière pour les femmes en littérature.
Nommer ce projet après Aphra Behn est un moyen d'honorer son héritage de défier le statu quo et de façonner notre façon de penser la langue et l'expression. Son influence nous rappelle l'importance de créer des espaces où les voix peuvent être entendues et les idées peuvent s'épanouir.
Comme Virginia Woolf l'a dit célèbre: "Toutes les femmes ensemble, devraient laisser les fleurs tomber sur la tombe d'Aphra Behn ... Car c'est elle qui leur a valu le droit de parler leur esprit" (Woolf, Virginie. Une pièce de la sienne. 1928, à 65 ans).
APHRA utilise une approche agentique en plusieurs étapes de la traduction, conçue pour imiter étroitement les étapes qu'un traducteur humain pourrait prendre lorsqu'il travaille sur un texte. Voici comment le processus se déroule:

Cette approche structurée permet à l'APHRA de produire des traductions qui sont non seulement linguistiquement exactes mais aussi contextuellement riches, ce qui en fait un outil précieux pour les petits projets visant à atteindre un public mondial sans les ressources pour embaucher un traducteur professionnel.
Vous pouvez tester Aphra ici: https://huggingface.co/spaces/davidlms/aphra.
Pour commencer avec Aphra, suivez ces étapes:
Assurez-vous que vous avez installé les suivants sur votre système:
git (pour cloner le référentiel)pip (installateur de package Python)Avant de procéder à la configuration ou à l'installation, vous devez cloner le référentiel. Il s'agit d'une étape courante requise pour toutes les méthodes d'installation.
Clone le référentiel:
git clone https://github.com/DavidLMS/aphra.gitNaviguer dans le répertoire du projet:
cd aphraCopiez l'exemple de fichier de configuration:
cp config.example.toml config.toml Modifiez config.toml pour ajouter votre touche API OpenRouter et vos noms de modèle souhaités.
Après avoir configuré le fichier config.toml , vous pouvez soit:
Remarque: Si vous choisissez de procéder à l'installation, n'oubliez pas de déplacer le fichier
config.tomlvers l'emplacement du script à l'aide d'Aphra, ou spécifiez son chemin directement lors de l'appel de la fonction.
pip Cette option est le moyen le plus simple d'installer APHRA si vous n'avez pas besoin d'isoler ses dépendances à partir d'autres projets. Il installe directement le package sur votre système à l'aide pip , qui est le gestionnaire de package standard pour Python.
pip install . La poésie est un outil de gestion des dépendances et d'emballage pour Python qui vous aide à gérer plus efficacement les dépendances de votre projet. Il simplifie également le processus d'emballage de vos projets Python.
Installez la poésie si vous ne l'avez pas déjà fait:
curl -sSL https://install.python-poetry.org | python3 -Installez les dépendances et le package:
poetry installActivez l'environnement virtuel créé par la poésie:
poetry shellUn environnement virtuel est un environnement isolé qui vous permet d'installer des packages séparément de l'installation Python de votre système. Ceci est particulièrement utile pour éviter les conflits entre les packages requis par différents projets.
Créer et activer un environnement virtuel:
python -m venv aphra
source aphra/bin/activate # On Windows: aphraScriptsactivateSupprimer le fichier pyproject.toml:
rm pyproject.tomlInstallez le package localement:
pip install . Docker est une plate-forme qui vous permet d'emballer une application et ses dépendances dans un "conteneur". Ce conteneur peut fonctionner de manière cohérente dans différents environnements, ce qui le rend idéal pour s'assurer que votre projet fonctionne de la même manière sur n'importe quelle machine.
Construisez l'image Docker:
docker build -t aphra .Remarque: Si vous rencontrez des erreurs d'autorisation pendant la construction, essayez d'exécuter la commande avec
sudo.
Assurez-vous que le script d'entrée a des autorisations d'exécution. Exécutez la commande suivante:
chmod +x entrypoint.shPour les utilisateurs de Windows: vous pouvez ajouter des autorisations d'exécution à l'aide de Git Bash ou WSL (sous-système Windows pour Linux). Si vous utilisez PowerShell ou Invite Command, vous n'aurez peut-être pas besoin de modifier les autorisations, mais assurez-vous que le script est exécutable dans votre environnement.
Comprendre la commande docker run :
-v $(pwd):/workspace : Cette option monte votre répertoire actuel ( $(pwd) dans les systèmes de type UNIX, %cd% sous Windows) dans le répertoire d' /workspace à l'intérieur du conteneur. Cela permet au conteneur d'accéder aux fichiers dans votre répertoire actuel.aphra : Ceci est le nom de l'image Docker que vous avez construite à l'étape 1.English Spanish : ce sont les langues source et cible pour la traduction. Remplacez-les par les langues dont vous avez besoin.input.md : il s'agit du chemin d'accès au fichier d'entrée de votre machine hôte.output.md : il s'agit du chemin où la sortie traduite sera enregistrée sur votre machine hôte.Exécutez le conteneur Docker:
docker run -v $( pwd ) :/workspace aphra English Spanish input.md output.mdAffichez la traduction en imprimant le contenu du fichier de sortie:
cat output.mdGet-Content output.md type output.md Vous pouvez exécuter Aphra directement à partir du terminal à l'aide du script aphra_runner.py . Ceci est particulièrement utile pour automatiser les traductions dans le cadre d'un flux de travail ou d'un pipeline plus large.
Pour traduire un fichier à partir de la ligne de commande, utilisez la syntaxe suivante:
python aphra_runner.py < config_file > < source_language > < target_language > < input_file > < output_file ><config_file> : Chemin vers le fichier de configuration contenant des touches API et des paramètres de modèle (par exemple, config.toml ).<source_language> : la langue du texte d'entrée (par exemple, "espagnol").<target_language> : La langue que vous souhaitez traduire le texte (par exemple, "anglais").<input_file> : Chemin vers le fichier d'entrée contenant le texte que vous souhaitez traduire.<output_file> : chemin où le texte traduit sera enregistré.Exemple:
python aphra_runner.py config.toml Spanish English input.md output.mdDans cet exemple:
config.toml est utilisé.input.md est traduit de l'espagnol en anglais.output.md . Si vous préférez utiliser APHRA directement dans votre code Python, la fonction translate vous permet de traduire le texte d'une langue à une autre en utilisant les modèles de langage configurés. La fonction prend les paramètres suivants:
source_language : la langue du texte d'entrée (par exemple, "espagnol").target_language : la langue dans laquelle vous souhaitez traduire le texte (par exemple, "anglais").text : le texte que vous souhaitez traduire.config_file : le chemin d'accès au fichier de configuration contenant des touches API et des paramètres de modèle. Par défaut "config.toml".log_calls : Un booléen indiquant s'il faut enregistrer les appels de l'API à des fins de débogage. Par défaut est False . Voici comment vous pouvez utiliser la fonction translate de manière générique:
from aphra import translate
translation = translate ( source_language = 'source_language' ,
target_language = 'target_language' ,
text = 'text_to_translate' ,
config_file = 'config.toml' ,
log_calls = False )
print ( translation )Supposons que vous vouliez traduire la phrase "Hola Mundo" de l'espagnol à l'anglais. Le code ressemblerait à ceci:
from aphra import translate
translation = translate ( source_language = 'Spanish' ,
target_language = 'English' ,
text = 'Hola mundo' ,
config_file = 'config.toml' ,
log_calls = False )
print ( translation ) Si vous avez un fichier Markdown ( input.md ) contenant le texte que vous souhaitez traduire, vous pouvez lire le fichier, traduire son contenu, puis imprimer le résultat ou l'enregistrer dans un autre fichier. Voici comment:
from aphra import translate
# Read the content from the Markdown file
with open ( 'input.md' , 'r' , encoding = 'utf-8' ) as file :
text_to_translate = file . read ()
# Translate the content from Spanish to English
translation = translate ( source_language = 'Spanish' ,
target_language = 'English' ,
text = text_to_translate ,
config_file = 'config.toml' ,
log_calls = False )
# Print the translation or save it to a file
print ( translation )
with open ( 'output.md' , 'w' , encoding = 'utf-8' ) as output_file :
output_file . write ( translation )Dans cet exemple:
input.md .output.md . APHRA est conçu avec une flexibilité à l'esprit, ce qui facilite l'adaptation à vos besoins spécifiques. Le moyen le plus simple de personnaliser l'APHRA est de maintenir le flux d'appel défini et de modifier les invites dans le dossier prompts pour chaque étape. Cette approche vous permet d'adapter la sortie au résultat souhaité pour la plupart des cas d'utilisation.
Si vous devez modifier le flux lui-même, vous devrez plonger dans le code dans translate.py . Bien que cela soit un peu plus complexe, il est entièrement faisable pour ceux qui cherchent à étendre les fonctionnalités d'Aphra.
Voici quelques idées pour d'autres extensions:
N'hésitez pas à expérimenter et à étendre l'Aphra de manière à correspondre à vos projets et idées.
APHRA est libéré sous la licence du MIT. Vous êtes libre d'utiliser, de modifier et de distribuer le code à des fins commerciales et non commerciales.
Les contributions à Aphra sont les bienvenues! Qu'il s'agisse d'améliorer le code, d'améliorer la documentation ou de suggérer de nouvelles fonctionnalités, votre contribution est précieuse. Veuillez consulter le fichier contribution.md pour les directives sur la façon de commencer et que vos contributions comptent.