Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
Atualmente, a extensão do OpenAI do Azure para Azure Functions está em versão prévia.
A associação de entrada de conclusão de texto do Azure OpenAI permite que você coloque as APIs de conclusão de texto de resultados em suas execuções de código. Você pode definir a associação para usar prompts predefinidos com parâmetros ou passar por um prompt inteiro.
Para obter 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 as conclusões do Azure OpenAI, confira Saiba como gerar ou manipular texto.
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 demonstra o padrão de modelagem , em que a função de gatilho HTTP usa um name parâmetro e o insere em um prompt de texto, que é enviado para a API de conclusões do Azure OpenAI pela extensão. A resposta ao prompt é retornada na resposta HTTP.
[Function(nameof(WhoIs))]
public static IActionResult WhoIs(
[HttpTrigger(AuthorizationLevel.Function, Route = "whois/{name}")] HttpRequestData req,
[TextCompletionInput("Who is {name}?", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%")] TextCompletionResponse response)
{
return new OkObjectResult(response.Content);
}
Este exemplo usa um prompt como entrada, envia-o diretamente para a API de conclusões e retorna a resposta como a saída.
[Function(nameof(GenericCompletion))]
public static IActionResult GenericCompletion(
[HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequestData req,
[TextCompletionInput("{Prompt}", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%")] TextCompletionResponse response,
ILogger log)
{
string text = response.Content;
return new OkObjectResult(text);
}
Este exemplo demonstra o padrão de modelagem , em que a função de gatilho HTTP usa um name parâmetro e o insere em um prompt de texto, que é enviado para a API de conclusões do Azure OpenAI pela extensão. A resposta ao prompt é retornada na resposta HTTP.
@FunctionName("WhoIs")
public HttpResponseMessage whoIs(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET},
authLevel = AuthorizationLevel.ANONYMOUS,
route = "whois/{name}")
HttpRequestMessage<Optional<String>> request,
@BindingName("name") String name,
@TextCompletion(prompt = "Who is {name}?", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", name = "response", isReasoningModel = false) TextCompletionResponse response,
final ExecutionContext context) {
return request.createResponseBuilder(HttpStatus.OK)
.header("Content-Type", "application/json")
.body(response.getContent())
.build();
}
Este exemplo usa um prompt como entrada, envia-o diretamente para a API de conclusões e retorna a resposta como a saída.
@FunctionName("GenericCompletion")
public HttpResponseMessage genericCompletion(
@HttpTrigger(
name = "req",
methods = {HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
@TextCompletion(prompt = "{prompt}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", name = "response", isReasoningModel = false) TextCompletionResponse response,
final ExecutionContext context) {
return request.createResponseBuilder(HttpStatus.OK)
.header("Content-Type", "application/json")
.body(response.getContent())
.build();
}
Este exemplo demonstra o padrão de modelagem , em que a função de gatilho HTTP usa um name parâmetro e o insere em um prompt de texto, que é enviado para a API de conclusões do Azure OpenAI pela extensão. A resposta ao prompt é retornada na resposta HTTP.
const { app, input } = require("@azure/functions");
// This OpenAI completion input requires a {name} binding value.
const openAICompletionInput = input.generic({
prompt: 'Who is {name}?',
maxTokens: '100',
type: 'textCompletion',
chatModel: '%CHAT_MODEL_DEPLOYMENT_NAME%'
})
app.http('whois', {
methods: ['GET'],
route: 'whois/{name}',
authLevel: 'function',
extraInputs: [openAICompletionInput],
handler: async (_request, context) => {
var response = context.extraInputs.get(openAICompletionInput)
return { body: response.content.trim() }
}
});
Este exemplo demonstra o padrão de modelagem , em que a função de gatilho HTTP usa um name parâmetro e o insere em um prompt de texto, que é enviado para a API de conclusões do Azure OpenAI pela extensão. A resposta ao prompt é retornada na resposta HTTP.
import { app, input } from "@azure/functions";
// This OpenAI completion input requires a {name} binding value.
const openAICompletionInput = input.generic({
prompt: 'Who is {name}?',
maxTokens: '100',
type: 'textCompletion',
chatModel: '%CHAT_MODEL_DEPLOYMENT_NAME%'
})
app.http('whois', {
methods: ['GET'],
route: 'whois/{name}',
authLevel: 'function',
extraInputs: [openAICompletionInput],
handler: async (_request, context) => {
var response: any = context.extraInputs.get(openAICompletionInput)
return { body: response.content.trim() }
}
});
Este exemplo demonstra o padrão de modelagem , em que a função de gatilho HTTP usa um name parâmetro e o insere em um prompt de texto, que é enviado para a API de conclusões do Azure OpenAI pela extensão. A resposta ao prompt é retornada na resposta HTTP.
Aqui está o arquivo function.json para o TextCompletionResponse:
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"route": "whois/{name}",
"methods": [
"get"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
},
{
"type": "textCompletion",
"direction": "in",
"name": "TextCompletionResponse",
"prompt": "Who is {name}?",
"maxTokens": "100",
"chatModel": "%CHAT_MODEL_DEPLOYMENT_NAME%"
}
]
}
Para obter mais informações sobre as propriedades do arquivo function.json, consulte a seção Configuração.
O código simplesmente retorna o texto da API de conclusão como a resposta:
using namespace System.Net
param($Request, $TriggerMetadata, $TextCompletionResponse)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $TextCompletionResponse.Content
})
Este exemplo demonstra o padrão de modelagem , em que a função de gatilho HTTP usa um name parâmetro e o insere em um prompt de texto, que é enviado para a API de conclusões do Azure OpenAI pela extensão. A resposta ao prompt é retornada na resposta HTTP.
@app.route(route="whois/{name}", methods=["GET"])
@app.text_completion_input(
arg_name="response",
prompt="Who is {name}?",
max_tokens="100",
chat_model="%CHAT_MODEL_DEPLOYMENT_NAME%",
)
def whois(req: func.HttpRequest, response: str) -> func.HttpResponse:
response_json = json.loads(response)
return func.HttpResponse(response_json["content"], status_code=200)
Este exemplo usa um prompt como entrada, envia-o diretamente para a API de conclusões e retorna a resposta como a saída.
@app.route(route="genericcompletion", methods=["POST"])
@app.text_completion_input(
arg_name="response",
prompt="{Prompt}",
chat_model="%CHAT_MODEL_DEPLOYMENT_NAME%",
)
def genericcompletion(
req: func.HttpRequest,
response: str
) -> func.HttpResponse:
response_json = json.loads(response)
return func.HttpResponse(response_json["content"], status_code=200)
Atributos
O atributo específico que você aplica para definir uma associação de entrada de conclusão de texto depende do modo de processo em C#.
No modelo de trabalho isolado, aplique-se TextCompletionInput para definir uma associação de entrada de conclusão de texto.
O atributo dá suporte a esses parâmetros:
| Parâmetro | Descrição |
|---|---|
| Rápido | Obtém ou define o prompt para o qual gerar conclusões, codificadas como uma cadeia de caracteres. |
| 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, procura valores de "Ponto de Extremidade" e "Chave" nesta seção de configuração. Se não for especificado ou a seção não existir, retornará à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. |
| ChatModel |
Opcional. Obtém ou define a ID do modelo a ser usada como uma cadeia de caracteres, com um valor padrão de gpt-3.5-turbo. |
| Temperatura |
Opcional. Obtém ou define a temperatura de amostragem a ser usada, como uma cadeia de caracteres entre 0 e 2. Valores mais altos (0.8) tornam a saída mais aleatória, enquanto valores mais baixos como (0.2) tornam a saída mais focada e determinística. Você deve usar um Temperature ou TopP, mas não ambos. |
| TopP |
Opcional. Obtém ou define uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, como uma cadeia de caracteres. Neste método de amostragem, o modelo considera os resultados dos tokens com top_p massa de probabilidade. Portanto, 0.1 significa que somente os tokens que compõem os 10 principais% massa de probabilidade são considerados. Você deve usar um Temperature ou TopP, mas não ambos. |
| MaxTokens |
Opcional. Obtém ou define o número máximo de tokens a serem gerados na conclusão, como uma cadeia de caracteres com um padrão de 100. A contagem de tokens do prompt mais max_tokens não pode exceder o tamanho do contexto do modelo. A maioria dos modelos tem um comprimento de contexto de 2.048 tokens (exceto os modelos mais novos, que dão suporte a 4.096). |
| IsReasoningModel |
Opcional. Obtém ou define um valor que indica se o modelo de conclusão do chat é um modelo de raciocínio. Essa 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 TextCompletion anotação permite que você defina uma associação de entrada de conclusão de texto, que dá suporte a esses parâmetros:
| Elemento | Descrição |
|---|---|
| nome | Obtém ou define o nome da associação de entrada. |
| rápido | Obtém ou define o prompt para o qual gerar conclusões, codificadas como uma cadeia de caracteres. |
| 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, procura valores de "Ponto de Extremidade" e "Chave" nesta seção de configuração. Se não for especificado ou a seção não existir, retornará à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. |
| chatModel | Obtém ou define a ID do modelo a ser usada como uma cadeia de caracteres, com um valor padrão de gpt-3.5-turbo. |
| temperatura |
Opcional. Obtém ou define a temperatura de amostragem a ser usada, como uma cadeia de caracteres entre 0 e 2. Valores mais altos (0.8) tornam a saída mais aleatória, enquanto valores mais baixos como (0.2) tornam a saída mais focada e determinística. Você deve usar um Temperature ou TopP, mas não ambos. |
| topP |
Opcional. Obtém ou define uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, como uma cadeia de caracteres. Neste método de amostragem, o modelo considera os resultados dos tokens com top_p massa de probabilidade. Portanto, 0.1 significa que somente os tokens que compõem os 10 principais% massa de probabilidade são considerados. Você deve usar um Temperature ou TopP, mas não ambos. |
| maxTokens |
Opcional. Obtém ou define o número máximo de tokens a serem gerados na conclusão, como uma cadeia de caracteres com um padrão de 100. A contagem de tokens do prompt mais max_tokens não pode exceder o tamanho do contexto do modelo. A maioria dos modelos tem um comprimento de contexto de 2.048 tokens (exceto os modelos mais novos, que dão suporte a 4.096). |
| isReasoningModel |
Opcional. Obtém ou define um valor que indica se o modelo de conclusão do chat é um modelo de raciocínio. Essa 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 versão prévia, defina a associação de entrada como uma associação generic_input_binding do tipo textCompletion, 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. |
| rápido | Obtém ou define o prompt para o qual gerar conclusões, codificadas como uma cadeia de caracteres. |
| 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, procura valores de "Ponto de Extremidade" e "Chave" nesta seção de configuração. Se não for especificado ou a seção não existir, retornará à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. |
| chat_model | Obtém ou define a ID do modelo a ser usada como uma cadeia de caracteres, com um valor padrão de gpt-3.5-turbo. |
| temperatura |
Opcional. Obtém ou define a temperatura de amostragem a ser usada, como uma cadeia de caracteres entre 0 e 2. Valores mais altos (0.8) tornam a saída mais aleatória, enquanto valores mais baixos como (0.2) tornam a saída mais focada e determinística. Você deve usar um Temperature ou TopP, mas não ambos. |
| top_p |
Opcional. Obtém ou define uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, como uma cadeia de caracteres. Neste método de amostragem, o modelo considera os resultados dos tokens com top_p massa de probabilidade. Portanto, 0.1 significa que somente os tokens que compõem os 10 principais% massa de probabilidade são considerados. Você deve usar um Temperature ou TopP, mas não ambos. |
| max_tokens |
Opcional. Obtém ou define o número máximo de tokens a serem gerados na conclusão, como uma cadeia de caracteres com um padrão de 100. A contagem de tokens do prompt mais max_tokens não pode exceder o tamanho do contexto do modelo. A maioria dos modelos tem um comprimento de contexto de 2.048 tokens (exceto os modelos mais novos, que dão suporte a 4.096). |
| is_reasoning _model |
Opcional. Obtém ou define um valor que indica se o modelo de conclusão do chat é um modelo de raciocínio. Essa 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 dá suporte a essas propriedades de configuração definidas no arquivo function.json.
| Propriedade | Descrição |
|---|---|
| tipo | Deve ser textCompletion. |
| direção | Deve ser in. |
| nome | O nome da associação de entrada. |
| rápido | Obtém ou define o prompt para o qual gerar conclusões, codificadas como uma cadeia de caracteres. |
| 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, procura valores de "Ponto de Extremidade" e "Chave" nesta seção de configuração. Se não for especificado ou a seção não existir, retornará à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. |
| chatModel | Obtém ou define a ID do modelo a ser usada como uma cadeia de caracteres, com um valor padrão de gpt-3.5-turbo. |
| temperatura |
Opcional. Obtém ou define a temperatura de amostragem a ser usada, como uma cadeia de caracteres entre 0 e 2. Valores mais altos (0.8) tornam a saída mais aleatória, enquanto valores mais baixos como (0.2) tornam a saída mais focada e determinística. Você deve usar um Temperature ou TopP, mas não ambos. |
| topP |
Opcional. Obtém ou define uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, como uma cadeia de caracteres. Neste método de amostragem, o modelo considera os resultados dos tokens com top_p massa de probabilidade. Portanto, 0.1 significa que somente os tokens que compõem os 10 principais% massa de probabilidade são considerados. Você deve usar um Temperature ou TopP, mas não ambos. |
| maxTokens |
Opcional. Obtém ou define o número máximo de tokens a serem gerados na conclusão, como uma cadeia de caracteres com um padrão de 100. A contagem de tokens do prompt mais max_tokens não pode exceder o tamanho do contexto do modelo. A maioria dos modelos tem um comprimento de contexto de 2.048 tokens (exceto os modelos mais novos, que dão suporte a 4.096). |
| isReasoningModel |
Opcional. Obtém ou define um valor que indica se o modelo de conclusão do chat é um modelo de raciocínio. Essa 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 dá suporte a estas propriedades, que são definidas no código:
| Propriedade | Descrição |
|---|---|
| rápido | Obtém ou define o prompt para o qual gerar conclusões, codificadas como uma cadeia de caracteres. |
| 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, procura valores de "Ponto de Extremidade" e "Chave" nesta seção de configuração. Se não for especificado ou a seção não existir, retornará à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. |
| chatModel | Obtém ou define a ID do modelo a ser usada como uma cadeia de caracteres, com um valor padrão de gpt-3.5-turbo. |
| temperatura |
Opcional. Obtém ou define a temperatura de amostragem a ser usada, como uma cadeia de caracteres entre 0 e 2. Valores mais altos (0.8) tornam a saída mais aleatória, enquanto valores mais baixos como (0.2) tornam a saída mais focada e determinística. Você deve usar um Temperature ou TopP, mas não ambos. |
| topP |
Opcional. Obtém ou define uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, como uma cadeia de caracteres. Neste método de amostragem, o modelo considera os resultados dos tokens com top_p massa de probabilidade. Portanto, 0.1 significa que somente os tokens que compõem os 10 principais% massa de probabilidade são considerados. Você deve usar um Temperature ou TopP, mas não ambos. |
| maxTokens |
Opcional. Obtém ou define o número máximo de tokens a serem gerados na conclusão, como uma cadeia de caracteres com um padrão de 100. A contagem de tokens do prompt mais max_tokens não pode exceder o tamanho do contexto do modelo. A maioria dos modelos tem um comprimento de contexto de 2.048 tokens (exceto os modelos mais novos, que dão suporte a 4.096). |
| isReasoningModel |
Opcional. Obtém ou define um valor que indica se o modelo de conclusão do chat é um modelo de raciocínio. Essa 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. |
Uso
Consulte a Seção de exemplo para obter exemplos completos.