Trigger dell'assistente Azure OpenAI per Funzioni di Azure
Importante
L'estensione Azure OpenAI per Funzioni di Azure è attualmente in anteprima.
Il trigger assistente Azure OpenAI consente di eseguire il codice in base a un chatbot personalizzato o a una richiesta di competenza effettuata a un assistente.
Per informazioni sull'installazione e la configurazione dell'estensione Azure OpenAI, vedere Estensioni Azure OpenAI per Funzioni di Azure. Per altre informazioni sugli assistenti OpenAI di Azure, vedere API Assistenti OpenAI di Azure.
Nota
I riferimenti e gli esempi vengono forniti solo per il modello Node.js v4.
Nota
I riferimenti e gli esempi vengono forniti solo per il modello Python v2.
Nota
Anche se sono supportati entrambi i modelli di processo C#, vengono forniti solo esempi di modelli di lavoro isolati.
Esempio
In questo esempio viene illustrato come creare un assistente che aggiunge una nuova attività todo a un database. Il trigger ha una descrizione statica di Create a new todo task
utilizzata dal modello. La funzione stessa accetta una stringa, che rappresenta una nuova attività da aggiungere. Quando viene eseguita, la funzione aggiunge l'attività come nuovo elemento todo in un archivio di elementi personalizzato e restituisce una risposta dall'archivio.
[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));
}
In questo esempio viene illustrato come creare un assistente che aggiunge una nuova attività todo a un database. Il trigger ha una descrizione statica di Create a new todo task
utilizzata dal modello. La funzione stessa accetta una stringa, che rappresenta una nuova attività da aggiungere. Quando viene eseguita, la funzione aggiunge l'attività come nuovo elemento todo in un archivio di elementi personalizzato e restituisce una risposta dall'archivio.
@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);
}
Gli esempi non sono ancora disponibili.
In questo esempio viene illustrato come creare un assistente che aggiunge una nuova attività todo a un database. Il trigger ha una descrizione statica di Create a new todo task
utilizzata dal modello. La funzione stessa accetta una stringa, che rappresenta una nuova attività da aggiungere. Quando viene eseguita, la funzione aggiunge l'attività come nuovo elemento todo in un archivio di elementi personalizzato e restituisce una risposta dall'archivio.
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))
}
In questo esempio viene illustrato come creare un assistente che aggiunge una nuova attività todo a un database. Il trigger ha una descrizione statica di Create a new todo task
utilizzata dal modello. La funzione stessa accetta una stringa, che rappresenta una nuova attività da aggiungere. Quando viene eseguita, la funzione aggiunge l'attività come nuovo elemento todo in un archivio di elementi personalizzato e restituisce una risposta dall'archivio.
Ecco il file function.json per Aggiungi todo:
{
"bindings": [
{
"name": "TaskDescription",
"type": "assistantSkillTrigger",
"dataType": "string",
"direction": "in",
"functionDescription": "Create a new todo task"
}
]
}
Per altre informazioni sulle proprietà dei file function.json, vedere la sezione configurazione.
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
In questo esempio viene illustrato come creare un assistente che aggiunge una nuova attività todo a un database. Il trigger ha una descrizione statica di Create a new todo task
utilizzata dal modello. La funzione stessa accetta una stringa, che rappresenta una nuova attività da aggiungere. Quando viene eseguita, la funzione aggiunge l'attività come nuovo elemento todo in un archivio di elementi personalizzato e restituisce una risposta dall'archivio.
@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
Attributi
Applicare l'attributo AssistantSkillTrigger
per definire un trigger assistente, che supporta questi parametri:
Parametro | Descrizione |
---|---|
FunctionDescription | Ottiene la descrizione della funzione assistente, fornita al modello. |
FunctionName | Facoltativo. Ottiene o imposta il nome della funzione chiamata dall'assistente. |
ParameterDescriptionJson | Facoltativo. Ottiene o imposta una descrizione JSON del parametro della funzione, che viene fornita al modello. Per altre informazioni, vedere Utilizzo. |
Modello | Facoltativo. Ottiene o imposta la distribuzione del modello di chat OpenAI da usare, con il valore predefinito di gpt-3.5-turbo . |
Annotazioni
L'annotazione AssistantSkillTrigger
consente di definire un trigger assistente, che supporta questi parametri:
Elemento | Descrizione |
---|---|
name | Ottiene o imposta il nome del binding di input. |
functionDescription | Ottiene la descrizione della funzione assistente, fornita al modello. |
functionName | Facoltativo. Ottiene o imposta il nome della funzione chiamata dall'assistente. |
parameterDescriptionJson | Facoltativo. Ottiene o imposta una descrizione JSON del parametro della funzione, che viene fornita al modello. Per altre informazioni, vedere Utilizzo. |
model | Facoltativo. Ottiene o imposta la distribuzione del modello di chat OpenAI da usare, con il valore predefinito di gpt-3.5-turbo . |
Elementi Decorator
Durante l'anteprima, definire l'associazione di input come associazione generic_trigger
di tipo assistantSkillTrigger
, che supporta questi parametri:
Parametro | Descrizione |
---|---|
function_description | Ottiene la descrizione della funzione assistente, fornita al modello. |
function_name | Facoltativo. Ottiene o imposta il nome di una funzione chiamata dall'assistente. |
parameterDescriptionJson | Facoltativo. Ottiene o imposta una descrizione JSON del parametro della funzione, che viene fornita al modello. Per altre informazioni, vedere Utilizzo. |
model | Facoltativo. Ottiene o imposta la distribuzione del modello di chat OpenAI da usare, con il valore predefinito di gpt-3.5-turbo . |
Impostazione
L'associazione supporta queste proprietà di configurazione impostate nel file function.json.
Proprietà | Descrizione |
---|---|
type | Deve essere AssistantSkillTrigger . |
direction | Deve essere in . |
name | Nome del trigger. |
functionName | Ottiene o imposta il nome della funzione chiamata dall'assistente. |
functionDescription | Ottiene la descrizione della funzione assistente, fornita all'LLM |
parameterDescriptionJson | Facoltativo. Ottiene o imposta una descrizione JSON del parametro della funzione, che viene fornita al modello. Per altre informazioni, vedere Utilizzo. |
model | Facoltativo. Ottiene o imposta la distribuzione del modello di chat OpenAI da usare, con il valore predefinito di gpt-3.5-turbo . |
Impostazione
Il binding supporta queste proprietà, definite nel codice:
Proprietà | Descrizione |
---|---|
type | Deve essere AssistantSkillTrigger . |
name | Nome del trigger. |
functionName | Ottiene o imposta il nome della funzione chiamata dall'assistente. |
functionDescription | Ottiene la descrizione della funzione assistente, fornita all'LLM |
parameterDescriptionJson | Facoltativo. Ottiene o imposta una descrizione JSON del parametro della funzione, che viene fornita al modello. Per altre informazioni, vedere Utilizzo. |
model | Facoltativo. Ottiene o imposta la distribuzione del modello di chat OpenAI da usare, con il valore predefinito di gpt-3.5-turbo . |
Per esempi completi, vedere la sezione di esempio.
Utilizzo
Quando il valore JSON parameterDescriptionJson
non viene specificato, viene generato automaticamente. Per altre informazioni sulla sintassi di questo oggetto, vedere la documentazione dell'API OpenAI.