入力

  • INPUT は、エージェントに入力情報を送信するために使用されます。他のアクションは入力情報に基づいて適切な操作を実行します。

  • エージェントの最初のアクションは INPUT でなければならず、それを削除したりコピーしたりすることはできません。

  • デザインモードでは、データセットを入力として指定できます。このデータセットの各データ(各行)はエージェントへの個別の入力として扱われ、すべての入力が並行して実行されます。各データ行は別個のスレッド ID を受け取ります。

  • プロダクションモードでは、入力はエージェントの API を介して渡されます。

  • imprai は、エージェントに渡されるメッセージを処理するための共通データ構造を定義しています。エージェントをアシスタントやスレッド API とシームレスに連携させるために、この形式を使用することを強くお勧めします。

共通メッセージ形式

異なる LLM には異なるメッセージ形式がありますが、imprai はエージェントに渡されるメッセージを処理するための共通メッセージ形式を定義しています。内部的にはすべての互換性の問題を処理します。

テキストメッセージ

{
  "role": "このメッセージの役割、例えばユーザー、アシスタント",
  "content": "このメッセージの内容"
}

画像 URL を含むメッセージ

{
  "role": "ユーザー",
  "content": "このメッセージの内容",
  "parts": [
    {
      "type": "image_url",
      "image_url": {
        "url": "この画像のURL"
      }
    }
  ]
}

画像データを含むメッセージ

{
  "role": "ユーザー",
  "content": "このメッセージの内容",
  "parts": [
    {
      "type": "blob",
      "blob": {
        "mime_type": "image/png",
        "url": "base64でエンコードされた画像データ"
      }
    }
  ]
}

ファイルを含むメッセージ

{
  "role": "このメッセージの役割、例えばユーザー、アシスタント",
  "content": "このメッセージの内容",
  "parts": [
    {
      "type": "file",
      "file": {
        "id": "このファイルのUUID",
        "name": "拡張子を含むこのファイルの名前"
      }
    }
  ]
}

複数のメッセージ

{
  "messages": [
    {
      "role": "",
      "content": "",
      "parts": []
    },
    {
      "role": "",
      "content": "",
      "parts": []
    }
  ]
}

重要 この形式に準拠しているメッセージのみが自動的にスレッドに保存されます。他のメッセージは無視されます。

使用方法

指示内で {{INPUT.message}} 変数を使用したり、コードエディタで env.state.INPUT.messages を使用したりして入力を利用できます。

データ形式

  • エージェントページで使用される場合、入力は事前定義されたデータセットから抽出されます。

  • アプリに接続されている場合、入力はアプリユーザーの入力および会話履歴から取得されます。デフォルトでは、最後の 10 件のメッセージをエージェントに送ります。

  • 入力データ形式は次の通りです:

    {
      "messages": [
        {
          "role": "ユーザー",
          "content": "内容"
        },
        {
          "role": "アシスタント",
          "content": "内容"
        }
      ]
    }

最終更新