Azure OpenAI-assistenttrigger voor Azure Functions
Belangrijk
De Azure OpenAI-extensie voor Azure Functions is momenteel in preview.
Met de Azure OpenAI-assistenttrigger kunt u uw code uitvoeren op basis van een aangepaste chatbot of een aanvraag voor vaardigheden in een assistent.
Zie Azure OpenAI-extensies voor Azure Functions voor informatie over de installatie en configuratie van de Azure OpenAI-extensie. Zie de Api voor Azure OpenAI-assistenten voor meer informatie over Azure OpenAI-assistenten.
Notitie
Verwijzingen en voorbeelden worden alleen verstrekt voor het Node.js v4-model.
Notitie
Verwijzingen en voorbeelden worden alleen verstrekt voor het Python v2-model.
Notitie
Hoewel beide C#-procesmodellen worden ondersteund, worden alleen geïsoleerde werkrolmodelvoorbeelden gegeven.
Opmerking
In dit voorbeeld ziet u hoe u een assistent maakt waarmee een nieuwe taak aan een database wordt toegevoegd. De trigger heeft een statische beschrijving van Create a new todo task
het model. De functie zelf neemt een tekenreeks, die een nieuwe taak vertegenwoordigt die moet worden toegevoegd. Wanneer deze wordt uitgevoerd, voegt de functie de taak toe als een nieuw taakitem in een aangepast itemarchief en retourneert een antwoord uit de store.
[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 dit voorbeeld ziet u hoe u een assistent maakt waarmee een nieuwe taak aan een database wordt toegevoegd. De trigger heeft een statische beschrijving van Create a new todo task
het model. De functie zelf neemt een tekenreeks, die een nieuwe taak vertegenwoordigt die moet worden toegevoegd. Wanneer deze wordt uitgevoerd, voegt de functie de taak toe als een nieuw taakitem in een aangepast itemarchief en retourneert een antwoord uit de store.
@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);
}
In dit voorbeeld ziet u hoe u een assistent maakt waarmee een nieuwe taak aan een database wordt toegevoegd. De trigger heeft een statische beschrijving van Create a new todo task
het model. De functie zelf neemt een tekenreeks, die een nieuwe taak vertegenwoordigt die moet worden toegevoegd. Wanneer deze wordt uitgevoerd, voegt de functie de taak toe als een nieuw taakitem in een aangepast itemarchief en retourneert een antwoord uit de store.
const { app, trigger } = require("@azure/functions");
const { TodoItem, CreateTodoManager } = require("../services/todoManager");
const { randomUUID } = require('crypto');
const todoManager = CreateTodoManager()
app.generic('AddTodo', {
trigger: trigger.generic({
type: 'assistantSkillTrigger',
functionDescription: 'Create a new todo task'
}),
handler: async (taskDescription, context) => {
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))
}
})
import { InvocationContext, app, trigger } from "@azure/functions"
import { TodoItem, ITodoManager, CreateTodoManager } from "../services/todoManager"
import { randomUUID } from 'crypto';
const todoManager: ITodoManager = CreateTodoManager()
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 dit voorbeeld ziet u hoe u een assistent maakt waarmee een nieuwe taak aan een database wordt toegevoegd. De trigger heeft een statische beschrijving van Create a new todo task
het model. De functie zelf neemt een tekenreeks, die een nieuwe taak vertegenwoordigt die moet worden toegevoegd. Wanneer deze wordt uitgevoerd, voegt de functie de taak toe als een nieuw taakitem in een aangepast itemarchief en retourneert een antwoord uit de store.
Dit is het function.json-bestand voor Todo toevoegen:
{
"bindings": [
{
"name": "TaskDescription",
"type": "assistantSkillTrigger",
"dataType": "string",
"direction": "in",
"functionDescription": "Create a new todo task"
}
]
}
Zie de sectie Configuratie voor meer informatie over function.json bestandseigenschappen.
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 dit voorbeeld ziet u hoe u een assistent maakt waarmee een nieuwe taak aan een database wordt toegevoegd. De trigger heeft een statische beschrijving van Create a new todo task
het model. De functie zelf neemt een tekenreeks, die een nieuwe taak vertegenwoordigt die moet worden toegevoegd. Wanneer deze wordt uitgevoerd, voegt de functie de taak toe als een nieuw taakitem in een aangepast itemarchief en retourneert een antwoord uit de store.
@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
Kenmerken
Pas het AssistantSkillTrigger
kenmerk toe om een assistenttrigger te definiëren die ondersteuning biedt voor deze parameters:
Parameter | Description |
---|---|
FunctionDescription | Hiermee haalt u de beschrijving op van de assistentfunctie, die aan het model wordt verstrekt. |
FunctionName | Optioneel. Hiermee haalt u de naam op van de functie die door de assistent wordt aangeroepen of stelt u deze in. |
ParameterDescriptionJson | Optioneel. Hiermee haalt u een JSON-beschrijving op van de functieparameter, die aan het model wordt verstrekt. Zie Gebruik voor meer informatie. |
Model | Optioneel. Hiermee wordt de implementatie van het OpenAI-chatmodel opgehaald of ingesteld voor gebruik, met een standaardwaarde van gpt-3.5-turbo . |
Aantekeningen
Met de AssistantSkillTrigger
aantekening kunt u een assistenttrigger definiëren, die deze parameters ondersteunt:
Element | Description |
---|---|
name | Hiermee haalt u de naam van de invoerbinding op of stelt u deze in. |
functionDescription | Hiermee haalt u de beschrijving op van de assistentfunctie, die aan het model wordt verstrekt. |
functionName | Optioneel. Hiermee haalt u de naam op van de functie die door de assistent wordt aangeroepen of stelt u deze in. |
parameterDescriptionJson | Optioneel. Hiermee haalt u een JSON-beschrijving op van de functieparameter, die aan het model wordt verstrekt. Zie Gebruik voor meer informatie. |
model | Optioneel. Hiermee wordt de implementatie van het OpenAI-chatmodel opgehaald of ingesteld voor gebruik, met een standaardwaarde van gpt-3.5-turbo . |
Decorators
Definieer tijdens de preview de invoerbinding als een generic_trigger
binding van het type assistantSkillTrigger
, die ondersteuning biedt voor deze parameters:
Parameter | Description |
---|---|
function_description | Hiermee haalt u de beschrijving op van de assistentfunctie, die aan het model wordt verstrekt. |
function_name | Optioneel. Hiermee haalt u de naam op van een functie die wordt aangeroepen door de assistent. |
parameterDescriptionJson | Optioneel. Hiermee haalt u een JSON-beschrijving op van de functieparameter, die aan het model wordt verstrekt. Zie Gebruik voor meer informatie. |
model | Optioneel. Hiermee wordt de implementatie van het OpenAI-chatmodel opgehaald of ingesteld voor gebruik, met een standaardwaarde van gpt-3.5-turbo . |
Configuratie
De binding ondersteunt deze configuratie-eigenschappen die u in het function.json-bestand hebt ingesteld.
Eigenschappen | Beschrijving |
---|---|
type | Moet AssistantSkillTrigger zijn. |
direction | Moet in zijn. |
name | De naam van de trigger. |
functionName | Hiermee haalt u de naam op van de functie die door de assistent wordt aangeroepen of stelt u deze in. |
functionDescription | Hiermee wordt de beschrijving opgehaald van de assistentfunctie, die aan de LLM wordt verstrekt |
parameterDescriptionJson | Optioneel. Hiermee haalt u een JSON-beschrijving op van de functieparameter, die aan het model wordt verstrekt. Zie Gebruik voor meer informatie. |
model | Optioneel. Hiermee wordt de implementatie van het OpenAI-chatmodel opgehaald of ingesteld voor gebruik, met een standaardwaarde van gpt-3.5-turbo . |
Configuratie
De binding ondersteunt deze eigenschappen, die zijn gedefinieerd in uw code:
Eigenschappen | Beschrijving |
---|---|
type | Moet AssistantSkillTrigger zijn. |
name | De naam van de trigger. |
functionName | Hiermee haalt u de naam op van de functie die door de assistent wordt aangeroepen of stelt u deze in. |
functionDescription | Hiermee wordt de beschrijving opgehaald van de assistentfunctie, die aan de LLM wordt verstrekt |
parameterDescriptionJson | Optioneel. Hiermee haalt u een JSON-beschrijving op van de functieparameter, die aan het model wordt verstrekt. Zie Gebruik voor meer informatie. |
model | Optioneel. Hiermee wordt de implementatie van het OpenAI-chatmodel opgehaald of ingesteld voor gebruik, met een standaardwaarde van gpt-3.5-turbo . |
Zie de sectie Voorbeeld voor volledige voorbeelden.
Gebruik
Wanneer parameterDescriptionJson
de JSON-waarde niet is opgegeven, wordt deze automatisch gegenereerd. Zie de OpenAI API-documentatie voor meer informatie over de syntaxis van dit object.