Aphra es un agente de traducción de código abierto diseñado para mejorar la calidad de las traducciones de texto al aprovechar los modelos de idiomas grandes (LLM). A diferencia de las herramientas de traducción tradicionales que dependen únicamente de las traducciones directas, APHRA introduce un proceso de contexto múltiple que incluye la creación de glosario, la búsqueda contextual, la crítica y el refinamiento. Este enfoque tiene como objetivo producir traducciones que no solo conserven el significado original, sino que también incorporen notas de traductor, ajustes contextuales y mejoras estilísticas. Ya sea que esté traduciendo publicaciones de blog, artículos o documentos complejos, Aphra garantiza una traducción más matizada y precisa que respeta la integridad del contenido original.
Nota importante: Aphra no está destinado a reemplazar el trabajo de un traductor profesional. En cambio, tiene como objetivo facilitar el soporte multilingüe en pequeños proyectos donde la contratación de un traductor profesional puede no ser factible. Aphra ofrece una solución práctica para lograr traducciones de calidad en contextos donde un servicio de traducción totalmente profesional está fuera de alcance, asegurando que las barreras del idioma no obstaculicen el alcance global de su contenido.
Demostración · Informe de error · Función de solicitud · Wiki
Motivación
¿Por qué Aphra?
Cómo funciona Afra
Manifestación
Empezando
Personalización e ideas para extensiones
Licencia
Que contribuye
Referencias
La chispa para comenzar este proyecto provino del deseo de desafiarme al diseñar un flujo de trabajo de agente complejo desde cero. El objetivo principal aquí es aprender y crecer a través del proceso de construcción de algo como esto desde cero. Elegí el tema de la traducción porque he estado jugando con la idea de publicar mi blog personal en inglés también. He integrado con éxito APHRA en la tubería de publicación, lo que hace que las traducciones sean una parte perfecta del proceso. Si está interesado en cómo se logró esto, puede encontrar una guía detallada en el wiki.
Como profesor de informática, también vi esto como una gran oportunidad para crear un proyecto pequeño, pero completo, de código abierto que sigue las mejores prácticas para publicar en GitHub. Es por eso que hay tantas opciones para comenzar, todas diseñadas con un enfoque didáctico en mente. Cualquier comentario sobre cómo mejorar en esa área es más que bienvenido.
El nombre "Aphra" es un tributo a Aphra Behn, una de las primeras mujeres inglesas en ganarse la vida en el siglo XVII. Behn fue un dramaturgo, poeta y traductor que rompió barreras culturales significativas, convirtiéndola en una pionera temprana de las mujeres en la literatura.
Nombrar este proyecto después de Aphra Behn es una forma de honrar su legado de desafiar el status quo y dar forma a la forma en que pensamos sobre el lenguaje y la expresión. Su influencia nos recuerda la importancia de crear espacios donde se pueden escuchar voces y las ideas pueden florecer.
Como dijo Virginia Woolf: "Todas las mujeres juntas, deberían dejar que las flores caigan sobre la tumba de Aphra Behn ... porque fue ella quien se ganó el derecho de decir sus mentes" (Woolf, Virginia. Una habitación propia. 1928, a los 65 años).
APHRA emplea un enfoque de agente de varias etapas para la traducción, diseñado para imitar de cerca los pasos que un traductor humano podría tomar cuando trabaja en un texto. Así es como se desarrolla el proceso:

