2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Postman AI Agent Builder その1

Posted at

先日富山県で開催されたぶり会議という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と呼ばれています。関係性が少しややこしいので図にすると以下になります。
image.png

生成AIのAPI呼び出しは、AI Agent Builderのパーツを使ってもいいですし、独自でコレクションを新規で設定してもいいですし、AI Agent Builderワークスペースが準備しているものを用いてもいいです。どれも同じ結果となりますが、AI Agent Builderを用いることでコレクションの設定がより簡単に行える、という関係性です。

まずが画面上部でAI Agent Builderと入力しPublic Workspaceを開きます。
image.png
以下の通りAI Agent Builderが用意しているAPIコール一式がまとまっていることがわかります。
image.png
同様にフローについてもいくつかサンプルが準備されています。
image.png
ブルーバッジはAPIの使い方に関するドキュメントもセットになっていることから、新しいAPIを操作し始める際にPostmanを開発だけではなく、学習環境としても使うことが出来ます。
では、コレクションのOpenAIをフォークして自分のワークスペースに移します。
image.png

次に以下のサイトからOpenAIのAPI用トークンを入手しておきます。
https://openai.com/index/openai-api/

フォークしたコレクションのトップであらかじめ認可設定がされていますので、認可タブからトークンをコピーします。
image.png
この画面では変数を利用してVaultに格納されたトークンを呼び出すようになっていますが手順の簡略化のために直接先ほど入手したトークンをペーストしておきます。その後保存をクリックします。テスト用ではなく定常的に繰り返し使う場合はVaultを用いることで安全にトークンを管理できますのでそちらをお勧めします。

次に一番簡単なchat completionを選択します。
image.png

そのまま送信ボタンをクリックして200が戻ってきたら成功です。
ボディタブでは以下の値が設定されています。

{
    "model": "{{model}}",
    "messages": {{messages}} //see Pre-request script
}

ここで{{messages}}と変数がセットされていますがこれは過去の記事で触れたPre-Requestでメッセージを組み立てています。
https://qiita.com/KameMan/items/4e5325cd9a9775992897
Pre-Requestはスクリプトタブで設定されています。
image.png

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というものが選択できるようになっています。
image.png
まずはモデルを選択します。
image.png
image.png
次にAuthorizationタブからOpenAIのトークンを設定して保存します。
image.png
Promptタブではでそのまま対話が出来るようになります。
image.png
作成されたコレクションはいつもと異なるアイコンが付与され視覚的にAI Agent Builderを用いていることがわかるようになっています。
image.png

次回の記事ではもう少しこのAI Agent Builderを深堀していきたいとおもいます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?