Compartir a través de


Enlace de entrada de búsqueda semántica 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 búsqueda semántica de Azure OpenAI permite usar la búsqueda semántica en las inserciones.

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 la clasificación semántica en Búsqueda de Azure AI, consulte Clasificación semántica en Búsqueda de Azure AI.

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 cómo realizar una búsqueda semántica en un archivo.


public class EmbeddingsStoreOutputResponse
{
    [EmbeddingsStoreOutput("{url}", InputType.Url, "AISearchEndpoint", "openai-index", Model = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%")]
    public required SearchableDocument SearchableDocument { get; init; }

    public IActionResult? HttpResponse { get; set; }
}

En este ejemplo se muestra cómo realizar una búsqueda semántica en un archivo.

        return searchableDocument;
    }

}

@FunctionName("PromptFile")
public HttpResponseMessage promptFile(
    @HttpTrigger(
        name = "req", 
        methods = {HttpMethod.POST},
        authLevel = AuthorizationLevel.ANONYMOUS)
        HttpRequestMessage<SemanticSearchRequest> request,
    @SemanticSearch(name = "search", connectionName = "AISearchEndpoint", collection = "openai-index", query = "{prompt}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", embeddingsModel = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%" ) String semanticSearchContext,
    final ExecutionContext context) {
        String response = new JSONObject(semanticSearchContext).getString("Response");

Los ejemplos aún no están disponibles.

En este ejemplo se muestra cómo realizar una búsqueda semántica en un archivo.

    type: 'embeddings',
    maxChunkLength: 512,
    model: '%EMBEDDING_MODEL_DEPLOYMENT_NAME%'
})

app.http('getEmbeddingsFilePath', {
    methods: ['POST'],
    route: 'embeddings-from-file',
    authLevel: 'function',
    extraInputs: [embeddingsFilePathInput],
    handler: async (request, context) => {
        let requestBody: EmbeddingsFilePath = await request.json();
        let response: any = context.extraInputs.get(embeddingsFilePathInput);

        context.log(
            `Received ${response.count} embedding(s) for input file ${requestBody.FilePath}.`
        );
        
        // TODO: Store the embeddings into a database or other storage.

En este ejemplo se muestra cómo realizar una búsqueda semántica en un archivo.

Este es el archivo function.json para solicitar un archivo:

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "methods": [
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    },
    {
      "name": "SemanticSearchInput",
      "type": "semanticSearch",
      "direction": "in",
      "connectionName": "AISearchEndpoint",
      "collection": "openai-index",
      "query": "{prompt}",
      "chatModel": "%CHAT_MODEL_DEPLOYMENT_NAME%",
      "embeddingsModel": "%EMBEDDING_MODEL_DEPLOYMENT_NAME%"
    }
  ]
}

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, $SemanticSearchInput)

Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
        StatusCode = [HttpStatusCode]::OK
        Body       = $SemanticSearchInput.Response
    })

Los ejemplos aún no están disponibles.

Atributos

Aplique el atributo SemanticSearchInput para definir un enlace de entrada de búsqueda semántica, que admite estos parámetros:

Parámetro Descripción
ConnectionName Nombre de una configuración de aplicación o una variable de entorno que contiene el valor de la cadena de conexión. Esta propiedad es compatible con expresiones de enlace.
Colección Nombre de la colección o tabla o índice que se va a buscar. Esta propiedad es compatible con expresiones de enlace.
Consultar Texto de consulta semántico que se va a usar para la búsqueda. Esta propiedad es compatible con expresiones de enlace.
EmbeddingsModel Identificador del modelo que se va a usar para inserciones. El valor predeterminado es text-embedding-3-small. Esta propiedad es compatible con expresiones de enlace.
ChatModel Obtiene o establece el nombre del modelo de lenguaje grande que se va a invocar para las respuestas de chat. El valor predeterminado es gpt-3.5-turbo. Esta propiedad es compatible con expresiones de enlace.
SystemPrompt Opcional. Obtiene o establece la solicitud del sistema que se va a usar para solicitar el modelo de lenguaje grande. La solicitud del sistema se anexa con el conocimiento que se captura como resultado de Query. El mensaje combinado se envía a la API de chat de OpenAI. Esta propiedad es compatible con expresiones de enlace.
MaxKnowledgeCount Opcional. Obtiene o establece el número de elementos de conocimiento que se insertarán en SystemPrompt.

anotaciones

La anotación SemanticSearchInput permite definir un enlace de entrada de búsqueda semántica, que admite estos parámetros:

Elemento Descripción
name Obtiene o establece el nombre del enlace de entrada.
connectionName Nombre de una configuración de aplicación o una variable de entorno que contiene el valor de la cadena de conexión. Esta propiedad es compatible con expresiones de enlace.
collection Nombre de la colección o tabla o índice que se va a buscar. Esta propiedad es compatible con expresiones de enlace.
consulta Texto de consulta semántico que se va a usar para la búsqueda. Esta propiedad es compatible con expresiones de enlace.
embeddingsModel Identificador del modelo que se va a usar para inserciones. El valor predeterminado es text-embedding-3-small. Esta propiedad es compatible con expresiones de enlace.
chatModel Obtiene o establece el nombre del modelo de lenguaje grande que se va a invocar para las respuestas de chat. El valor predeterminado es gpt-3.5-turbo. Esta propiedad es compatible con expresiones de enlace.
systemPrompt Opcional. Obtiene o establece la solicitud del sistema que se va a usar para solicitar el modelo de lenguaje grande. La solicitud del sistema se anexa con el conocimiento que se captura como resultado de Query. El mensaje combinado se envía a la API de chat de OpenAI. Esta propiedad es compatible con expresiones de enlace.
maxKnowledgeCount Opcional. Obtiene o establece el número de elementos de conocimiento que se insertarán en SystemPrompt.

Elementos Decorator

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

Parámetro Descripción
arg_name Nombre de la variable que representa el parámetro de enlace.
connection_name Nombre de una configuración de aplicación o una variable de entorno que contiene el valor de la cadena de conexión. Esta propiedad es compatible con expresiones de enlace.
collection Nombre de la colección o tabla o índice que se va a buscar. Esta propiedad es compatible con expresiones de enlace.
consulta Texto de consulta semántico que se va a usar para la búsqueda. Esta propiedad es compatible con expresiones de enlace.
embeddings_model Identificador del modelo que se va a usar para inserciones. El valor predeterminado es text-embedding-3-small. Esta propiedad es compatible con expresiones de enlace.
chat_model Obtiene o establece el nombre del modelo de lenguaje grande que se va a invocar para las respuestas de chat. El valor predeterminado es gpt-3.5-turbo. Esta propiedad es compatible con expresiones de enlace.
system_prompt Opcional. Obtiene o establece la solicitud del sistema que se va a usar para solicitar el modelo de lenguaje grande. La solicitud del sistema se anexa con el conocimiento que se captura como resultado de Query. El mensaje combinado se envía a la API de chat de OpenAI. Esta propiedad es compatible con expresiones de enlace.
max_knowledge_count Opcional. Obtiene o establece el número de elementos de conocimiento que se insertarán en SystemPrompt.

Configuración

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

Propiedad Descripción
type Debe ser semanticSearch.
direction Debe ser in.
name Nombre del enlace de entrada.
connectionName Obtiene o establece el nombre de una configuración de aplicación o una variable de entorno que contiene un valor de cadena de conexión. Esta propiedad es compatible con expresiones de enlace.
collection Nombre de la colección o tabla o índice que se va a buscar. Esta propiedad es compatible con expresiones de enlace.
consulta Texto de consulta semántico que se va a usar para la búsqueda. Esta propiedad es compatible con expresiones de enlace.
embeddingsModel Identificador del modelo que se va a usar para inserciones. El valor predeterminado es text-embedding-3-small. Esta propiedad es compatible con expresiones de enlace.
chatModel Obtiene o establece el nombre del modelo de lenguaje grande que se va a invocar para las respuestas de chat. El valor predeterminado es gpt-3.5-turbo. Esta propiedad es compatible con expresiones de enlace.
systemPrompt Opcional. Obtiene o establece la solicitud del sistema que se va a usar para solicitar el modelo de lenguaje grande. La solicitud del sistema se anexa con el conocimiento que se captura como resultado de Query. El mensaje combinado se envía a la API de chat de OpenAI. Esta propiedad es compatible con expresiones de enlace.
maxKnowledgeCount Opcional. Obtiene o establece el número de elementos de conocimiento que se insertarán en SystemPrompt.

Configuración

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

Propiedad Descripción
connectionName Nombre de una configuración de aplicación o una variable de entorno que contiene el valor de la cadena de conexión. Esta propiedad es compatible con expresiones de enlace.
collection Nombre de la colección o tabla o índice que se va a buscar. Esta propiedad es compatible con expresiones de enlace.
consulta Texto de consulta semántico que se va a usar para la búsqueda. Esta propiedad es compatible con expresiones de enlace.
embeddingsModel Identificador del modelo que se va a usar para inserciones. El valor predeterminado es text-embedding-3-small. Esta propiedad es compatible con expresiones de enlace.
chatModel Obtiene o establece el nombre del modelo de lenguaje grande que se va a invocar para las respuestas de chat. El valor predeterminado es gpt-3.5-turbo. Esta propiedad es compatible con expresiones de enlace.
systemPrompt Opcional. Obtiene o establece la solicitud del sistema que se va a usar para solicitar el modelo de lenguaje grande. La solicitud del sistema se anexa con el conocimiento que se captura como resultado de Query. El mensaje combinado se envía a la API de chat de OpenAI. Esta propiedad es compatible con expresiones de enlace.
maxKnowledgeCount Opcional. Obtiene o establece el número de elementos de conocimiento que se insertarán en SystemPrompt.

Uso

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