Este enfoque estructurado permite a APHRA producir traducciones que no solo son lingüísticamente precisas sino también ricas contextualmente, lo que la convierte en una herramienta valiosa para pequeños proyectos con el objetivo de llegar a una audiencia global sin los recursos para contratar a un traductor profesional.
Puede probar Aphra aquí: https://huggingface.co/spaces/davidlms/aphra.
Para comenzar con Aphra, siga estos pasos:
Asegúrese de tener lo siguiente instalado en su sistema:
git (para clonar el repositorio)pip (instalador de paquetes de Python)Antes de continuar con la configuración o instalación, debe clonar el repositorio. Este es un paso común requerido para todos los métodos de instalación.
Clon el repositorio:
git clone https://github.com/DavidLMS/aphra.gitNavegue al directorio del proyecto:
cd aphraCopie el archivo de configuración de ejemplo:
cp config.example.toml config.toml Edite config.toml para agregar su tecla API OpenRouter y los nombres de modelos deseados.
Después de configurar el archivo config.toml , puede:
Nota: Si elige continuar con la instalación, recuerde mover el archivo
config.tomla la ubicación del script usando APHRA, o especifique su ruta directamente al llamar a la función.
pip Esta opción es la forma más sencilla de instalar Aphra si no necesita aislar sus dependencias de otros proyectos. Instala directamente el paquete en su sistema usando pip , que es el Administrador de paquetes estándar para Python.
pip install . La poesía es una herramienta de gestión de dependencias y envasado para Python que lo ayuda a administrar las dependencias de su proyecto de manera más efectiva. También simplifica el proceso de empacar sus proyectos de Python.
Instale poesía si aún no lo ha hecho:
curl -sSL https://install.python-poetry.org | python3 -Instalar dependencias y el paquete:
poetry installActive el entorno virtual creado por la poesía:
poetry shellUn entorno virtual es un entorno aislado que le permite instalar paquetes por separado de la instalación de Python de su sistema. Esto es particularmente útil para evitar conflictos entre los paquetes requeridos por diferentes proyectos.
Crear y activar un entorno virtual:
python -m venv aphra
source aphra/bin/activate # On Windows: aphraScriptsactivateElimine el archivo pyproject.toml:
rm pyproject.tomlInstale el paquete localmente:
pip install . Docker es una plataforma que le permite empaquetar una aplicación y sus dependencias en un "contenedor". Este contenedor puede ejecutarse consistentemente en diferentes entornos, lo que lo hace ideal para garantizar que su proyecto funcione de la misma manera en cualquier máquina.
Construye la imagen Docker:
docker build -t aphra .Nota: Si encuentra errores de permiso durante la compilación, intente ejecutar el comando con
sudo.
Asegúrese de que el script de entrada tenga permisos de ejecución. Ejecute el siguiente comando:
chmod +x entrypoint.shPara usuarios de Windows: puede agregar permisos de ejecución utilizando Git Bash o WSL (subsistema de Windows para Linux). Si está utilizando PowerShell o el símbolo del sistema, es posible que no necesite cambiar los permisos, pero asegúrese de que el script sea ejecutable en su entorno.
Comprender el comando docker run :
-v $(pwd):/workspace : esta opción monta su directorio actual ( $(pwd) en sistemas similares a Unix, %cd% en Windows) al directorio /workspace dentro del contenedor. Esto permite que el contenedor acceda a archivos en su directorio actual.aphra : Este es el nombre de la imagen de Docker que construyó en el Paso 1.English Spanish : estos son los idiomas de origen y objetivo para la traducción. Reemplácelos con los idiomas que necesita.input.md : esta es la ruta al archivo de entrada en su máquina host.output.md : esta es la ruta donde se guardará la salida traducida en su máquina host.Ejecute el contenedor Docker:
docker run -v $( pwd ) :/workspace aphra English Spanish input.md output.mdMuestre la traducción imprimiendo el contenido del archivo de salida:
cat output.mdGet-Content output.md type output.md Puede ejecutar Aphra directamente desde el terminal usando el script aphra_runner.py . Esto es particularmente útil para automatizar las traducciones como parte de un flujo de trabajo o tubería más grande.
Para traducir un archivo desde la línea de comandos, use la siguiente sintaxis:
python aphra_runner.py < config_file > < source_language > < target_language > < input_file > < output_file ><config_file> : ruta al archivo de configuración que contiene claves API y configuraciones del modelo (por ejemplo, config.toml ).<source_language> : el idioma del texto de entrada (por ejemplo, "español").<target_language> : el idioma que desea traducir el texto en (por ejemplo, "inglés").<input_file> : ruta al archivo de entrada que contiene el texto que desea traducir.<output_file> : ruta donde se guardará el texto traducido.Ejemplo:
python aphra_runner.py config.toml Spanish English input.md output.mdEn este ejemplo:
config.toml .input.md se traduce del español al inglés.output.md . Si prefiere usar APHRA directamente en su código Python, la función translate le permite traducir texto de un idioma a otro utilizando los modelos de idioma configurados. La función toma los siguientes parámetros:
source_language : el idioma del texto de entrada (por ejemplo, "español").target_language : el idioma que desea traducir el texto en (por ejemplo, "inglés").text : el texto que desea traducir.config_file : la ruta al archivo de configuración que contiene claves API y configuraciones del modelo. El valor predeterminado es "config.toml".log_calls : un booleano que indica si registrar las llamadas de API para fines de depuración. El valor predeterminado es False . Así es como puede usar la función translate de manera genérica:
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 )Supongamos que quieres traducir la oración "Hola Mundo" del español al inglés. El código se vería así:
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 tiene un archivo Markdown ( input.md ) que contiene el texto que desea traducir, puede leer el archivo, traducir su contenido y luego imprimir el resultado o guardarlo en otro archivo. Aquí está como:
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 )En este ejemplo:
input.md .output.md . Aphra está diseñado con flexibilidad en mente, lo que facilita la adaptación de sus necesidades específicas. La forma más sencilla de personalizar APHRA es mantener el flujo de llamadas definido y modificar las solicitudes dentro de la carpeta de prompts para cada paso. Este enfoque le permite adaptar la salida al resultado deseado para la mayoría de los casos de uso.
Si necesita modificar el flujo en sí, deberá sumergirse en el código en translate.py . Si bien esto es un poco más complejo, es completamente factible para aquellos que buscan extender la funcionalidad de Aphra.
Aquí hay algunas ideas para más extensiones:
Siéntase libre de experimentar y extender Afra de manera que se adapte a sus proyectos e ideas.
Aphra se libera bajo la licencia MIT. Usted es libre de usar, modificar y distribuir el código tanto para fines comerciales como no comerciales.
¡Las contribuciones a Aphra son bienvenidas! Ya sea que esté mejorando el código, mejorar la documentación o sugerir nuevas características, su entrada es valiosa. Consulte el archivo Contributing.MD para obtener pautas sobre cómo comenzar y hacer que sus contribuciones cuenten.