Compartilhar via


Associação de entrada de pesquisa semântica do OpenAI do Azure para Azure Functions

Importante

Atualmente, a extensão do OpenAI do Azure para Azure Functions está em versão prévia.

A associação de entrada de pesquisa semântica do OpenAI do Azure permite que você realize pesquisas semânticas em suas incorporações.

Para informações sobre os detalhes de instalação e configuração da extensão do OpenAI do Azure, confira Extensões do OpenAI do Azure para Azure Functions. Para saber mais sobre a classificação semântica na Pesquisa de IA do Azure, confira Classificação semântica na Pesquisa de IA do Azure.

Observação

Referências e exemplos só são fornecidos para o modelo do Node.js v4.

Observação

Referências e exemplos só são fornecidos para o modelo do Python v2.

Observação

Embora haja suporte para ambos os modelos de processo C#, apenas exemplos de modelo de trabalho isolados são fornecidos.

Exemplo

Este exemplo mostra como realizar uma pesquisa semântica em um arquivo.

        HttpResponse = new OkObjectResult(new { status = HttpStatusCode.OK }),
        SearchableDocument = new SearchableDocument(filename)
    };
}

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

Este exemplo mostra como realizar uma pesquisa semântica em um arquivo.

        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");

Este exemplo mostra como realizar uma pesquisa semântica em um arquivo.

const semanticSearchInput = input.generic({
    type: "semanticSearch",
    connectionName: "AISearchEndpoint",
    collection: "openai-index",
    query: "{prompt}",
    chatModel: "%CHAT_MODEL_DEPLOYMENT_NAME%",
    embeddingsModel: "%EMBEDDING_MODEL_DEPLOYMENT_NAME%"
});

app.http('PromptFile', {
    methods: ['POST'],
    authLevel: 'function',
    extraInputs: [semanticSearchInput],
    handler: async (_request, context) => {
        var responseBody = context.extraInputs.get(semanticSearchInput)

        return { status: 200, body: responseBody.Response.trim() }
    }
});
const semanticSearchInput = input.generic({
    type: "semanticSearch",
    connectionName: "AISearchEndpoint",
    collection: "openai-index",
    query: "{prompt}",
    chatModel: "%CHAT_MODEL_DEPLOYMENT_NAME%",
    embeddingsModel: "%EMBEDDING_MODEL_DEPLOYMENT_NAME%"
});

app.http('PromptFile', {
    methods: ['POST'],
    authLevel: 'function',
    extraInputs: [semanticSearchInput],
    handler: async (_request, context) => {
        var responseBody: any = context.extraInputs.get(semanticSearchInput)

        return { status: 200, body: responseBody.Response.trim() }
    }
});

Este exemplo mostra como realizar uma pesquisa semântica em um arquivo.

Aqui está o arquivo function.json para solicitar um arquivo:

