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.


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; }
}

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

Ainda não há exemplos disponíveis.

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

    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.

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.