Associação de saída de criação do assistente 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 saída de criação do assistente do OpenAI do Azure permite que você crie um novo chatbot assistente a partir da execução do código de função.
Para obter informações sobre os detalhes de configuração da extensão do OpenAI do Azure, consulte Extensões do OpenAI do Azure para Azure Functions. Para saber mais sobre os assistentes do OpenAI do Azure, consulte API de Assistentes do OpenAI 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 demonstra o processo de criação, em que a função HTTP PUT que cria um novo chatbot assistente com a ID especificada. A resposta ao prompt é retornada na resposta HTTP.
/// HTTP PUT function that creates a new assistant chat bot with the specified ID.
/// </summary>
[Function(nameof(CreateAssistant))]
public static async Task<CreateChatBotOutput> CreateAssistant(
[HttpTrigger(AuthorizationLevel.Anonymous, "put", Route = "assistants/{assistantId}")] HttpRequestData req,
string assistantId)
{
string instructions =
"""
Don't make assumptions about what values to plug into functions.
Ask for clarification if a user request is ambiguous.
""";
using StreamReader reader = new(req.Body);
string request = await reader.ReadToEndAsync();
return new CreateChatBotOutput
{
HttpResponse = new ObjectResult(new { assistantId }) { StatusCode = 202 },
ChatBotCreateRequest = new AssistantCreateRequest(assistantId, instructions)
{
ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting,
CollectionName = DefaultCollectionName,
},
Este exemplo demonstra o processo de criação, em que a função HTTP PUT que cria um novo chatbot assistente com a ID especificada. A resposta ao prompt é retornada na resposta HTTP.
* account
* where chat data will be stored.
*/
String DEFAULT_CHATSTORAGE = "AzureWebJobsStorage";
/**
* The default collection name for the table storage account.
* This constant is used to specify the collection name for the table storage
* account
* where chat data will be stored.
*/
String DEFAULT_COLLECTION = "ChatState";
/*
* HTTP PUT function that creates a new assistant chat bot with the specified ID.
*/
@FunctionName("CreateAssistant")
public HttpResponseMessage createAssistant(
@HttpTrigger(
name = "req",
methods = {HttpMethod.PUT},
authLevel = AuthorizationLevel.ANONYMOUS,
route = "assistants/{assistantId}")
HttpRequestMessage<Optional<String>> request,
@BindingName("assistantId") String assistantId,
@AssistantCreate(name = "AssistantCreate") OutputBinding<AssistantCreateRequest> message,
Ainda não há exemplos disponíveis.
Este exemplo demonstra o processo de criação, em que a função HTTP PUT que cria um novo chatbot assistente com a ID especificada. A resposta ao prompt é retornada na resposta HTTP.
const COLLECTION_NAME = "ChatState";
const chatBotCreateOutput = output.generic({
type: 'assistantCreate'
})
app.http('CreateAssistant', {
methods: ['PUT'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
extraOutputs: [chatBotCreateOutput],
handler: async (request: HttpRequest, context: InvocationContext) => {
const assistantId = request.params.assistantId
const instructions =
`
Don't make assumptions about what values to plug into functions.
Ask for clarification if a user request is ambiguous.
`
const createRequest = {
id: assistantId,
instructions: instructions,
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
}
Este exemplo demonstra o processo de criação, em que a função HTTP PUT que cria um novo chatbot assistente com a ID especificada. A resposta ao prompt é retornada na resposta HTTP.
Aqui está o arquivo function.json para o Create Assistant:
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"route": "assistants/{assistantId}",
"methods": [
"put"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
},
{
"type": "assistantCreate",
"direction": "out",
"dataType": "string",
"name": "Requests"
}
]
}
Para obter mais informações sobre as propriedades do arquivo function.json, consulte a seção Configuração.
{{Isso vem do comentário do código de exemplo}}
using namespace System.Net
param($Request, $TriggerMetadata)
$assistantId = $Request.params.assistantId
$instructions = "Don't make assumptions about what values to plug into functions."
$instructions += "\nAsk for clarification if a user request is ambiguous."
$create_request = @{
"id" = $assistantId
"instructions" = $instructions
"chatStorageConnectionSetting" = "AzureWebJobsStorage"
"collectionName" = "ChatState"
}
Push-OutputBinding -Name Requests -Value (ConvertTo-Json $create_request)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::Accepted
Body = (ConvertTo-Json @{ "assistantId" = $assistantId})
Headers = @{
"Content-Type" = "application/json"
}
})
Este exemplo demonstra o processo de criação, em que a função HTTP PUT que cria um novo chatbot assistente com a ID especificada. A resposta ao prompt é retornada na resposta HTTP.
DEFAULT_CHAT_COLLECTION_NAME = "ChatState"
@apis.function_name("CreateAssistant")
@apis.route(route="assistants/{assistantId}", methods=["PUT"])
@apis.assistant_create_output(arg_name="requests")
def create_assistant(req: func.HttpRequest, requests: func.Out[str]) -> func.HttpResponse:
assistantId = req.route_params.get("assistantId")
instructions = """
Don't make assumptions about what values to plug into functions.
Ask for clarification if a user request is ambiguous.
"""
create_request = {
"id": assistantId,
"instructions": instructions,
"chatStorageConnectionSetting": DEFAULT_CHAT_STORAGE_SETTING,
"collectionName": DEFAULT_CHAT_COLLECTION_NAME
Atributos
Aplique o atributo CreateAssistant
para definir uma associação de saída de criação do assistente, que dá suporte a esses parâmetros:
Parâmetro | Descrição |
---|---|
Id | O identificador do assistente a ser criado. |
Instruções | Opcional. As instruções fornecidas ao assistente a serem seguidas. |
Anotações
A anotação CreateAssistant
permite que você defina uma associação de saída de criação do assistente, que dá suporte a esses parâmetros:
Element | Descrição |
---|---|
name | Obtém ou define o nome da associação de saída. |
id | O identificador do assistente a ser criado. |
instruções | Opcional. As instruções fornecidas ao assistente a serem seguidas. |
Decoradores
Durante a versão prévia, defina a associação de saída como uma associação generic_output_binding
do tipo createAssistant
, que dá suporte a esses parâmetros:
Parâmetro | Descrição |
---|---|
arg_name | O nome da variável que representa o parâmetro de associação. |
id | O identificador do assistente a ser criado. |
instruções | Opcional. As instruções fornecidas ao assistente a serem seguidas. |
Configuração
A associação dá suporte a essas propriedades de configuração definidas no arquivo function.json.
Propriedade | Descrição |
---|---|
tipo | Deve ser CreateAssistant . |
direction | Deve ser out . |
name | O nome da associação de saída. |
id | O identificador do assistente a ser criado. |
instruções | Opcional. As instruções fornecidas ao assistente a serem seguidas. |
Configuração
A associação dá suporte a estas propriedades, que são definidas no código:
Propriedade | Descrição |
---|---|
id | O identificador do assistente a ser criado. |
instruções | Opcional. As instruções fornecidas ao assistente a serem seguidas. |
Uso
Consulte a Seção de exemplo para obter exemplos completos.