Poyroは、LLMアプリケーションをテストするためのVitest(JestのようなAPIを備えた最新のテストフレームワーク)の軽量拡張です。 Vitestに慣れることは、Poyroからより多くのことを得るのに役立ちます。
Poyroは、LLMを使用してアプリケーションLLMの出力を評価するベストプラクティスに従います。 Poyroは、自然言語の条件をバイナリ単位テストに変換します。ユニットテストは、AIアプリを含むデフォルトでは無料でオープンソースである必要があります。そのため、ローカルに実行された小さなLLMを使用して、アプリケーションの出力を評価します。
Poyroを使用する理由と、VitestからユニットテストLLMアプリと一緒に使用する方法に関する例については、エッセイをお読みください。
フルスタックエンジニアリングの一部としてのAIテスト
AI Webアプリのユニットテストの書き方
ケーススタディ - ユニットテスト法的AIアプリ
この記事の実行可能なコードの例
node.js 20以降
Vitest 1.6.0以降
あなたのプロジェクトは、そのpackage.jsonに「タイプ」:「モジュール」が必要です(このライブラリはESMのみです)
推奨:最高のパフォーマンスを得るには、CUDA互換GPU(NVIDIA)または金属互換GPU(Apple Silicon)が必要ですが、必要ありません
すぐに始めるには、単純に実行してください:
npx poyro init
マッチャーを使用するには、プロジェクト内の任意のextension .test.ts
を使用してファイルを作成します。これが例です:
// myfirsttest.test.tsimport {vitest "から説明、rexect、それを説明してください}。 it( "be be true"、async()=> {//これをLLMアプリのoutputconst llmoutput = "hello、world!"; //自然言語の基準:true or falseawait expect(llmoutput).tofulfillcriterion( "こんにちはと言う "); }、10000); // 3番目の引数で必要に応じてタイムアウトを増やします});
toFulfillCriterion
LLM出力が自然言語の基準を満たしているか、満たしていないかを判断できます。
上記のようなテストを初めて実行するときは、ローカルに実行されるLLMのモデルファイルがダウンロードされます。数分かかるはずです。
たとえば、 npm
でパッケージマネージャーと一緒にVitestを実行してください。
NPMテスト
同様のコマンドは、 yarn
およびpnpm
で動作します。
トラブルシューティングページで一般的な問題のソリューションを提供します。そこの解決策を見てください。問題が発生し続ける場合は、私たちに手を差し伸べることをheしないでください。
GitHubリポジトリにアクセスして新しい問題を作成することで、問題を送信できます。問題を提出する前に、同様の問題がすでに提出されているかどうかを確認してください。
助けを求めたい場合は、良い回避をブレインストーミングしたり、他のポワロの開発者とチャットしたい場合は、私たちのコミュニティにDiscordに参加してください!
Poyroに貢献したい場合は、寄稿ガイドをお読みください。
リポジトリのクローニングから始めます。
git clone https://github.com/poyro/poyro.git
次に、すべての依存関係をインストールします。
PNPMインストール
開発中は、Rootでpnpm dev
実行することができます。これにより、変更が行われたときにすべての関連パッケージを自動的に構築するか、作業中のパッケージ内でpnpm dev
実行できます。