Azure OpenAI-Assistentenauslöser für Azure Functions
Wichtig
Die Azure OpenAI-Erweiterung für Azure Functions befindet sich derzeit in der Vorschau.
Mit dem Azure OpenAI-Assistentenauslöser können Sie Ihren Code auf der Grundlage von benutzerdefinierten Chatbot- oder Skillanforderungen ausführen, die an einen Assistenten gestellt werden.
Informationen zu Einrichtungs- und Konfigurationsdetails der Azure OpenAI-Erweiterung finden Sie unter Azure OpenAI-Erweiterungen für Azure Functions. Weitere Informationen zu Azure OpenAI-Assistenten finden Sie unter API für Azure OpenAI-Assistenten.
Hinweis
Referenzen und Beispiele werden nur für das Node.js v4-Modell bereitgestellt.
Hinweis
Referenzen und Beispiele werden nur für das Python v2-Modell bereitgestellt.
Hinweis
Während beide C#-Prozessmodelle unterstützt werden, werden nur Isolierte Arbeitsmodellbeispiele bereitgestellt.
Beispiel
Dieses Beispiel zeigt, wie man einen Assistenten erstellt, der eine neue Aufgabe zu einer Datenbank hinzufügt. Der Auslöser hat eine statische Beschreibung von Create a new todo task
, die vom Modell verwendet wird. Die Funktion selbst nimmt eine Zeichenfolge an, die eine neue Aufgabe darstellt, die hinzugefügt werden soll. Bei der Ausführung fügt die Funktion die Aufgabe als neues ToDo-Element in einem benutzerdefinierten Elementspeicher hinzu und gibt eine Antwort aus dem Speicher zurück.
[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));
}
Dieses Beispiel zeigt, wie man einen Assistenten erstellt, der eine neue Aufgabe zu einer Datenbank hinzufügt. Der Auslöser hat eine statische Beschreibung von Create a new todo task
, die vom Modell verwendet wird. Die Funktion selbst nimmt eine Zeichenfolge an, die eine neue Aufgabe darstellt, die hinzugefügt werden soll. Bei der Ausführung fügt die Funktion die Aufgabe als neues ToDo-Element in einem benutzerdefinierten Elementspeicher hinzu und gibt eine Antwort aus dem Speicher zurück.
@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);
}
Beispiele sind noch nicht verfügbar.
Dieses Beispiel zeigt, wie man einen Assistenten erstellt, der eine neue Aufgabe zu einer Datenbank hinzufügt. Der Auslöser hat eine statische Beschreibung von Create a new todo task
, die vom Modell verwendet wird. Die Funktion selbst nimmt eine Zeichenfolge an, die eine neue Aufgabe darstellt, die hinzugefügt werden soll. Bei der Ausführung fügt die Funktion die Aufgabe als neues ToDo-Element in einem benutzerdefinierten Elementspeicher hinzu und gibt eine Antwort aus dem Speicher zurück.
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))
}
Dieses Beispiel zeigt, wie man einen Assistenten erstellt, der eine neue Aufgabe zu einer Datenbank hinzufügt. Der Auslöser hat eine statische Beschreibung von Create a new todo task
, die vom Modell verwendet wird. Die Funktion selbst nimmt eine Zeichenfolge an, die eine neue Aufgabe darstellt, die hinzugefügt werden soll. Bei der Ausführung fügt die Funktion die Aufgabe als neues ToDo-Element in einem benutzerdefinierten Elementspeicher hinzu und gibt eine Antwort aus dem Speicher zurück.
Dies ist die function.json Datei für "Add Todo":
{
"bindings": [
{
"name": "TaskDescription",
"type": "assistantSkillTrigger",
"dataType": "string",
"direction": "in",
"functionDescription": "Create a new todo task"
}
]
}
Weitere Informationen zu den Dateieigenschaften von function.json finden Sie im Abschnitt Konfiguration.
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
Dieses Beispiel zeigt, wie man einen Assistenten erstellt, der eine neue Aufgabe zu einer Datenbank hinzufügt. Der Auslöser hat eine statische Beschreibung von Create a new todo task
, die vom Modell verwendet wird. Die Funktion selbst nimmt eine Zeichenfolge an, die eine neue Aufgabe darstellt, die hinzugefügt werden soll. Bei der Ausführung fügt die Funktion die Aufgabe als neues ToDo-Element in einem benutzerdefinierten Elementspeicher hinzu und gibt eine Antwort aus dem Speicher zurück.
@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
Attribute
Wenden Sie das Attribut AssistantSkillTrigger
an, um einen Assistentenauslöser zu definieren, der diese Parameter unterstützt:
Parameter | Beschreibung |
---|---|
FunctionDescription | Ruft die Beschreibung der Assistenzfunktion ab, die dem Modell zur Verfügung gestellt wird. |
FunctionName | Optional. Ruft den Namen der Funktion ab, die vom Assistenten aufgerufen wird, oder legt ihn fest. |
ParameterDescriptionJson | Optional. Ruft eine JSON-Beschreibung des Funktionsparameters ab, die dem Modell zur Verfügung gestellt wird, oder legt diese fest. Weitere Informationen finden Sie unter Verbrauch. |
Modell | Optional. Ruft die zu verwendende OpenAI-Modellimplementierung ab oder legt diese fest, wobei der Standardwert gpt-3.5-turbo ist. |
Anmerkungen
Mit der Anmerkung AssistantSkillTrigger
können Sie einen Assistentenauslöser festlegen, die diese Parameter unterstützt:
Element | BESCHREIBUNG |
---|---|
name | Ruft den Namen der Eingabebindung ab oder legt ihn fest. |
functionDescription | Ruft die Beschreibung der Assistenzfunktion ab, die dem Modell zur Verfügung gestellt wird. |
functionName | Optional. Ruft den Namen der Funktion ab, die vom Assistenten aufgerufen wird, oder legt ihn fest. |
parameterDescriptionJson | Optional. Ruft eine JSON-Beschreibung des Funktionsparameters ab, die dem Modell zur Verfügung gestellt wird, oder legt diese fest. Weitere Informationen finden Sie unter Verbrauch. |
Modell | Optional. Ruft die zu verwendende OpenAI-Modellimplementierung ab oder legt diese fest, wobei der Standardwert gpt-3.5-turbo ist. |
Decorator-Elemente
Definieren Sie während der Vorschau die Eingabebindung als generic_trigger
-Bindung vom Typ assistantSkillTrigger
, die diese Parameter unterstützt:
Parameter | Beschreibung |
---|---|
function_description | Ruft die Beschreibung der Assistenzfunktion ab, die dem Modell zur Verfügung gestellt wird. |
function_name | Optional. Ruft den Namen einer Funktion ab, die vom Assistenten aufgerufen wird, oder legt ihn fest. |
parameterDescriptionJson | Optional. Ruft eine JSON-Beschreibung des Funktionsparameters ab, die dem Modell zur Verfügung gestellt wird, oder legt diese fest. Weitere Informationen finden Sie unter Verbrauch. |
Modell | Optional. Ruft die zu verwendende OpenAI-Modellimplementierung ab oder legt diese fest, wobei der Standardwert gpt-3.5-turbo ist. |
Konfiguration
Die Bindung unterstützt diese Konfigurationseigenschaften, die Sie in der Datei „function.json“ festlegen.
Eigenschaft | Beschreibung des Dataflows |
---|---|
type | Muss AssistantSkillTrigger lauten. |
direction | Muss in lauten. |
name | Der Name des Triggers. |
functionName | Ruft den Namen der Funktion ab, die vom Assistenten aufgerufen wird, oder legt ihn fest. |
functionDescription | Ruft die Beschreibung der Assistenzfunktion ab, die dem LLM zur Verfügung gestellt wird |
parameterDescriptionJson | Optional. Ruft eine JSON-Beschreibung des Funktionsparameters ab, die dem Modell zur Verfügung gestellt wird, oder legt diese fest. Weitere Informationen finden Sie unter Verbrauch. |
Modell | Optional. Ruft die zu verwendende OpenAI-Modellimplementierung ab oder legt diese fest, wobei der Standardwert gpt-3.5-turbo ist. |
Konfiguration
Die Bindung unterstützt diese Eigenschaften, die in Ihrem Code definiert sind:
Eigenschaft | Beschreibung des Dataflows |
---|---|
type | Muss AssistantSkillTrigger lauten. |
name | Der Name des Triggers. |
functionName | Ruft den Namen der Funktion ab, die vom Assistenten aufgerufen wird, oder legt ihn fest. |
functionDescription | Ruft die Beschreibung der Assistenzfunktion ab, die dem LLM zur Verfügung gestellt wird |
parameterDescriptionJson | Optional. Ruft eine JSON-Beschreibung des Funktionsparameters ab, die dem Modell zur Verfügung gestellt wird, oder legt diese fest. Weitere Informationen finden Sie unter Verbrauch. |
Modell | Optional. Ruft die zu verwendende OpenAI-Modellimplementierung ab oder legt diese fest, wobei der Standardwert gpt-3.5-turbo ist. |
Vollständige Beispiele finden Sie im Abschnitt Beispiele.
Verbrauch
Wenn der JSON-Wert parameterDescriptionJson
nicht angegeben wird, wird er automatisch generiert. Weitere Informationen zur Syntax dieses Objekts finden Sie in der OpenAI-API-Dokumentation.