次の方法で共有


Azure Functions 用の Azure OpenAI アシスタント クエリ入力バインド

重要

Azure Functions 用の Azure OpenAI 拡張機能は現在、プレビュー段階です。

Azure OpenAI アシスタント クエリ入力バインドを使用すると、Assistants API クエリをコード実行に統合できます。

Azure OpenAI 拡張機能のセットアップと構成の詳細については、「Azure Functions 用の Azure OpenAI 拡張機能」を参照してください。 Azure OpenAI アシスタントの詳細については、「Azure OpenAI Assistants API」を参照してください。

Note

リファレンスと例は、Node.js v4 モデルに対してのみ提供されています。

Note

リファレンスと例は、Python v2 モデルに対してのみ提供されます。

Note

両方の C# プロセス モデルがサポートされていますが、 isolated worker モデル 例のみが提供されます。

この例では、アシスタント チャット ボットの会話履歴に対するクエリを実行する HTTP GET 関数の作成プロセスを示します。 プロンプトに対する応答は HTTP 応答で返されます。

    public static async Task<IActionResult> GetChatState(
       [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "assistants/{assistantId}")] HttpRequestData req,
       string assistantId,
       [AssistantQueryInput("{assistantId}", TimestampUtc = "{Query.timestampUTC}", ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting, CollectionName = DefaultCollectionName)] AssistantState state)
    {
        return new OkObjectResult(state);
    }
}

この例では、アシスタント チャット ボットの会話履歴に対するクエリを実行する HTTP GET 関数の作成プロセスを示します。 プロンプトに対する応答は HTTP 応答で返されます。

                "Ask for clarification if a user request is ambiguous.";

        AssistantCreateRequest assistantCreateRequest = new AssistantCreateRequest(assistantId, instructions);
        assistantCreateRequest.setChatStorageConnectionSetting(DEFAULT_CHATSTORAGE);
        assistantCreateRequest.setCollectionName(DEFAULT_COLLECTION);

        message.setValue(assistantCreateRequest);
        JSONObject response = new JSONObject();
        response.put("assistantId", assistantId);
        
        return request.createResponseBuilder(HttpStatus.CREATED)
            .header("Content-Type", "application/json")
            .body(response.toString())
            .build();    
}

利用できる例はまだありません。

この例では、アシスタント チャット ボットの会話履歴に対するクエリを実行する HTTP GET 関数の作成プロセスを示します。 プロンプトに対する応答は HTTP 応答で返されます。

            }
        };
    }
})


const chatBotQueryInput = input.generic({
    type: 'assistantQuery',
    id: '{assistantId}',
    timestampUtc: '{Query.timestampUTC}',
    chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
    collectionName: COLLECTION_NAME
})
app.http('GetChatState', {
    methods: ['GET'],

この例では、アシスタント チャット ボットの会話履歴に対するクエリを実行する HTTP GET 関数の作成プロセスを示します。 プロンプトに対する応答は HTTP 応答で返されます。

チャット状態を取得するための function.json ファイルを次に示します。

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "route": "assistants/{assistantId}",
      "methods": [
        "get"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    },
    {
      "name": "State",
      "type": "assistantQuery",
      "direction": "in",
      "dataType": "string",
      "id": "{assistantId}",
      "timestampUtc": "{Query.timestampUTC}",
      "chatStorageConnectionSetting": "AzureWebJobsStorage",
      "collectionName": "ChatState"
    }
  ]
}

function.json ファイルのプロパティについて詳しくは、「構成」セクションをご覧ください。

using namespace System.Net

param($Request, $TriggerMetadata, $State)

Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
    StatusCode = [HttpStatusCode]::OK
    Body       = $State
    Headers    = @{
        "Content-Type" = "application/json"
    }
})

この例では、アシスタント チャット ボットの会話履歴に対するクエリを実行する HTTP GET 関数の作成プロセスを示します。 プロンプトに対する応答は HTTP 応答で返されます。

    recent_message_content = data['recentMessages'][0]['content']
    return func.HttpResponse(recent_message_content, status_code=200, mimetype="text/plain")


@apis.function_name("GetChatState")

属性

AssistantQuery 属性を適用して、これらのパラメーターをサポートするアシスタント クエリ入力バインドを定義します。

パラメーター 内容
Id クエリを実行するアシスタントの ID を取得します。
TimeStampUtc 省略可。 取得するチャット履歴内の最も古いメッセージのタイムスタンプを取得または設定します。 タイムスタンプは ISO 8601 形式である必要があります (例: 2023-08-01T00:00:00Z)。

注釈

assistantQuery 注釈を使用すると、これらのパラメーターをサポートするアシスタント クエリ入力バインドを定義できます。

要素 説明
name 入力バインドの名前を取得または設定します。
id クエリを実行するアシスタントの ID を取得します。
timeStampUtc 省略可。 取得するチャット履歴内の最も古いメッセージのタイムスタンプを取得または設定します。 タイムスタンプは ISO 8601 形式である必要があります (例: 2023-08-01T00:00:00Z)。

デコレーター

プレビュー中に、入力バインドを次のパラメーターをサポートする assistantQuery 型の generic_input_binding バインドとして定義します。

パラメーター 説明
arg_name バインド パラメーターを表す変数の名前。
id クエリを実行するアシスタントの ID を取得します。
time_stamp_utc 省略可。 取得するチャット履歴内の最も古いメッセージのタイムスタンプを取得または設定します。 タイムスタンプは ISO 8601 形式である必要があります (例: 2023-08-01T00:00:00Z)。

構成

このバインドでは、function.json ファイルで設定したこれらの構成プロパティをサポートします。

プロパティ 説明
type assistantQueryである必要があります。
direction inである必要があります。
name 入力バインドの名前。
id クエリを実行するアシスタントの ID を取得します。
timeStampUtc 省略可。 取得するチャット履歴内の最も古いメッセージのタイムスタンプを取得または設定します。 タイムスタンプは ISO 8601 形式である必要があります (例: 2023-08-01T00:00:00Z)。

構成

このバインドでは、コードで定義されている、これらのプロパティをサポートします。

プロパティ 説明
id クエリを実行するアシスタントの ID を取得します。
timeStampUtc 省略可。 取得するチャット履歴内の最も古いメッセージのタイムスタンプを取得または設定します。 タイムスタンプは ISO 8601 形式である必要があります (例: 2023-08-01T00:00:00Z)。

使用方法

完全な例については、セクションの例を参照してください。