Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.
Observação
Referências e exemplos são fornecidos apenas para o modelo Node.js v4.
Observação
Referências e exemplos são fornecidos apenas para o modelo Python v2.
Observação
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.
[Function("PromptFile")]
public static IActionResult PromptFile(
[HttpTrigger(AuthorizationLevel.Function, "post")] SemanticSearchRequest unused,
[SemanticSearchInput("AISearchEndpoint", "openai-index", Query = "{prompt}", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", EmbeddingsModel = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%")] SemanticSearchContext result)
{
return new ContentResult { Content = result.Response, ContentType = "text/plain" };
}
Este exemplo mostra como executar uma pesquisa semântica em um arquivo.
@FunctionName("PromptFile")
public HttpResponseMessage promptFile(
@HttpTrigger(
name = "req",
methods = {HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<SemanticSearchRequest> request,
@SemanticSearch(name = "search", searchConnectionName = "AISearchEndpoint", collection = "openai-index", query = "{prompt}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", embeddingsModel = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%", isReasoningModel = false ) String semanticSearchContext,
final ExecutionContext context) {
String response = new JSONObject(semanticSearchContext).getString("Response");
return request.createResponseBuilder(HttpStatus.OK)
.header("Content-Type", "application/json")
.body(response)
.build();
}
public class SemanticSearchRequest {
public String prompt;
public String getPrompt() {
return prompt;
}
public void setPrompt(String prompt) {
this.prompt = prompt;
}
}
Este exemplo mostra como executar 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 executar uma pesquisa semântica em um arquivo.
Aqui está o arquivofunction.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",
"searchConnectionName": "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
})
Este exemplo mostra como executar uma pesquisa semântica em um arquivo.
@app.function_name("PromptFile")
@app.route(methods=["POST"])
@app.semantic_search_input(
arg_name="result",
search_connection_name="AISearchEndpoint",
collection="openai-index",
query="{prompt}",
embeddings_model="%EMBEDDING_MODEL_DEPLOYMENT_NAME%",
chat_model="%CHAT_MODEL_DEPLOYMENT_NAME%",
)
def prompt_file(req: func.HttpRequest, result: str) -> func.HttpResponse:
result_json = json.loads(result)
response_json = {
"content": result_json.get("Response"),
"content_type": "text/plain",
}
return func.HttpResponse(
json.dumps(response_json), status_code=200, mimetype="application/json"
)
Atributos
Aplique o SemanticSearchInput atributo para definir uma associação de entrada de pesquisa semântica, que suporta estes parâmetros:
| Parâmetro | Descrição |
|---|---|
| SearchConnectionName | 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 |
Opcional. 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 |
Opcional. 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. |
| AIConnectionName | Opcional. Obtém ou define o nome da seção de configuração para as configurações de conectividade do serviço de IA. Para o Azure OpenAI: Se especificado, procure os valores "Endpoint" e "Key" nesta seção de configuração. Se não for especificado ou a seção não existir, recorrerá às variáveis de ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Para autenticação de identidade gerenciada atribuída pelo usuário, essa propriedade é necessária. Para o serviço OpenAI (não Azure), defina a variável de ambiente OPENAI_API_KEY. |
| 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. |
| IsReasoningModel |
Opcional. Obtém ou define um valor que indica se o modelo de conclusão de chat é um modelo de raciocínio. Esta opção é experimental e associada ao modelo de raciocínio até que todos os modelos tenham paridade nas propriedades esperadas, com um valor padrão de false. |
Anotações
A SemanticSearchInput anotação permite definir uma ligação de entrada de pesquisa semântica, que suporta estes parâmetros:
| Elemento | Descrição |
|---|---|
| Nome | Obtém ou define o nome da ligação de entrada. |
| searchConnectionName | 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 |
Opcional. 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 |
Opcional. 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. |
| aiConnectionName | Opcional. Obtém ou define o nome da seção de configuração para as configurações de conectividade do serviço de IA. Para o Azure OpenAI: Se especificado, procure os valores "Endpoint" e "Key" nesta seção de configuração. Se não for especificado ou a seção não existir, recorrerá às variáveis de ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Para autenticação de identidade gerenciada atribuída pelo usuário, essa propriedade é necessária. Para o serviço OpenAI (não Azure), defina a variável de ambiente OPENAI_API_KEY. |
| 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. |
| isReasoningModel |
Opcional. Obtém ou define um valor que indica se o modelo de conclusão de chat é um modelo de raciocínio. Esta opção é experimental e associada ao modelo de raciocínio até que todos os modelos tenham paridade nas propriedades esperadas, com um valor padrão de false. |
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 | Descrição |
|---|---|
| arg_name | O nome da variável que representa o parâmetro de ligação. |
| search_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. |
| consulta | O texto da consulta semântica a ser usado para pesquisar. Esta propriedade suporta expressões de ligação. |
| embeddings_model |
Opcional. 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 |
Opcional. 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. |
| ai_connection_name | Opcional. Obtém ou define o nome da seção de configuração para as configurações de conectividade do serviço de IA. Para o Azure OpenAI: Se especificado, procure os valores "Endpoint" e "Key" nesta seção de configuração. Se não for especificado ou a seção não existir, recorrerá às variáveis de ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Para autenticação de identidade gerenciada atribuída pelo usuário, essa propriedade é necessária. Para o serviço OpenAI (não Azure), defina a variável de ambiente OPENAI_API_KEY. |
| 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. |
| is_reasoning _model |
Opcional. Obtém ou define um valor que indica se o modelo de conclusão de chat é um modelo de raciocínio. Esta opção é experimental e associada ao modelo de raciocínio até que todos os modelos tenham paridade nas propriedades esperadas, com um valor padrão de false. |
Configuração
A associação suporta essas propriedades de configuração definidas no arquivo function.json.
| Propriedade | Descrição |
|---|---|
| tipo | Deve ser semanticSearch. |
| direção | Deve ser in. |
| Nome | O nome da ligação de entrada. |
| searchConnectionName | 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. |
| consulta | O texto da consulta semântica a ser usado para pesquisar. Esta propriedade suporta expressões de ligação. |
| incorporaçõesModelo |
Opcional. 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 |
Opcional. 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. |
| aiConnectionName | Opcional. Obtém ou define o nome da seção de configuração para as configurações de conectividade do serviço de IA. Para o Azure OpenAI: Se especificado, procure os valores "Endpoint" e "Key" nesta seção de configuração. Se não for especificado ou a seção não existir, recorrerá às variáveis de ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Para autenticação de identidade gerenciada atribuída pelo usuário, essa propriedade é necessária. Para o serviço OpenAI (não Azure), defina a variável de ambiente OPENAI_API_KEY. |
| 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. |
| isReasoningModel |
Opcional. Obtém ou define um valor que indica se o modelo de conclusão de chat é um modelo de raciocínio. Esta opção é experimental e associada ao modelo de raciocínio até que todos os modelos tenham paridade nas propriedades esperadas, com um valor padrão de false. |
Configuração
A associação suporta estas propriedades, que são definidas no seu código:
| Propriedade | Descrição |
|---|---|
| searchConnectionName | 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 |
Opcional. 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 |
Opcional. 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. |
| aiConnectionName | Opcional. Obtém ou define o nome da seção de configuração para as configurações de conectividade do serviço de IA. Para o Azure OpenAI: Se especificado, procure os valores "Endpoint" e "Key" nesta seção de configuração. Se não for especificado ou a seção não existir, recorrerá às variáveis de ambiente: AZURE_OPENAI_ENDPOINT e AZURE_OPENAI_KEY. Para autenticação de identidade gerenciada atribuída pelo usuário, essa propriedade é necessária. Para o serviço OpenAI (não Azure), defina a variável de ambiente OPENAI_API_KEY. |
| 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. |
| isReasoningModel |
Opcional. Obtém ou define um valor que indica se o modelo de conclusão de chat é um modelo de raciocínio. Esta opção é experimental e associada ao modelo de raciocínio até que todos os modelos tenham paridade nas propriedades esperadas, com um valor padrão de false. |
Utilização
Consulte a seção Exemplo para obter exemplos completos.