{
  "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 obter mais informações sobre as propriedades do arquivo function.json, consulte a seção Configuração.

using namespace System.Net

param($Request, $TriggerMetadata, $SemanticSearchInput)

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

Ainda não há exemplos disponíveis.

Atributos

Aplique o atributo SemanticSearchInput para definir uma associação de entrada de pesquisa semântica, que dá suporte a estes parâmetros:

Parâmetro descrição
ConnectionName O nome de uma configuração de aplicativo ou uma variável de ambiente que contém o valor da cadeia de conexão. Essa propriedade dá suporte a expressões de associação.
Coleção O nome da coleção, da tabela ou do índice a ser pesquisado. Essa propriedade dá suporte a expressões de associação.
Consulta O texto da consulta semântica a ser usado para a pesquisa. Essa propriedade dá suporte a expressões de associação.
EmbeddingsModel A ID do modelo a ser usada para as incorporações. O valor padrão é text-embedding-3-small. Essa propriedade dá suporte a expressões de associação.
ChatModel Obtém ou define o nome do modelo de linguagem grande para gerar as respostas de chat. O valor padrão é gpt-3.5-turbo. Essa propriedade dá suporte a expressões de associação.
SystemPrompt Opcional. Obtém ou define a solicitação do sistema a ser usada para a solicitações do modelo de linguagem grande. A solicitação do sistema é acrescentada com o conhecimento que é buscado como resultado da Query. A solicitação combinada é enviada para a API de Chat do OpenAI. Essa propriedade dá suporte a expressões de associação.
MaxKnowledgeCount Opcional. Obtém ou define o número de itens de conhecimento a serem injetados no SystemPrompt.

Anotações

A anotação SemanticSearchInput permite que você defina uma associação de entrada de pesquisa semântica, que dá suporte a estes parâmetros:

Element Descrição
name Obtém ou define o nome da associação de entrada.
connectionName O nome de uma configuração de aplicativo ou uma variável de ambiente que contém o valor da cadeia de conexão. Essa propriedade dá suporte a expressões de associação.
collection O nome da coleção, da tabela ou do índice a ser pesquisado. Essa propriedade dá suporte a expressões de associação.
consulta O texto da consulta semântica a ser usado para a pesquisa. Essa propriedade dá suporte a expressões de associação.
embeddingsModel A ID do modelo a ser usada para as incorporações. O valor padrão é text-embedding-3-small. Essa propriedade dá suporte a expressões de associação.
chatModel Obtém ou define o nome do modelo de linguagem grande para gerar as respostas de chat. O valor padrão é gpt-3.5-turbo. Essa propriedade dá suporte a expressões de associação.
systemPrompt Opcional. Obtém ou define a solicitação do sistema a ser usada para a solicitações do modelo de linguagem grande. A solicitação do sistema é acrescentada com o conhecimento que é buscado como resultado da Query. A solicitação combinada é enviada para a API de Chat do OpenAI. Essa propriedade dá suporte a expressões de associação.
maxKnowledgeCount Opcional. Obtém ou define o número de itens de conhecimento a serem injetados no SystemPrompt.

Decoradores

Durante a versão prévia, defina a associação de entrada como uma associação generic_input_binding do tipo semanticSearch, que dá suporte a estes parâmetros:

Parâmetro Descrição
arg_name O nome da variável que representa o parâmetro de associação.
connection_name O nome de uma configuração de aplicativo ou uma variável de ambiente que contém o valor da cadeia de conexão. Essa propriedade dá suporte a expressões de associação.
collection O nome da coleção, da tabela ou do índice a ser pesquisado. Essa propriedade dá suporte a expressões de associação.
consulta O texto da consulta semântica a ser usado para a pesquisa. Essa propriedade dá suporte a expressões de associação.
embeddings_model A ID do modelo a ser usada para as incorporações. O valor padrão é text-embedding-3-small. Essa propriedade dá suporte a expressões de associação.
chat_model Obtém ou define o nome do modelo de linguagem grande para gerar as respostas de chat. O valor padrão é gpt-3.5-turbo. Essa propriedade dá suporte a expressões de associação.
system_prompt Opcional. Obtém ou define a solicitação do sistema a ser usada para a solicitações do modelo de linguagem grande. A solicitação do sistema é acrescentada com o conhecimento que é buscado como resultado da Query. A solicitação combinada é enviada para a API de Chat do OpenAI. Essa propriedade dá suporte a expressões de associação.
max_knowledge_count Opcional. Obtém ou define o número de itens de conhecimento a serem injetados no SystemPrompt.

Configuração

A associação dá suporte a essas propriedades de configuração definidas no arquivo function.json.

Propriedade Descrição
tipo Deve ser semanticSearch.
direction Deve ser in.
name O nome da associação de entrada.
connectionName Obtém ou define o nome de uma configuração de aplicativo ou uma variável de ambiente que contém um valor de cadeia de conexão. Essa propriedade dá suporte a expressões de associação.
collection O nome da coleção, da tabela ou do índice a ser pesquisado. Essa propriedade dá suporte a expressões de associação.
consulta O texto da consulta semântica a ser usado para a pesquisa. Essa propriedade dá suporte a expressões de associação.
embeddingsModel A ID do modelo a ser usada para as incorporações. O valor padrão é text-embedding-3-small. Essa propriedade dá suporte a expressões de associação.
chatModel Obtém ou define o nome do modelo de linguagem grande para gerar as respostas de chat. O valor padrão é gpt-3.5-turbo. Essa propriedade dá suporte a expressões de associação.
systemPrompt Opcional. Obtém ou define a solicitação do sistema a ser usada para a solicitações do modelo de linguagem grande. A solicitação do sistema é acrescentada com o conhecimento que é buscado como resultado da Query. A solicitação combinada é enviada para a API de Chat do OpenAI. Essa propriedade dá suporte a expressões de associação.
maxKnowledgeCount Opcional. Obtém ou define o número de itens de conhecimento a serem injetados no SystemPrompt.

Configuração

A associação dá suporte a estas propriedades, que são definidas no código:

Propriedade Descrição
connectionName O nome de uma configuração de aplicativo ou uma variável de ambiente que contém o valor da cadeia de conexão. Essa propriedade dá suporte a expressões de associação.
collection O nome da coleção, da tabela ou do índice a ser pesquisado. Essa propriedade dá suporte a expressões de associação.
consulta O texto da consulta semântica a ser usado para a pesquisa. Essa propriedade dá suporte a expressões de associação.
embeddingsModel A ID do modelo a ser usada para as incorporações. O valor padrão é text-embedding-3-small. Essa propriedade dá suporte a expressões de associação.
chatModel Obtém ou define o nome do modelo de linguagem grande para gerar as respostas de chat. O valor padrão é gpt-3.5-turbo. Essa propriedade dá suporte a expressões de associação.
systemPrompt Opcional. Obtém ou define a solicitação do sistema a ser usada para a solicitações do modelo de linguagem grande. A solicitação do sistema é acrescentada com o conhecimento que é buscado como resultado da Query. A solicitação combinada é enviada para a API de Chat do OpenAI. Essa propriedade dá suporte a expressões de associação.
maxKnowledgeCount Opcional. Obtém ou define o número de itens de conhecimento a serem injetados no SystemPrompt.

Uso

Consulte a Seção de exemplo para obter exemplos completos.