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)。 |
使用方法
完全な例については、セクションの例を参照してください。