Azure OpenAI-assistentutlösare för Azure Functions
Viktigt!
Azure OpenAI-tillägget för Azure Functions är för närvarande i förhandsversion.
Med utlösaren för Azure OpenAI-assistenten kan du köra din kod baserat på anpassad chattrobot eller kunskapsbegäran som gjorts till en assistent.
Information om konfiguration och konfigurationsinformation för Azure OpenAI-tillägget finns i Azure OpenAI-tillägg för Azure Functions. Mer information om Azure OpenAI-assistenter finns i API för Azure OpenAI Assistants.
Kommentar
Referenser och exempel tillhandahålls endast för modellen Node.js v4.
Kommentar
Referenser och exempel tillhandahålls endast för Python v2-modellen.
Kommentar
Båda C#-processmodellerna stöds, men endast exempel på isolerade arbetsmodeller tillhandahålls.
Exempel
Det här exemplet visar hur du skapar en assistent som lägger till en ny uppgift att göra i en databas. Utlösaren har en statisk beskrivning av Create a new todo task
modellens användning. Själva funktionen tar en sträng som representerar en ny uppgift att lägga till. När den körs lägger funktionen till uppgiften som ett nytt att göra-objekt i ett anpassat objektarkiv och returnerar ett svar från arkivet.
[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));
}
Det här exemplet visar hur du skapar en assistent som lägger till en ny uppgift att göra i en databas. Utlösaren har en statisk beskrivning av Create a new todo task
modellens användning. Själva funktionen tar en sträng som representerar en ny uppgift att lägga till. När den körs lägger funktionen till uppgiften som ett nytt att göra-objekt i ett anpassat objektarkiv och returnerar ett svar från arkivet.
@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);
}
Det här exemplet visar hur du skapar en assistent som lägger till en ny uppgift att göra i en databas. Utlösaren har en statisk beskrivning av Create a new todo task
modellens användning. Själva funktionen tar en sträng som representerar en ny uppgift att lägga till. När den körs lägger funktionen till uppgiften som ett nytt att göra-objekt i ett anpassat objektarkiv och returnerar ett svar från arkivet.
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))
}
Det här exemplet visar hur du skapar en assistent som lägger till en ny uppgift att göra i en databas. Utlösaren har en statisk beskrivning av Create a new todo task
modellens användning. Själva funktionen tar en sträng som representerar en ny uppgift att lägga till. När den körs lägger funktionen till uppgiften som ett nytt att göra-objekt i ett anpassat objektarkiv och returnerar ett svar från arkivet.
Här är function.json-filen för Lägg till todo:
{
"bindings": [
{
"name": "TaskDescription",
"type": "assistantSkillTrigger",
"dataType": "string",
"direction": "in",
"functionDescription": "Create a new todo task"
}
]
}
Mer information om function.json filegenskaper finns i avsnittet 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
Det här exemplet visar hur du skapar en assistent som lägger till en ny uppgift att göra i en databas. Utlösaren har en statisk beskrivning av Create a new todo task
modellens användning. Själva funktionen tar en sträng som representerar en ny uppgift att lägga till. När den körs lägger funktionen till uppgiften som ett nytt att göra-objekt i ett anpassat objektarkiv och returnerar ett svar från arkivet.
@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
Attribut
AssistantSkillTrigger
Använd attributet för att definiera en assistentutlösare som stöder följande parametrar:
Parameter | Description |
---|---|
FunctionDescription | Hämtar beskrivningen av assistentfunktionen, som tillhandahålls till modellen. |
Funktionsnamn | Valfritt. Hämtar eller anger namnet på funktionen som anropas av assistenten. |
ParameterDescriptionJson | Valfritt. Hämtar eller anger en JSON-beskrivning av funktionsparametern, som tillhandahålls till modellen. Mer information finns i Användning. |
Modell |
Valfritt. Hämtar eller ställer in distributionen av OpenAI-chattmodellen som ska användas, med standardvärdet gpt-3.5-turbo . |
Kommentarer
Med anteckningen AssistantSkillTrigger
kan du definiera en assistentutlösare som stöder följande parametrar:
Element | Description |
---|---|
Namn | Hämtar eller anger namnet på indatabindningen. |
functionDescription | Hämtar beskrivningen av assistentfunktionen, som tillhandahålls till modellen. |
functionName | Valfritt. Hämtar eller anger namnet på funktionen som anropas av assistenten. |
parameterDescriptionJson | Valfritt. Hämtar eller anger en JSON-beskrivning av funktionsparametern, som tillhandahålls till modellen. Mer information finns i Användning. |
modell |
Valfritt. Hämtar eller ställer in distributionen av OpenAI-chattmodellen som ska användas, med standardvärdet gpt-3.5-turbo . |
Dekoratörer
Under förhandsversionen definierar du indatabindningen som en generic_trigger
bindning av typen assistantSkillTrigger
, som stöder följande parametrar:
Parameter | Description |
---|---|
function_description | Hämtar beskrivningen av assistentfunktionen, som tillhandahålls till modellen. |
function_name | Valfritt. Hämtar eller anger namnet på en funktion som anropas av assistenten. |
parameterDescriptionJson | Valfritt. Hämtar eller anger en JSON-beskrivning av funktionsparametern, som tillhandahålls till modellen. Mer information finns i Användning. |
modell |
Valfritt. Hämtar eller ställer in distributionen av OpenAI-chattmodellen som ska användas, med standardvärdet gpt-3.5-turbo . |
Konfiguration
Bindningen stöder de konfigurationsegenskaper som du anger i filen function.json.
Property | Beskrivning |
---|---|
typ | Måste vara AssistantSkillTrigger . |
riktning | Måste vara in . |
Namn | Namnet på utlösaren. |
functionName | Hämtar eller anger namnet på funktionen som anropas av assistenten. |
functionDescription | Hämtar beskrivningen av assistentfunktionen, som tillhandahålls till LLM |
parameterDescriptionJson | Valfritt. Hämtar eller anger en JSON-beskrivning av funktionsparametern, som tillhandahålls till modellen. Mer information finns i Användning. |
modell |
Valfritt. Hämtar eller ställer in distributionen av OpenAI-chattmodellen som ska användas, med standardvärdet gpt-3.5-turbo . |
Konfiguration
Bindningen stöder dessa egenskaper, som definieras i koden:
Property | Beskrivning |
---|---|
typ | Måste vara AssistantSkillTrigger . |
Namn | Namnet på utlösaren. |
functionName | Hämtar eller anger namnet på funktionen som anropas av assistenten. |
functionDescription | Hämtar beskrivningen av assistentfunktionen, som tillhandahålls till LLM |
parameterDescriptionJson | Valfritt. Hämtar eller anger en JSON-beskrivning av funktionsparametern, som tillhandahålls till modellen. Mer information finns i Användning. |
modell |
Valfritt. Hämtar eller ställer in distributionen av OpenAI-chattmodellen som ska användas, med standardvärdet gpt-3.5-turbo . |
Se avsnittet Exempel för fullständiga exempel.
Förbrukning
När parameterDescriptionJson
JSON-värdet inte anges genereras det automatiskt. Mer information om syntaxen för det här objektet finns i OpenAI API-dokumentationen.