O APHRA é um agente de tradução de código aberto projetado para aprimorar a qualidade das traduções de texto, alavancando os grandes modelos de idiomas (LLMS). Diferentemente das ferramentas de tradução tradicionais que dependem apenas de traduções diretas, a Aphra apresenta um processo de vários estágios e com reconhecimento de contexto que inclui criação do glossário, pesquisa contextual, crítica e refinamento. Essa abordagem visa produzir traduções que não apenas mantêm o significado original, mas também incorporam notas do tradutor, ajustes contextuais e melhorias estilísticas. Esteja você traduzindo postagens, artigos ou documentos complexos, o APHRA garante uma tradução mais sutil e precisa que respeite a integridade do conteúdo original.
NOTA IMPORTANTE: O APHRA não se destina a substituir o trabalho de um tradutor profissional. Em vez disso, ele pretende facilitar o suporte multilíngue em pequenos projetos em que a contratação de um tradutor profissional pode não ser viável. A APHRA oferece uma solução prática para alcançar traduções de qualidade em contextos em que um serviço de tradução totalmente profissional está fora de escopo, garantindo que as barreiras linguísticas não prejudiquem o alcance global do seu conteúdo.
Demo · Relatório Bug · Recurso de solicitação · Wiki
Motivação
Por que Aphra?
Como Aphra funciona
Demonstração
Começando
Customizabilidade e idéias para extensões
Licença
Contribuindo
Referências
A faísca para iniciar este projeto veio do desejo de me desafiar, projetando um fluxo de trabalho agêntico complexo do zero. O objetivo principal aqui é aprender e crescer através do processo de construção de algo assim desde o início. Eu escolhi o tema da tradução porque também estou brincando com a idéia de publicar meu blog pessoal em inglês. Eu integrava com sucesso o APHRA no pipeline de publicação, tornando as traduções uma parte perfeita do processo. Se você estiver interessado em como isso foi alcançado, pode encontrar um guia detalhado no wiki.
Como professor de ciência da computação, também vi isso como uma ótima oportunidade para criar um projeto pequeno, mas completo e de código aberto, que segue as melhores práticas para publicar no Github. É por isso que existem tantas opções para começar, todas projetadas com uma abordagem didática em mente. Qualquer feedback sobre como melhorar nessa área é mais do que bem -vindo.
O nome "Aphra" é uma homenagem a Aphra Behn, uma das primeiras mulheres inglesas a ganhar a vida escrevendo no século XVII. Behn era um dramaturgo, poeta e tradutor que rompeu barreiras culturais significativas, tornando -a uma pioneira para as mulheres na literatura.
Nomear este projeto depois que Aphra Behn é uma maneira de honrar seu legado de desafiar o status quo e moldar a maneira como pensamos em linguagem e expressão. Sua influência nos lembra a importância de criar espaços onde as vozes podem ser ouvidas e as idéias podem florescer.
Como Virginia Woolf disse: "Todas as mulheres juntas, devem deixar as flores cair sobre o túmulo de Aphra Behn ... pois foi ela quem ganhou o direito de falar o que pensa" (Woolf, Virgínia. Uma sala própria. 1928, 65).
A APHRA emprega uma abordagem agêntica de vários estágios da tradução, projetada para imitar de perto as etapas que um tradutor humano pode tomar ao trabalhar em um texto. Veja como o processo se desenrola:

