Aphraは、大規模な言語モデル(LLM)を活用することにより、テキスト翻訳の品質を向上させるように設計されたオープンソース翻訳エージェントです。直接翻訳のみに依存する従来の翻訳ツールとは異なり、APHRAは、用語集の作成、文脈検索、批評、洗練を含む多段階のコンテキスト認識プロセスを導入します。このアプローチの目的は、元の意味を保持するだけでなく、翻訳者のメモ、コンテキストの調整、スタイルの改善も組み込まれる翻訳を作成することです。ブログの投稿、記事、複雑な文書を翻訳するかどうかにかかわらず、Aphraは、元のコンテンツの完全性を尊重するより微妙で正確な翻訳を保証します。
重要な注意: APHRAは、プロの翻訳者の作品を置き換えることを意図していません。代わりに、プロの翻訳者を雇うことが実行不可能である可能性がある小さなプロジェクトでの多言語サポートを促進することを目指しています。 APHRAは、完全なプロフェッショナルな翻訳サービスが範囲外のコンテキストで高品質の翻訳を達成するための実用的なソリューションを提供し、言語の障壁がコンテンツのグローバルな範囲を妨げないようにします。
デモ・レポートバグ・リクエスト機能・wiki
モチベーション
なぜアフラ?
Aphraのしくみ
デモ
はじめる
拡張機能のカスタマイズ可能性とアイデア
ライセンス
貢献
参照
このプロジェクトを開始するための火花は、複雑なエージェントワークフローをゼロから設計することで、自分自身に挑戦したいという願望から来ました。ここでの主な目標は、このようなものをゼロから構築するプロセスを学び、成長させることです。私は翻訳のテーマを選びました。なぜなら、私の個人的なブログを英語で公開するというアイデアをいじっていたからです。 Aphraを出版パイプラインに統合し、翻訳をプロセスのシームレスな部分にしました。これがどのように達成されたかに興味がある場合は、Wikiで詳細なガイドを見つけることができます。
コンピューターサイエンスの教師として、私はこれを、GitHubでの出版のためのベストプラクティスに続く小さくても完全なオープンソースプロジェクトを作成する絶好の機会と見なしました。そのため、開始するための非常に多くのオプションがあり、すべてが教訓的なアプローチを念頭に置いて設計されています。その分野で改善する方法に関するフィードバックは大歓迎です。
「アフラ」という名前は、17世紀に執筆を通して生計を立てた最初の英国人女性の一人であるアフラ・ベインへのオマージュです。ベンは、劇作家、詩人、翻訳者であり、重要な文化的障壁を突破し、文学の女性の初期の先駆者になりました。
Aphra Behnにちなんでこのプロジェクトに名前を付けたことは、現状に挑戦し、言語と表現についての考え方を形作るという彼女の遺産を称える方法です。彼女の影響は、声が聞こえ、アイデアが繁栄できる空間を作成することの重要性を思い出させます。
バージニア・ウルフが有名に言ったように、「すべての女性が一緒に、アフラ・ベインの墓に花を倒すべきだ...彼らの心を話す権利を獲得したのは彼女だった」(ウールフ、バージニア。
Aphraは、テキストで作業するときに人間の翻訳者がとる可能性のあるステップを密接に模倣するように設計された、翻訳に対するマルチステージのエージェントアプローチを採用しています。プロセスの展開方法は次のとおりです。

この構造化されたアプローチにより、APHRAは言語的に正確であるだけでなく、文脈的に豊富な翻訳を作成することができ、プロの翻訳者を雇うためのリソースなしで世界的な視聴者にリーチすることを目的とした小規模プロジェクトにとって貴重なツールになります。
ここでアフラをテストできます:https://huggingface.co/spaces/davidlms/aphra。
APHRAを始めるには、次の手順に従ってください。
システムに次のインストールがあることを確認してください。
git (リポジトリのクローニング用)pip (Pythonパッケージインストーラー)構成またはインストールを進める前に、リポジトリをクローンする必要があります。これは、すべてのインストール方法に必要な一般的なステップです。
リポジトリをクローンします:
git clone https://github.com/DavidLMS/aphra.gitプロジェクトディレクトリに移動します。
cd aphra例の構成ファイルをコピーします。
cp config.example.toml config.toml config.tomlを編集して、OpenRouter APIキーと目的のモデル名を追加します。
config.tomlファイルを構成した後、次のいずれかができます。
注:インストールを続行することを選択した場合は、Aphraを使用して
config.tomlファイルをスクリプトの場所に移動するか、関数を呼び出すときにそのパスを直接指定することを忘れないでください。
pipでローカルにインストールしますこのオプションは、他のプロジェクトから依存関係を分離する必要がない場合に、APHRAをインストールする最も簡単な方法です。 Pythonの標準パッケージマネージャーであるpipを使用して、システムにパッケージを直接インストールします。
pip install . 詩は、Pythonの依存関係管理およびパッケージングツールであり、プロジェクトの依存関係をより効果的に管理するのに役立ちます。また、Pythonプロジェクトをパッケージ化するプロセスも簡素化されます。
まだ詩をインストールしていない場合は:
curl -sSL https://install.python-poetry.org | python3 -依存関係とパッケージをインストールします。
poetry install詩によって作成された仮想環境をアクティブにする:
poetry shell仮想環境は、システムのPythonインストールとは別にパッケージをインストールできる孤立した環境です。これは、異なるプロジェクトで必要なパッケージ間の競合を回避するために特に便利です。
仮想環境を作成してアクティブ化します。
python -m venv aphra
source aphra/bin/activate # On Windows: aphraScriptsactivateファイルpyproject.tomlを削除します:
rm pyproject.tomlパッケージをローカルにインストールします。
pip install . Dockerは、アプリケーションとその依存関係を「コンテナ」にパッケージ化できるプラットフォームです。このコンテナは、さまざまな環境で一貫して実行される可能性があり、プロジェクトがどのマシンでも同じように機能するようにするのに理想的です。
Docker画像を作成します:
docker build -t aphra .注:ビルド中に許可エラーが発生した場合は、
sudoでコマンドを実行してみてください。
エントリスクリプトに実行権限があることを確認してください。次のコマンドを実行します。
chmod +x entrypoint.shWindowsユーザーの場合: Git BashまたはWSL(Linux用のWindowsサブシステム)を使用して実行権限を追加できます。 PowerShellまたはコマンドプロンプトを使用している場合は、アクセス許可を変更する必要はないかもしれませんが、スクリプトが環境で実行可能であることを確認してください。
docker runコマンドを理解する:
-v $(pwd):/workspace :このオプションは、コンテナ内の/workspaceディレクトリに現在のディレクトリ( $(pwd) 、windowsの%cd% )をマウントします。これにより、コンテナは現在のディレクトリ内のファイルにアクセスできます。aphra :これは、ステップ1に作成したDocker画像の名前です。English Spanish :これらは翻訳のソースとターゲット言語です。必要な言語に置き換えます。input.md :これは、ホストマシンの入力ファイルへのパスです。output.md :これは、翻訳された出力がホストマシンに保存されるパスです。Dockerコンテナを実行します。
docker run -v $( pwd ) :/workspace aphra English Spanish input.md output.md出力ファイルのコンテンツを印刷して、翻訳を表示します。
cat output.mdGet-Content output.md type output.mdaphra_runner.pyスクリプトを使用して、ターミナルからAPHRAを直接実行できます。これは、より大きなワークフローまたはパイプラインの一部として翻訳を自動化するのに特に役立ちます。
コマンドラインからファイルを翻訳するには、次の構文を使用します。
python aphra_runner.py < config_file > < source_language > < target_language > < input_file > < output_file ><config_file> :APIキーとモデル設定を含む構成ファイルへのパス(例: config.toml )。<source_language> :入力テキストの言語(「スペイン語」など)。<target_language> :テキストを(例:「英語」)に翻訳したい言語。<input_file> :翻訳するテキストを含む入力ファイルへのパス。<output_file> :翻訳されたテキストが保存されるパス。例:
python aphra_runner.py config.toml Spanish English input.md output.mdこの例では:
config.tomlが使用されます。input.mdのテキストは、スペイン語から英語に翻訳されています。output.mdに保存されます。 PythonコードでAphraを直接使用することを好む場合、 translate関数を使用すると、構成された言語モデルを使用してテキストをある言語から別の言語に翻訳できます。関数は次のパラメーターを取得します。
source_language :入力テキストの言語(例:「スペイン語」)。target_language :テキストを翻訳したい言語(例:「英語」)。text :翻訳したいテキスト。config_file :APIキーとモデル設定を含む構成ファイルへのパス。デフォルトは「config.toml」になります。log_calls :デバッグの目的でAPI呼び出しをログに記録するかどうかを示すブール値。デフォルトはFalseになります。 translate関数を一般的な方法で使用する方法は次のとおりです。
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 )スペイン語から英語に「Hola Mundo」という文を翻訳したいとします。コードは次のようになります:
from aphra import translate
translation = translate ( source_language = 'Spanish' ,
target_language = 'English' ,
text = 'Hola mundo' ,
config_file = 'config.toml' ,
log_calls = False )
print ( translation )翻訳するテキストを含むMarkdownファイル( input.md )がある場合は、ファイルを読み取り、コンテンツを翻訳してから、結果を印刷するか、別のファイルに保存できます。方法は次のとおりです。
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 )この例では:
input.mdからテキストを読みます。output.mdに保存します。 Aphraは柔軟性を念頭に置いて設計されており、特定のニーズに合わせて簡単に調整できます。 Aphraをカスタマイズする最も簡単な方法は、定義された呼び出しフローを維持し、各ステップのpromptsフォルダー内のプロンプトを変更することです。このアプローチを使用すると、ほとんどのユースケースの希望する結果に出力を適応させることができます。
フロー自体を変更する必要がある場合は、 translate.pyのコードに飛び込む必要があります。これはもう少し複雑ですが、アフラの機能を拡張しようとしている人にとっては完全に実行可能です。
さらに拡張のためのいくつかのアイデアがあります:
あなたのプロジェクトやアイデアに合った方法でAphraを実験し、拡張してください。
AphraはMITライセンスの下でリリースされます。商業的および非営利目的の両方でコードを自由に使用、変更、配布できます。
アフラへの貢献は大歓迎です!コードの改善、ドキュメントの強化、または新機能の提案など、入力は価値があります。 Convinting.mdファイルをチェックしてください。ガイドラインは、開始方法と貢献をカウントする方法に関するガイドラインをご覧ください。