Partilhar via


Vinculação de entrada da Pesquisa Semântica do Azure OpenAI para o Azure Functions

Importante

A extensão do Azure OpenAI para o Azure Functions está atualmente em visualização.

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

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

Nota

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

Nota

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

Nota

Embora ambos os modelos de processo C# sejam suportados, apenas exemplos de modelos de trabalho isolados são fornecidos.

Exemplo

Este exemplo mostra como executar 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 executar 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");

Os exemplos ainda não estão disponíveis.

Este exemplo mostra como executar 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 executar 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 function.json propriedades do arquivo, 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
    })

Os exemplos ainda não estão disponíveis.

Atributos

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

Parâmetro Description
Nome da conexão O nome de uma configuração de aplicativo ou variável de ambiente que contém o valor da cadeia de conexão. Esta propriedade suporta expressões de ligação.
Coleção O nome da coleção, tabela ou índice a pesquisar. Esta propriedade suporta expressões de ligação.
Consulta O texto da consulta semântica a ser usado para pesquisar. Esta propriedade suporta expressões de ligação.
IncorporaçõesModelo A ID do modelo a ser usado para incorporações. O valor predefinido é text-embedding-3-small. Esta propriedade suporta expressões de ligação.
Modelo de Bate-papo Obtém ou define o nome do Modelo de Linguagem Grande a ser invocado para respostas de bate-papo. O valor predefinido é gpt-3.5-turbo. Esta propriedade suporta expressões de ligação.
Prompt do sistema Opcional. Obtém ou define o prompt do sistema a ser usado para solicitar o modelo de linguagem grande. O prompt do sistema é anexado com conhecimento que é obtido como resultado do Query. O prompt combinado é enviado para a API de bate-papo do OpenAI. Esta propriedade suporta expressões de ligação.
MaxKnowledgeCount Opcional. Obtém ou define o número de itens de conhecimento a serem injetados no SystemPrompt.

Anotações

A SemanticSearchInput anotação permite definir uma ligação de entrada de pesquisa semântica, que suporta estes parâmetros:

Elemento Description
Designação Obtém ou define o nome da ligação de entrada.
nome_da_conexão O nome de uma configuração de aplicativo ou variável de ambiente que contém o valor da cadeia de conexão. Esta propriedade suporta expressões de ligação.
Coleção O nome da coleção, tabela ou índice a pesquisar. Esta propriedade suporta expressões de ligação.
query O texto da consulta semântica a ser usado para pesquisar. Esta propriedade suporta expressões de ligação.
incorporaçõesModelo A ID do modelo a ser usado para incorporações. O valor predefinido é text-embedding-3-small. Esta propriedade suporta expressões de ligação.
chatModelo Obtém ou define o nome do Modelo de Linguagem Grande a ser invocado para respostas de bate-papo. O valor predefinido é gpt-3.5-turbo. Esta propriedade suporta expressões de ligação.
sistemaPrompt Opcional. Obtém ou define o prompt do sistema a ser usado para solicitar o modelo de linguagem grande. O prompt do sistema é anexado com conhecimento que é obtido como resultado do Query. O prompt combinado é enviado para a API de bate-papo do OpenAI. Esta propriedade suporta expressões de ligação.
maxKnowledgeCount Opcional. Obtém ou define o número de itens de conhecimento a serem injetados no SystemPrompt.

Decoradores

Durante a visualização, defina a ligação de entrada como uma generic_input_binding associação do tipo semanticSearch, que suporta estes parâmetros:

Parâmetro Description
arg_name O nome da variável que representa o parâmetro de ligação.
connection_name O nome de uma configuração de aplicativo ou variável de ambiente que contém o valor da cadeia de conexão. Esta propriedade suporta expressões de ligação.
Coleção O nome da coleção, tabela ou índice a pesquisar. Esta propriedade suporta expressões de ligação.
query O texto da consulta semântica a ser usado para pesquisar. Esta propriedade suporta expressões de ligação.
embeddings_model A ID do modelo a ser usado para incorporações. O valor predefinido é text-embedding-3-small. Esta propriedade suporta expressões de ligação.
chat_model Obtém ou define o nome do Modelo de Linguagem Grande a ser invocado para respostas de bate-papo. O valor predefinido é gpt-3.5-turbo. Esta propriedade suporta expressões de ligação.
system_prompt Opcional. Obtém ou define o prompt do sistema a ser usado para solicitar o modelo de linguagem grande. O prompt do sistema é anexado com conhecimento que é obtido como resultado do Query. O prompt combinado é enviado para a API de bate-papo do OpenAI. Esta propriedade suporta expressões de ligaçã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 suporta essas propriedades de configuração definidas no arquivo function.json.

Property Descrição
type Deve ser semanticSearch.
direção Deve ser in.
Designação O nome da ligação de entrada.
nome_da_conexão Obtém ou define o nome de uma configuração de aplicativo ou variável de ambiente que contém um valor de cadeia de conexão. Esta propriedade suporta expressões de ligação.
Coleção O nome da coleção, tabela ou índice a pesquisar. Esta propriedade suporta expressões de ligação.
query O texto da consulta semântica a ser usado para pesquisar. Esta propriedade suporta expressões de ligação.
incorporaçõesModelo A ID do modelo a ser usado para incorporações. O valor predefinido é text-embedding-3-small. Esta propriedade suporta expressões de ligação.
chatModelo Obtém ou define o nome do Modelo de Linguagem Grande a ser invocado para respostas de bate-papo. O valor predefinido é gpt-3.5-turbo. Esta propriedade suporta expressões de ligação.
sistemaPrompt Opcional. Obtém ou define o prompt do sistema a ser usado para solicitar o modelo de linguagem grande. O prompt do sistema é anexado com conhecimento que é obtido como resultado do Query. O prompt combinado é enviado para a API de bate-papo do OpenAI. Esta propriedade suporta expressões de ligação.
maxKnowledgeCount Opcional. Obtém ou define o número de itens de conhecimento a serem injetados no SystemPrompt.

Configuração

A associação suporta estas propriedades, que são definidas no seu código:

Property Description
nome_da_conexão O nome de uma configuração de aplicativo ou variável de ambiente que contém o valor da cadeia de conexão. Esta propriedade suporta expressões de ligação.
Coleção O nome da coleção, tabela ou índice a pesquisar. Esta propriedade suporta expressões de ligação.
query O texto da consulta semântica a ser usado para pesquisar. Esta propriedade suporta expressões de ligação.
incorporaçõesModelo A ID do modelo a ser usado para incorporações. O valor predefinido é text-embedding-3-small. Esta propriedade suporta expressões de ligação.
chatModelo Obtém ou define o nome do Modelo de Linguagem Grande a ser invocado para respostas de bate-papo. O valor predefinido é gpt-3.5-turbo. Esta propriedade suporta expressões de ligação.
sistemaPrompt Opcional. Obtém ou define o prompt do sistema a ser usado para solicitar o modelo de linguagem grande. O prompt do sistema é anexado com conhecimento que é obtido como resultado do Query. O prompt combinado é enviado para a API de bate-papo do OpenAI. Esta propriedade suporta expressões de ligação.
maxKnowledgeCount Opcional. Obtém ou define o número de itens de conhecimento a serem injetados no SystemPrompt.

Utilização

Consulte a seção Exemplo para obter exemplos completos.