Essa abordagem estruturada permite que o APHRA produza traduções que não são apenas linguisticamente precisas, mas também contextualmente ricas, tornando -a uma ferramenta valiosa para pequenos projetos que visam alcançar um público global sem os recursos para contratar um tradutor profissional.
Você pode testar a Aphra aqui: https://huggingface.co/spaces/davidlms/aphra.
Para começar com Aphra, siga estas etapas:
Certifique -se de ter o seguinte instalado em seu sistema:
git (para clonar o repositório)pip (instalador do pacote Python)Antes de prosseguir com a configuração ou instalação, você precisa clonar o repositório. Esta é uma etapa comum necessária para todos os métodos de instalação.
Clone o repositório:
git clone https://github.com/DavidLMS/aphra.gitNavegue no diretório do projeto:
cd aphraCopie o arquivo de configuração de exemplo:
cp config.example.toml config.toml Edite config.toml para adicionar sua chave da API OpenRouter e nomes de modelos desejados.
Depois de configurar o arquivo config.toml , você pode:
NOTA: Se você optar por prosseguir com a instalação, lembre -se de mover o arquivo
config.tomlpara o local do script usando APHRA ou especifique seu caminho diretamente ao chamar a função.
pip Esta opção é a maneira mais simples de instalar o APHRA se você não precisar isolar suas dependências de outros projetos. Ele instala diretamente o pacote no seu sistema usando pip , que é o gerenciador de pacotes padrão do Python.
pip install . A poesia é uma ferramenta de gerenciamento e embalagem de dependência para Python que ajuda a gerenciar as dependências do seu projeto com mais eficiência. Também simplifica o processo de empacotar seus projetos Python.
Instale a poesia, se você ainda não o fez:
curl -sSL https://install.python-poetry.org | python3 -Instale dependências e o pacote:
poetry installAtive o ambiente virtual criado pela poesia:
poetry shellUm ambiente virtual é um ambiente isolado que permite instalar pacotes separadamente da instalação Python do seu sistema. Isso é particularmente útil para evitar conflitos entre os pacotes exigidos por diferentes projetos.
Crie e ativar um ambiente virtual:
python -m venv aphra
source aphra/bin/activate # On Windows: aphraScriptsactivateRemova o arquivo pyproject.toml:
rm pyproject.tomlInstale o pacote localmente:
pip install . O Docker é uma plataforma que permite empacotar um aplicativo e suas dependências em um "contêiner". Esse contêiner pode ser executado de forma consistente em diferentes ambientes, tornando -o ideal para garantir que seu projeto funcione da mesma maneira em qualquer máquina.
Construa a imagem do Docker:
docker build -t aphra .Nota: Se você encontrar erros de permissão durante a compilação, tente executar o comando com
sudo.
Verifique se o script de entrada possui permissões de execução. Execute o seguinte comando:
chmod +x entrypoint.shPara usuários do Windows: você pode adicionar permissões de execução usando o Git Bash ou WSL (Subsistema do Windows para Linux). Se você estiver usando o PowerShell ou o prompt de comando, talvez não precise alterar as permissões, mas verifique se o script é executável em seu ambiente.
Entenda o comando docker run :
-v $(pwd):/workspace : Esta opção é montada no seu diretório atual ( $(pwd) em sistemas semelhantes ao Unix, %cd% no Windows) no diretório /workspace dentro do contêiner. Isso permite que o contêiner acesse arquivos no seu diretório atual.aphra : Este é o nome da imagem do Docker que você construiu na Etapa 1.English Spanish : estes são os idiomas de origem e alvo para tradução. Substitua -os pelos idiomas que você precisa.input.md : Este é o caminho para o arquivo de entrada na sua máquina host.output.md : Este é o caminho em que a saída traduzida será salva na sua máquina host.Execute o contêiner do docker:
docker run -v $( pwd ) :/workspace aphra English Spanish input.md output.mdExiba a tradução imprimindo o conteúdo do arquivo de saída:
cat output.mdGet-Content output.md type output.md Você pode executar o APHRA diretamente do terminal usando o script aphra_runner.py . Isso é particularmente útil para automatizar traduções como parte de um fluxo de trabalho ou tubulação maior.
Para traduzir um arquivo da linha de comando, use a seguinte sintaxe:
python aphra_runner.py < config_file > < source_language > < target_language > < input_file > < output_file ><config_file> : caminho para o arquivo de configuração contendo teclas de API e configurações de modelo (por exemplo, config.toml ).<source_language> : o idioma do texto de entrada (por exemplo, "espanhol").<target_language> : o idioma em que você deseja traduzir o texto (por exemplo, "inglês").<input_file> : caminho para o arquivo de entrada que contém o texto que você deseja traduzir.<output_file> : caminho onde o texto traduzido será salvo.Exemplo:
python aphra_runner.py config.toml Spanish English input.md output.mdNeste exemplo:
config.toml é usado.input.md é traduzido do espanhol para o inglês.output.md . Se você preferir usar o APHRA diretamente no seu código Python, a função translate permite traduzir o texto de um idioma para outro usando os modelos de idiomas configurados. A função leva os seguintes parâmetros:
source_language : o idioma do texto de entrada (por exemplo, "espanhol").target_language : o idioma em que você deseja traduzir o texto (por exemplo, "inglês").text : o texto que você deseja traduzir.config_file : o caminho para o arquivo de configuração que contém teclas de API e configurações de modelo. Padrões para "config.toml".log_calls : Um booleano indicando se a API de login exige fins de depuração. Padrões para False . Aqui está como você pode usar a função translate de maneira 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 )Suponha que você queira traduzir a frase "Hola Mundo" de espanhol para inglês. O código seria assim:
from aphra import translate
translation = translate ( source_language = 'Spanish' ,
target_language = 'English' ,
text = 'Hola mundo' ,
config_file = 'config.toml' ,
log_calls = False )
print ( translation ) Se você tiver um arquivo de marcação ( input.md ) contendo o texto que deseja traduzir, poderá ler o arquivo, traduzir seu conteúdo e imprimir o resultado ou salvá -lo em outro arquivo. Aqui 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 )Neste exemplo:
input.md .output.md . O APHRA é projetado com flexibilidade em mente, facilitando a adaptação às suas necessidades específicas. A maneira mais simples de personalizar o APHRA é manter o fluxo de chamadas definido e modificando os prompts na pasta prompts para cada etapa. Essa abordagem permite que você adapte a saída ao resultado desejado para a maioria dos casos de uso.
Se você precisar modificar o próprio fluxo, precisará mergulhar no código no translate.py . Embora isso seja um pouco mais complexo, é totalmente factível para quem procura estender a funcionalidade do APHRA.
Aqui estão algumas idéias para outras extensões:
Sinta -se à vontade para experimentar e estender a APHRA de maneiras que se adaptem a seus projetos e idéias.
Aphra é liberado sob a licença do MIT. Você é livre para usar, modificar e distribuir o código para fins comerciais e não comerciais.
Contribuições para Aphra são bem -vindas! Seja melhorando o código, aprimorando a documentação ou sugerindo novos recursos, sua entrada é valiosa. Confira o arquivo contribuindo.md para obter diretrizes sobre como começar e faça com que suas contribuições contem.