Desencadenador del asistente de Azure OpenAI para Azure Functions
Importante
La extensión de Azure OpenAI para Azure Functions está actualmente en versión preliminar.
El desencadenador del asistente de Azure OpenAI permite ejecutar el código en función del bot de chat personalizado o la solicitud de aptitud realizada a un asistente.
Para obtener información sobre la configuración y los detalles de configuración de la extensión de Azure OpenAI, consulte Extensiones de Azure OpenAI para Azure Functions. Para más información sobre los asistentes de Azure OpenAI, consulte API Azure OpenAI Assistants.
Nota:
Las referencias y ejemplos solo se proporcionan para el modelo de Node.js v4.
Nota:
Las referencias y ejemplos solo se proporcionan para el modelo de Python v2.
Nota:
Aunque se admiten ambos modelos de proceso de C#, solo se proporcionan ejemplos de modelos de trabajo aislados.
Ejemplo
En este ejemplo se muestra cómo crear un asistente que agrega una nueva tarea de tareas pendientes a una base de datos. El desencadenador tiene una descripción estática de Create a new todo task
que usa el modelo. La propia función toma una cadena, que representa una nueva tarea que se va a agregar. Cuando se ejecuta, la función agrega la tarea como un nuevo elemento de tareas pendientes en un almacén de elementos personalizado y devuelve una respuesta del almacén.
[Function(nameof(AddTodo))]
public Task AddTodo([AssistantSkillTrigger("Create a new todo task")] string taskDescription)
{
if (string.IsNullOrEmpty(taskDescription))
{
throw new ArgumentException("Task description cannot be empty");
}
this.logger.LogInformation("Adding todo: {task}", taskDescription);
string todoId = Guid.NewGuid().ToString()[..6];
return this.todoManager.AddTodoAsync(new TodoItem(todoId, taskDescription));
}
En este ejemplo se muestra cómo crear un asistente que agrega una nueva tarea de tareas pendientes a una base de datos. El desencadenador tiene una descripción estática de Create a new todo task
que usa el modelo. La propia función toma una cadena, que representa una nueva tarea que se va a agregar. Cuando se ejecuta, la función agrega la tarea como un nuevo elemento de tareas pendientes en un almacén de elementos personalizado y devuelve una respuesta del almacén.
@FunctionName("AddTodo")
public void addTodo(
@AssistantSkillTrigger(
name = "assistantSkillCreateTodo",
functionDescription = "Create a new todo task"
) String taskDescription,
final ExecutionContext context) {
if (taskDescription == null || taskDescription.isEmpty()) {
throw new IllegalArgumentException("Task description cannot be empty");
}
context.getLogger().info("Adding todo: " + taskDescription);
String todoId = UUID.randomUUID().toString().substring(0, 6);
TodoItem todoItem = new TodoItem(todoId, taskDescription);
todoManager.addTodo(todoItem);
}
Los ejemplos aún no están disponibles.
En este ejemplo se muestra cómo crear un asistente que agrega una nueva tarea de tareas pendientes a una base de datos. El desencadenador tiene una descripción estática de Create a new todo task
que usa el modelo. La propia función toma una cadena, que representa una nueva tarea que se va a agregar. Cuando se ejecuta, la función agrega la tarea como un nuevo elemento de tareas pendientes en un almacén de elementos personalizado y devuelve una respuesta del almacén.
app.generic('AddTodo', {
trigger: trigger.generic({
type: 'assistantSkillTrigger',
functionDescription: 'Create a new todo task'
}),
handler: async (taskDescription: string, context: InvocationContext) => {
if (!taskDescription) {
throw new Error('Task description cannot be empty')
}
context.log(`Adding todo: ${taskDescription}`)
const todoId = randomUUID().substring(0, 6)
return todoManager.AddTodo(new TodoItem(todoId, taskDescription))
}
En este ejemplo se muestra cómo crear un asistente que agrega una nueva tarea de tareas pendientes a una base de datos. El desencadenador tiene una descripción estática de Create a new todo task
que usa el modelo. La propia función toma una cadena, que representa una nueva tarea que se va a agregar. Cuando se ejecuta, la función agrega la tarea como un nuevo elemento de tareas pendientes en un almacén de elementos personalizado y devuelve una respuesta del almacén.
Este es el archivo function.json para Agregar tareas pendientes:
{
"bindings": [
{
"name": "TaskDescription",
"type": "assistantSkillTrigger",
"dataType": "string",
"direction": "in",
"functionDescription": "Create a new todo task"
}
]
}
Para obtener más información sobre las propiedades del archivo function.json, consulte la sección de Configuración.
using namespace System.Net
param($TaskDescription, $TriggerMetadata)
$ErrorActionPreference = "Stop"
if (-not $TaskDescription) {
throw "Task description cannot be empty"
}
Write-Information "Adding todo: $TaskDescription"
$todoID = [Guid]::NewGuid().ToString().Substring(0, 5)
Add-Todo $todoId $TaskDescription
En este ejemplo se muestra cómo crear un asistente que agrega una nueva tarea de tareas pendientes a una base de datos. El desencadenador tiene una descripción estática de Create a new todo task
que usa el modelo. La propia función toma una cadena, que representa una nueva tarea que se va a agregar. Cuando se ejecuta, la función agrega la tarea como un nuevo elemento de tareas pendientes en un almacén de elementos personalizado y devuelve una respuesta del almacén.
@skills.function_name("AddTodo")
@skills.assistant_skill_trigger(arg_name="taskDescription", function_description="Create a new todo task")
def add_todo(taskDescription: str) -> None:
if not taskDescription:
raise ValueError("Task description cannot be empty")
logging.info(f"Adding todo: {taskDescription}")
todo_id = str(uuid.uuid4())[0:6]
todo_manager.add_todo(TodoItem(id=todo_id, task=taskDescription))
return
Atributos
Aplique el atributo AssistantSkillTrigger
para definir un desencadenador del asistente, que admite estos parámetros:
Parámetro | Descripción |
---|---|
FunctionDescription | Obtiene la descripción de la función asistente, que se proporciona al modelo. |
FunctionName | Opcional. Obtiene o establece el nombre de la función a la que llama el asistente. |
ParameterDescriptionJson | Opcional. Obtiene o establece una descripción JSON del parámetro de función, que se proporciona al modelo. Para obtener más información, consulte Uso. |
Modelo | Opcional. Obtiene o establece la implementación del modelo de chat de OpenAI que se va a usar, con un valor predeterminado de gpt-3.5-turbo . |
anotaciones
La anotación AssistantSkillTrigger
permite definir un desencadenador del asistente, que admite estos parámetros:
Elemento | Descripción |
---|---|
name | Obtiene o establece el nombre del enlace de entrada. |
functionDescription | Obtiene la descripción de la función asistente, que se proporciona al modelo. |
functionName | Opcional. Obtiene o establece el nombre de la función a la que llama el asistente. |
parameterDescriptionJson | Opcional. Obtiene o establece una descripción JSON del parámetro de función, que se proporciona al modelo. Para obtener más información, consulte Uso. |
model | Opcional. Obtiene o establece la implementación del modelo de chat de OpenAI que se va a usar, con un valor predeterminado de gpt-3.5-turbo . |
Elementos Decorator
Durante la versión preliminar, defina el enlace de entrada como un enlace generic_trigger
de tipo assistantSkillTrigger
, que admite estos parámetros:
Parámetro | Descripción |
---|---|
function_description | Obtiene la descripción de la función asistente, que se proporciona al modelo. |
function_name | Opcional. Obtiene o establece el nombre de una función a la que llama el asistente. |
parameterDescriptionJson | Opcional. Obtiene o establece una descripción JSON del parámetro de función, que se proporciona al modelo. Para obtener más información, consulte Uso. |
model | Opcional. Obtiene o establece la implementación del modelo de chat de OpenAI que se va a usar, con un valor predeterminado de gpt-3.5-turbo . |
Configuración
El enlace admite estas propiedades de configuración que se establecen en el archivo function.json.
Propiedad | Descripción |
---|---|
type | Debe ser AssistantSkillTrigger . |
direction | Debe ser in . |
name | El nombre del desencadenador. |
functionName | Obtiene o establece el nombre de la función a la que llama el asistente. |
functionDescription | Obtiene la descripción de la función asistente, que se proporciona al LLM. |
parameterDescriptionJson | Opcional. Obtiene o establece una descripción JSON del parámetro de función, que se proporciona al modelo. Para obtener más información, consulte Uso. |
model | Opcional. Obtiene o establece la implementación del modelo de chat de OpenAI que se va a usar, con un valor predeterminado de gpt-3.5-turbo . |
Configuración
El enlace admite estas propiedades, que se definen en el código:
Propiedad | Descripción |
---|---|
type | Debe ser AssistantSkillTrigger . |
name | El nombre del desencadenador. |
functionName | Obtiene o establece el nombre de la función a la que llama el asistente. |
functionDescription | Obtiene la descripción de la función asistente, que se proporciona al LLM. |
parameterDescriptionJson | Opcional. Obtiene o establece una descripción JSON del parámetro de función, que se proporciona al modelo. Para obtener más información, consulte Uso. |
model | Opcional. Obtiene o establece la implementación del modelo de chat de OpenAI que se va a usar, con un valor predeterminado de gpt-3.5-turbo . |
Consulte la sección de ejemplos para ver ejemplos completos.
Uso
Cuando no se proporciona el valor JSON parameterDescriptionJson
, se genera automáticamente. Para obtener más información sobre la sintaxis de este objeto, consulte la documentación de la API OpenAI.