Aracılığıyla paylaş


Azure İşlevleri için Azure OpenAI yardımcısı sorgu giriş bağlaması

Önemli

Azure İşlevleri için Azure OpenAI uzantısı şu anda önizleme aşamasındadır.

Azure OpenAI yardımcısı sorgu giriş bağlaması, Yardımcılar API sorgularını kod yürütmelerinizle tümleştirmenize olanak tanır.

Azure OpenAI uzantısının kurulum ve yapılandırma ayrıntıları hakkında bilgi için bkz. Azure İşlevleri için Azure OpenAI uzantıları. Azure OpenAI yardımcıları hakkında daha fazla bilgi edinmek için bkz . Azure OpenAI Yardımcıları API'si.

Not

Başvurular ve örnekler yalnızca Node.js v4 modeli için sağlanır.

Not

Başvurular ve örnekler yalnızca Python v2 modeli için sağlanır.

Not

Her iki C# işlem modeli de destekleniyor olsa da yalnızca yalıtılmış çalışan modeli örnekleri sağlanır.

Örnek

Bu örnekte, yardımcı sohbet botunun konuşma geçmişini sorgulayan HTTP GET işlevinin bulunduğu oluşturma işlemi gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.

/// <summary>
/// HTTP GET function that queries the conversation history of the assistant chat bot.
/// </summary>
[Function(nameof(GetChatState))]
public static 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);
}

Bu örnekte, yardımcı sohbet botunun konuşma geçmişini sorgulayan HTTP GET işlevinin bulunduğu oluşturma işlemi gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.

/*
 * HTTP GET function that queries the conversation history of the assistant chat bot.
 */   
@FunctionName("GetChatState")
public HttpResponseMessage getChatState(
    @HttpTrigger(
        name = "req",
        methods = {HttpMethod.GET}, 
        authLevel = AuthorizationLevel.ANONYMOUS,
        route = "assistants/{assistantId}") 
        HttpRequestMessage<Optional<String>> request,
    @BindingName("assistantId") String assistantId,        
    @AssistantQuery(name = "AssistantState", id = "{assistantId}", timestampUtc = "{Query.timestampUTC}", chatStorageConnectionSetting = DEFAULT_CHATSTORAGE, collectionName = DEFAULT_COLLECTION) AssistantState state,
    final ExecutionContext context) {
        return request.createResponseBuilder(HttpStatus.OK)
            .header("Content-Type", "application/json")
            .body(state)
            .build();
}

Bu örnekte, yardımcı sohbet botunun konuşma geçmişini sorgulayan HTTP GET işlevinin bulunduğu oluşturma işlemi gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.

const { app, input, output } = require("@azure/functions");

const chatBotQueryInput = input.generic({
    type: 'assistantQuery',
    id: '{assistantId}',
    timestampUtc: '{Query.timestampUTC}',
    chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
    collectionName: COLLECTION_NAME
})
app.http('GetChatState', {
    methods: ['GET'],
    route: 'assistants/{assistantId}',
    authLevel: 'anonymous',
    extraInputs: [chatBotQueryInput],
    handler: async (_, context) => {
        const state = context.extraInputs.get(chatBotQueryInput)
        return { status: 200, jsonBody: state }
    }
})

Bu örnekte, yardımcı sohbet botunun konuşma geçmişini sorgulayan HTTP GET işlevinin bulunduğu oluşturma işlemi gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.

import { HttpRequest, InvocationContext, app, input, output } from "@azure/functions"

const chatBotQueryInput = input.generic({
    type: 'assistantQuery',
    id: '{assistantId}',
    timestampUtc: '{Query.timestampUTC}',
    chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
    collectionName: COLLECTION_NAME
})
app.http('GetChatState', {
    methods: ['GET'],
    route: 'assistants/{assistantId}',
    authLevel: 'anonymous',
    extraInputs: [chatBotQueryInput],
    handler: async (_, context) => {
        const state: any = context.extraInputs.get(chatBotQueryInput)
        return { status: 200, jsonBody: state }
    }
})

