先日富山県で開催されたぶり会議というITカンファレンスでPostmanの草薙さんがPostman AI Agent Builder
というものについて講演されていました。
今日はそれを試していきます。
Postman AI Agent Builder とは
生成AIの開発を加速化させるため、あらかじめ主要な生成AIのAPIコールがPostmanの標準機能としてプリセットされたものになります。
2024年のPostmanアドベントカレンダーで、あらかじめPostmanによって認定されたブルーバッジ付ワークスぺースとしてOpenAI用Publicワークスペースを紹介しました。
これを用いることで個別ベンダーから提供されるAPIの学習コストを最小化し、開発のクイックスタートが可能となることを例で示しています。
AI Agent Builder若干ブルーバッジ付与済ワークスペースと考え方は似ていますが、特定生成AI用ではなく、よく使われる生成AIのAPIコールがあらかじめPostmanの標準機能としてコレクションやフローで使えるように準備されたもの、になります。
さっそくやってみる
前述の通りAI Agent Builderはブルーバッジワークスペースとは別物で、個別の生成APIを呼び出す機能がコレクションやフロー用としてあらかじめPostmanが準備しているものになります。それとは別に、主要生成AIを呼び出す一連の機能を纏めたうえで、使い方の説明などがあらかじめ設定されているブルーバッジワークスペースがあります。こちらも同じ名前のAI Agent Builderと呼ばれています。関係性が少しややこしいので図にすると以下になります。
生成AIのAPI呼び出しは、AI Agent Builderのパーツを使ってもいいですし、独自でコレクションを新規で設定してもいいですし、AI Agent Builderワークスペースが準備しているものを用いてもいいです。どれも同じ結果となりますが、AI Agent Builderを用いることでコレクションの設定がより簡単に行える、という関係性です。
まずが画面上部でAI Agent Builder
と入力しPublic Workspaceを開きます。
以下の通りAI Agent Builderが用意しているAPIコール一式がまとまっていることがわかります。
同様にフローについてもいくつかサンプルが準備されています。
ブルーバッジはAPIの使い方に関するドキュメントもセットになっていることから、新しいAPIを操作し始める際にPostmanを開発だけではなく、学習環境としても使うことが出来ます。
では、コレクションのOpenAI
をフォークして自分のワークスペースに移します。
次に以下のサイトからOpenAIのAPI用トークンを入手しておきます。
https://openai.com/index/openai-api/
フォークしたコレクションのトップであらかじめ認可設定がされていますので、認可
タブからトークンをコピーします。
この画面では変数を利用してVaultに格納されたトークンを呼び出すようになっていますが手順の簡略化のために直接先ほど入手したトークンをペーストしておきます。その後保存
をクリックします。テスト用ではなく定常的に繰り返し使う場合はVaultを用いることで安全にトークンを管理できますのでそちらをお勧めします。
そのまま送信ボタンをクリックして200が戻ってきたら成功です。
ボディ
タブでは以下の値が設定されています。
{
"model": "{{model}}",
"messages": {{messages}} //see Pre-request script
}
ここで{{messages}}
と変数がセットされていますがこれは過去の記事で触れたPre-Request
でメッセージを組み立てています。
https://qiita.com/KameMan/items/4e5325cd9a9775992897
Pre-Request
はスクリプトタブで設定されています。
pm.test("Response status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Content-Type header is application/json", function () {
pm.expect(pm.response.headers.get("Content-Type")).to.include("application/json");
});
pm.test("Validate the choices array", function () {
const responseData = pm.response.json();
pm.expect(responseData.choices).to.be.an('array').that.is.not.empty;
responseData.choices.forEach(function(choice) {
pm.expect(choice).to.be.an('object');
pm.expect(choice.index).to.exist.and.to.be.a('number');
pm.expect(choice.message).to.exist.and.to.be.an('object');
pm.expect(choice.finish_reason).to.exist.and.to.be.a('string');
});
});
pm.test("Created field is a non-negative integer", function () {
const responseData = pm.response.json();
pm.expect(responseData.created).to.be.a('number').and.to.be.at.least(0);
});
pm.test("Model field should not be empty", function () {
const responseData = pm.response.json();
pm.expect(responseData.model).to.exist.and.to.not.be.empty;
});
ブルーバッジワークスペースを用いず新規コレクションを作成する
では次にブルーバッジを使用せずに新しいコレクションでAI Agent Builderを呼び出します。
新規コレクション作成の際に今までは存在していなかったAI
というものが選択できるようになっています。
まずはモデルを選択します。
次にAuthorization
タブからOpenAIのトークンを設定して保存します。
Prompt
タブではでそのまま対話が出来るようになります。
作成されたコレクションはいつもと異なるアイコンが付与され視覚的にAI Agent Builderを用いていることがわかるようになっています。
次回の記事ではもう少しこのAI Agent Builderを深堀していきたいとおもいます。