Udostępnij za pośrednictwem


Powiązanie danych wejściowych asystenta usługi Azure OpenAI dla usługi Azure Functions

Ważne

Rozszerzenie Azure OpenAI dla usługi Azure Functions jest obecnie dostępne w wersji zapoznawczej.

Powiązanie danych wejściowych asystenta usługi Azure OpenAI umożliwia integrację zapytań interfejsu API Asystentów z wykonywaniem kodu.

Aby uzyskać informacje na temat konfigurowania i konfigurowania rozszerzenia Azure OpenAI, zobacz Azure OpenAI extensions for Azure Functions (Rozszerzenia azure OpenAI dla usługi Azure Functions). Aby dowiedzieć się więcej na temat asystentów usługi Azure OpenAI, zobacz Interfejs API asystentów usługi Azure OpenAI.

Uwaga

Odwołania i przykłady są udostępniane tylko dla modelu Node.js w wersji 4.

Uwaga

Odwołania i przykłady są udostępniane tylko dla modelu języka Python w wersji 2.

Uwaga

Chociaż oba modele procesów języka C# są obsługiwane, udostępniane są tylko izolowane przykłady modeli procesów roboczych.

Przykład

W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP GET, która wysyła zapytania do historii konwersacji asystenta czatbota. Odpowiedź na monit jest zwracana w odpowiedzi 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);
    }
}

W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP GET, która wysyła zapytania do historii konwersacji asystenta czatbota. Odpowiedź na monit jest zwracana w odpowiedzi 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();    
}

Przykłady nie są jeszcze dostępne.

W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP GET, która wysyła zapytania do historii konwersacji asystenta czatbota. Odpowiedź na monit jest zwracana w odpowiedzi 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'],

W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP GET, która wysyła zapytania do historii konwersacji asystenta czatbota. Odpowiedź na monit jest zwracana w odpowiedzi HTTP.

Oto plik function.json get chat state:

{
  "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"
    }
  ]
}

Aby uzyskać więcej informacji na temat function.json właściwości pliku, zobacz sekcję Konfiguracja.

using namespace System.Net

param($Request, $TriggerMetadata, $State)

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

W tym przykładzie pokazano proces tworzenia, w którym funkcja HTTP GET, która wysyła zapytania do historii konwersacji asystenta czatbota. Odpowiedź na monit jest zwracana w odpowiedzi HTTP.

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


@apis.function_name("GetChatState")

Atrybuty

Zastosuj atrybut, AssistantQuery aby zdefiniować powiązanie wejściowe zapytania asystenta, które obsługuje następujące parametry:

Parametr Opis
Id Pobiera identyfikator asystenta do wykonywania zapytań.
TimeStampUtc Opcjonalne. Pobiera lub ustawia znacznik czasu najwcześniejszej wiadomości w historii czatu, aby pobrać. Znacznik czasu powinien mieć format ISO 8601 — na przykład 2023-08-01T00:00:00Z.

Adnotacje

Adnotacja assistantQuery umożliwia zdefiniowanie asystenta powiązania wejściowego zapytania, które obsługuje następujące parametry:

Element opis
name Pobiera lub ustawia nazwę powiązania wejściowego.
id Pobiera identyfikator asystenta do wykonywania zapytań.
timeStampUtc Opcjonalne. Pobiera lub ustawia znacznik czasu najwcześniejszej wiadomości w historii czatu, aby pobrać. Znacznik czasu powinien mieć format ISO 8601 — na przykład 2023-08-01T00:00:00Z.

Dekoratory

W wersji zapoznawczej zdefiniuj powiązanie wejściowe jako generic_input_binding powiązanie typu assistantQuery, które obsługuje następujące parametry:

Parametr Opis
arg_name Nazwa zmiennej reprezentującej parametr powiązania.
id Pobiera identyfikator asystenta do wykonywania zapytań.
time_stamp_utc Opcjonalne. Pobiera lub ustawia znacznik czasu najwcześniejszej wiadomości w historii czatu, aby pobrać. Znacznik czasu powinien mieć format ISO 8601 — na przykład 2023-08-01T00:00:00Z.

Konfigurowanie

Powiązanie obsługuje te właściwości konfiguracji ustawione w pliku function.json.

Właściwości Opis
type Musi mieć wartość assistantQuery.
direction Musi mieć wartość in.
name Nazwa powiązania wejściowego.
id Pobiera identyfikator asystenta do wykonywania zapytań.
timeStampUtc Opcjonalne. Pobiera lub ustawia znacznik czasu najwcześniejszej wiadomości w historii czatu, aby pobrać. Znacznik czasu powinien mieć format ISO 8601 — na przykład 2023-08-01T00:00:00Z.

Konfigurowanie

Powiązanie obsługuje te właściwości zdefiniowane w kodzie:

Właściwości opis
id Pobiera identyfikator asystenta do wykonywania zapytań.
timeStampUtc Opcjonalne. Pobiera lub ustawia znacznik czasu najwcześniejszej wiadomości w historii czatu, aby pobrać. Znacznik czasu powinien mieć format ISO 8601 — na przykład 2023-08-01T00:00:00Z.

Użycie

Zobacz sekcję Przykład, aby zapoznać się z kompletnymi przykładami.