Bu örnekte, yardımcı sohbet botunun konuşma geçmişini sorgulayan HTTP GET işlevinin bulunduğu oluşturma işlemi gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.

Sohbet Durumunu Al için function.json dosyası aşağıdadır:

{
  "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 dosya özellikleri hakkında daha fazla bilgi için Yapılandırma bölümüne bakın.

using namespace System.Net

param($Request, $TriggerMetadata, $State)

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

Bu örnekte, yardımcı sohbet botunun konuşma geçmişini sorgulayan HTTP GET işlevinin bulunduğu oluşturma işlemi gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.

@apis.function_name("GetChatState")
@apis.route(route="assistants/{assistantId}", methods=["GET"])
@apis.assistant_query_input(
    arg_name="state",
    id="{assistantId}",
    timestamp_utc="{Query.timestampUTC}",
    chat_storage_connection_setting=DEFAULT_CHAT_STORAGE_SETTING,
    collection_name=DEFAULT_CHAT_COLLECTION_NAME,
)
def get_chat_state(req: func.HttpRequest, state: str) -> func.HttpResponse:
    return func.HttpResponse(state, status_code=200, mimetype="application/json")

Özellikler

AssistantQuery Şu parametreleri destekleyen bir yardımcı sorgu giriş bağlaması tanımlamak için özniteliğini uygulayın:

Parametre Açıklama
Kimlik Sorgu için yardımcının kimliğini alır.
Zaman DamgasıUtc İsteğe bağlı. Sohbet geçmişindeki en eski iletinin zaman damgasını alacak veya alacak şekilde ayarlar. Zaman damgası ISO 8601 biçiminde olmalıdır; örneğin, 2023-08-01T00:00:00Z.

Ek Açıklamalar

Ek assistantQuery açıklama, şu parametreleri destekleyen bir yardımcı sorgu giriş bağlaması tanımlamanızı sağlar:

Öğe Açıklama
ad Giriş bağlamasının adını alır veya ayarlar.
ID Sorgu için yardımcının kimliğini alır.
timeStampUtc İsteğe bağlı. Sohbet geçmişindeki en eski iletinin zaman damgasını alacak veya alacak şekilde ayarlar. Zaman damgası ISO 8601 biçiminde olmalıdır; örneğin, 2023-08-01T00:00:00Z.

Dekoratörler

Önizleme sırasında, giriş bağlamasını şu parametreleri destekleyen türündeki generic_input_bindingbir assistantQuery bağlama olarak tanımlayın:

Parametre Açıklama
arg_name Bağlama parametresini temsil eden değişkenin adı.
ID Sorgu için yardımcının kimliğini alır.
time_stamp_utc İsteğe bağlı. Sohbet geçmişindeki en eski iletinin zaman damgasını alacak veya alacak şekilde ayarlar. Zaman damgası ISO 8601 biçiminde olmalıdır; örneğin, 2023-08-01T00:00:00Z.

Yapılandırma

Bağlama, function.json dosyasında ayarladığınız bu yapılandırma özelliklerini destekler.

Özellik Açıklama
türü olmalıdır assistantQuery.
yön olmalıdır in.
ad Giriş bağlamasının adı.
ID Sorgu için yardımcının kimliğini alır.
timeStampUtc İsteğe bağlı. Sohbet geçmişindeki en eski iletinin zaman damgasını alacak veya alacak şekilde ayarlar. Zaman damgası ISO 8601 biçiminde olmalıdır; örneğin, 2023-08-01T00:00:00Z.

Yapılandırma

Bağlama, kodunuzda tanımlanan şu özellikleri destekler:

Özellik Açıklama
ID Sorgu için yardımcının kimliğini alır.
timeStampUtc İsteğe bağlı. Sohbet geçmişindeki en eski iletinin zaman damgasını alacak veya alacak şekilde ayarlar. Zaman damgası ISO 8601 biçiminde olmalıdır; örneğin, 2023-08-01T00:00:00Z.

Kullanım

Tam örnekler için Örnek bölümüne bakın.