Compartir vía


Enlace de entrada de consulta del asistente de Azure OpenAI para Azure Functions

Importante

La extensión de Azure OpenAI para Azure Functions está actualmente en versión preliminar.

El enlace de entrada de consulta del asistente de Azure OpenAI permite integrar consultas de API de Assistants en las ejecuciones de código.

Para obtener información sobre la configuración y los detalles de configuración de la extensión de Azure OpenAI, consulte Extensiones de Azure OpenAI para Azure Functions. Para más información sobre los asistentes de Azure OpenAI, consulte API Azure OpenAI Assistants.

Nota:

Las referencias y ejemplos solo se proporcionan para el modelo de Node.js v4.

Nota:

Las referencias y ejemplos solo se proporcionan para el modelo de Python v2.

Nota:

Aunque se admiten ambos modelos de proceso de C#, solo se proporcionan ejemplos de modelos de trabajo aislados.

Ejemplo

En este ejemplo se muestra el proceso de creación, donde la función HTTP GET que consulta el historial de conversaciones del bot de chat del asistente. La respuesta a la solicitud se devuelve en la respuesta 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);
    }
}

En este ejemplo se muestra el proceso de creación, donde la función HTTP GET que consulta el historial de conversaciones del bot de chat del asistente. La respuesta a la solicitud se devuelve en la respuesta 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();    
}

Los ejemplos aún no están disponibles.

En este ejemplo se muestra el proceso de creación, donde la función HTTP GET que consulta el historial de conversaciones del bot de chat del asistente. La respuesta a la solicitud se devuelve en la respuesta 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'],

En este ejemplo se muestra el proceso de creación, donde la función HTTP GET que consulta el historial de conversaciones del bot de chat del asistente. La respuesta a la solicitud se devuelve en la respuesta HTTP.

Este es el archivo function.json para Obtener estado de chat:

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

Para obtener más información sobre las propiedades del archivo function.json, consulte la sección de Configuració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"
    }
})

En este ejemplo se muestra el proceso de creación, donde la función HTTP GET que consulta el historial de conversaciones del bot de chat del asistente. La respuesta a la solicitud se devuelve en la respuesta HTTP.

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


@apis.function_name("GetChatState")

Atributos

Aplique el atributo AssistantQuery para definir un enlace de entrada de consulta del asistente, que admite estos parámetros:

Parámetro Descripción
Id Obtiene el identificador del asistente que se va a consultar.
TimeStampUtc Opcional. Obtiene o establece la marca de tiempo del mensaje más antiguo del historial de chat que se va a capturar. La marca de tiempo debe estar en formato ISO 8601; por ejemplo, 2023-08-01T00:00:00Z.

anotaciones

La anotación assistantQuery permite definir un enlace de entrada de consulta del asistente, que admite estos parámetros:

Elemento Descripción
name Obtiene o establece el nombre del enlace de entrada.
id Obtiene el identificador del asistente que se va a consultar.
timeStampUtc Opcional. Obtiene o establece la marca de tiempo del mensaje más antiguo del historial de chat que se va a capturar. La marca de tiempo debe estar en formato ISO 8601; por ejemplo, 2023-08-01T00:00:00Z.

Elementos Decorator

Durante la versión preliminar, defina el enlace de entrada como un enlace generic_input_binding de tipo assistantQuery, que admite estos parámetros:

Parámetro Descripción
arg_name Nombre de la variable que representa el parámetro de enlace.
id Obtiene el identificador del asistente que se va a consultar.
time_stamp_utc Opcional. Obtiene o establece la marca de tiempo del mensaje más antiguo del historial de chat que se va a capturar. La marca de tiempo debe estar en formato ISO 8601; por ejemplo, 2023-08-01T00:00:00Z.

Configuración

El enlace admite estas propiedades de configuración que se establecen en el archivo function.json.

Propiedad Descripción
type Debe ser assistantQuery.
direction Debe ser in.
name Nombre del enlace de entrada.
id Obtiene el identificador del asistente que se va a consultar.
timeStampUtc Opcional. Obtiene o establece la marca de tiempo del mensaje más antiguo del historial de chat que se va a capturar. La marca de tiempo debe estar en formato ISO 8601; por ejemplo, 2023-08-01T00:00:00Z.

Configuración

El enlace admite estas propiedades, que se definen en el código:

Propiedad Descripción
id Obtiene el identificador del asistente que se va a consultar.
timeStampUtc Opcional. Obtiene o establece la marca de tiempo del mensaje más antiguo del historial de chat que se va a capturar. La marca de tiempo debe estar en formato ISO 8601; por ejemplo, 2023-08-01T00:00:00Z.

Uso

Consulte la sección de ejemplos para ver ejemplos completos.