LLM Flowは、AI開発のプロセスを促進するように設計されたWebツールです。孤立したAIユースケース(AI関数)の定義、プロンプトの実装、プロンプトの品質の評価と改善、AI機能を独自のアプリケーションに統合するAPIを生成します。
特徴を探る»
(トップに戻る)
(トップに戻る)
このプロジェクトは、すべてを個別にセットアップする必要がある3つのサービスに分かれています。
server :Fastapiバックエンドpromptfoo-server :express.js backEnd promptfooを実行しますclient :next.js frontend(トップに戻る)
あまり努力せずにアプリケーションを実行するだけの場合は、Dockerセットアップを使用してください。ローカル開発については、ローカルセットアップを参照してください。
前提条件:
セットアップ方法:
serverとclientの場合、 .env.docker.templateファイルをコピーして名前変更して、それぞれのルートフォルダーに.env.dockerファイルを作成します。 promptfoo-serverの場合.env.templateファイルから.envファイルを作成します。テンプレートの秘密を自分のものに置き換えてください。
ルートフォルダーでこれら2つのコマンドを実行します。
docker compose build
docker compose up -d
client :http:// localhost:3000/backend :http:// localhost:4000/docs(トップに戻る)
前提条件:
別のノードバージョンを使用することもできます。ただし、ノード22を使用してセットアップのみをテストしました。
セットアップ方法:
3つのサービスすべてに対して、 .env.templateファイルをコピーして変更することにより、それぞれのルートフォルダーに.envファイルを作成します。テンプレートの秘密を自分のものに置き換えてください。
ルートフォルダーで実行されます:
docker compose up mongo -d
backendを開始しますbackendを実行するには、VSコードデバッガーを使用して起動するか、 backendフォルダーで以下を実行できます。
pipenv install
pipenv run python3.12 wsgi.py
promptfoo-serverを開始しますpromptfoo-serverフォルダーで実行されます。
npm install
npm run start
clientを開始: clientフォルダーで実行します:
npm install
npm run dev
client :http:// localhost:3000/backend :http:// localhost:4000/docs(トップに戻る)
プロジェクトを開発したい場合は、最初にローカルセットアップを実行してください。
前提条件:
開発中に使用する便利なコマンドを次に示します。
pre-commit run --all-files
sh generate_client_bindings.sh
clientフォルダーで実行します:
npm run lint
npm run pretty
(トップに戻る)
AI関数は、あなた自身のビジネスロジックとLLMプロバイダーとの間の契約を表します。パラメーターのセットを渡すと、構造化された出力を返します。
Webインターフェイスでは、AI関数を定義できます。あなたはその名前を定義し、説明を与え、受け入れるパラメーターを定義し、使用するプロバイダーを選択します。
また、関数が単純な非構造化文字列応答または構造化されたJSON応答を返すかどうかを定義します。後者の場合、JSONスキーマエディターを使用して複雑なJSONオブジェクトを定義できます。
AI関数のプロンプトの品質を評価するために、アサーションとテストケースを定義できます。アサーションは、期待値または条件と比較するために使用されます。この機能は、ボンネットの下にProsptFooを使用します。単純な比較から複雑なregexパターン、さらにはカスタムおよび潜在的に複雑なアサーションロジックを定義できる自己定義のPythonまたはJavaScriptコードを使用するものまで、選択するさまざまなアサーションタイプがあります。
テストケースは、AI関数のパラメーターの例のデータを参照してください。彼らは迅速な品質を主張する上で不可欠な役割を果たします。プロンプトを定義した後、AI関数内で定義されたアサーションを使用して、テストケースに対して評価されます。また、単一のテストケースにのみ適用されるアサーションを定義することもできます。 AI機能の名前と説明に基づいて、AIのテストケースを生成するAIにも機能があります。
最初に、提供された例の1つからAI関数を作成するだけです。
(トップに戻る)
LLMでは、AI関数のコンテキストでフロープロンプトが定義されます。それらは、体内にそれぞれのAI関数のパラメーターを含める必要があり、そのテストケースとアサーションに対して評価されます。
AI関数で指定された各プロバイダーについてプロンプトが評価されます。これにより、さまざまなプロバイダー間でプロンプトの品質を比較できます。評価中に3つのメトリックが計算されます。
(トップに戻る)
プロジェクトは、さまざまなAI関数を呼び出すことができるAPIを作成する方法です。 Webインターフェイスでは、クライアント自体のAPIをテストするために使用できる各プロジェクトごとにカスタムSwaggerドキュメントが生成されます。また、OpenAPI Generatorなどのコードジェネレーターを使用して、OpenAPI仕様をエクスポートして独自のクライアントバインディングを生成することもできます。
APIドキュメントには、選択したAI関数の名前、説明、パラメーターが自動的に入力され、例として定義されたテストケースの1つを含めます。プロジェクト内の各AI関数には、独自のエンドポイントが割り当てられます。
これにより、独自のアプリケーションでLLMフローで定義されているAI関数を統合できます。プロジェクトが作成されたら、必ずしもエンドポイントを呼び出すためにクライアントを実行する必要はありません。プロジェクトの作成と使用方法に関するデモは次のとおりです。
(トップに戻る)
これを改善する提案がある場合は、レポをフォークしてプルリクエストを作成してください。また、タグ「拡張機能」で問題を開くこともできます。プロジェクトにスターを与えることを忘れないでください!再度、感謝します!
git checkout -b feature/AmazingFeature )git commit -m 'Add some AmazingFeature' )git push origin feature/AmazingFeature )(トップに戻る)
MITライセンスの下で配布されます。詳細については、 LICENSE.txtを参照してください。
(トップに戻る)
Amir Mohammad [email protected]
プロジェクトリンク:https://github.com/amir-mo1999/llmflow
(トップに戻る)