Trigger pomocníka Azure OpenAI pro Azure Functions
Důležité
Rozšíření Azure OpenAI pro Azure Functions je aktuálně ve verzi Preview.
Trigger pomocníka Azure OpenAI umožňuje spustit kód na základě vlastního chatovacího robota nebo žádosti o dovednosti vytvořené asistentem.
Informace o nastavení a konfiguraci rozšíření Azure OpenAI najdete v tématu Rozšíření Azure OpenAI pro Azure Functions. Další informace o asistentech Azure OpenAI najdete v tématu Rozhraní API pomocníků Azure OpenAI.
Poznámka:
Odkazy a příklady jsou k dispozici pouze pro model Node.js v4.
Poznámka:
Odkazy a příklady jsou k dispozici pouze pro model Pythonu v2.
Poznámka:
I když jsou podporovány oba modely procesu jazyka C#, jsou k dispozici pouze příklady izolovaného modelu pracovního procesu .
Příklad
Tento příklad ukazuje, jak vytvořit asistenta, který do databáze přidá nový úkol úkolů. Trigger má statický popis Create a new todo task
používaný modelem. Samotná funkce přebírá řetězec, který představuje nový úkol, který se má přidat. Po spuštění funkce přidá úkol jako novou položku úkolu do vlastního úložiště položek a vrátí odpověď z úložiště.
[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));
}
Tento příklad ukazuje, jak vytvořit asistenta, který do databáze přidá nový úkol úkolů. Trigger má statický popis Create a new todo task
používaný modelem. Samotná funkce přebírá řetězec, který představuje nový úkol, který se má přidat. Po spuštění funkce přidá úkol jako novou položku úkolu do vlastního úložiště položek a vrátí odpověď z úložiště.
@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);
}
Příklady ještě nejsou k dispozici.
Tento příklad ukazuje, jak vytvořit asistenta, který do databáze přidá nový úkol úkolů. Trigger má statický popis Create a new todo task
používaný modelem. Samotná funkce přebírá řetězec, který představuje nový úkol, který se má přidat. Po spuštění funkce přidá úkol jako novou položku úkolu do vlastního úložiště položek a vrátí odpověď z úložiště.
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))
}
Tento příklad ukazuje, jak vytvořit asistenta, který do databáze přidá nový úkol úkolů. Trigger má statický popis Create a new todo task
používaný modelem. Samotná funkce přebírá řetězec, který představuje nový úkol, který se má přidat. Po spuštění funkce přidá úkol jako novou položku úkolu do vlastního úložiště položek a vrátí odpověď z úložiště.
Tady je soubor function.json pro přidání todo:
{
"bindings": [
{
"name": "TaskDescription",
"type": "assistantSkillTrigger",
"dataType": "string",
"direction": "in",
"functionDescription": "Create a new todo task"
}
]
}
Další informace o function.json vlastnosti souboru naleznete v části Konfigurace .
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
Tento příklad ukazuje, jak vytvořit asistenta, který do databáze přidá nový úkol úkolů. Trigger má statický popis Create a new todo task
používaný modelem. Samotná funkce přebírá řetězec, který představuje nový úkol, který se má přidat. Po spuštění funkce přidá úkol jako novou položku úkolu do vlastního úložiště položek a vrátí odpověď z úložiště.
@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
Atributy
Pomocí atributu AssistantSkillTrigger
definujte trigger asistenta, který podporuje tyto parametry:
Parametr | Popis |
---|---|
FunctionDescription | Získá popis funkce asistenta, která je poskytována modelu. |
FunctionName | Volitelné. Získá nebo nastaví název funkce volaného asistentem. |
ParametrDescriptionJson | Volitelné. Získá nebo nastaví json popis parametru funkce, který je poskytnut modelu. Další informace najdete v tématu Využití. |
Model | Volitelné. Získá nebo nastaví nasazení modelu chatu OpenAI pro použití s výchozí hodnotou gpt-3.5-turbo . |
Poznámky
Poznámka AssistantSkillTrigger
umožňuje definovat trigger pomocníka, který podporuje tyto parametry:
Element (Prvek) | Popis |
---|---|
Jméno | Získá nebo nastaví název vstupní vazby. |
functionDescription | Získá popis funkce asistenta, která je poskytována modelu. |
functionName | Volitelné. Získá nebo nastaví název funkce volaného asistentem. |
parameterDescriptionJson | Volitelné. Získá nebo nastaví json popis parametru funkce, který je poskytnut modelu. Další informace najdete v tématu Využití. |
model | Volitelné. Získá nebo nastaví nasazení modelu chatu OpenAI pro použití s výchozí hodnotou gpt-3.5-turbo . |
Dekoratéry
Během náhledu definujte vstupní vazbu jako generic_trigger
vazbu typu assistantSkillTrigger
, která podporuje tyto parametry:
Parametr | Popis |
---|---|
function_description | Získá popis funkce asistenta, která je poskytována modelu. |
function_name | Volitelné. Získá nebo nastaví název funkce volanou asistentem. |
parameterDescriptionJson | Volitelné. Získá nebo nastaví json popis parametru funkce, který je poskytnut modelu. Další informace najdete v tématu Využití. |
model | Volitelné. Získá nebo nastaví nasazení modelu chatu OpenAI pro použití s výchozí hodnotou gpt-3.5-turbo . |
Konfigurace
Vazba podporuje tyto vlastnosti konfigurace, které jste nastavili v souboru function.json.
Vlastnost | Popis |
---|---|
type | Musí být AssistantSkillTrigger . |
direction | Musí být in . |
Jméno | Název triggeru. |
functionName | Získá nebo nastaví název funkce volaného asistentem. |
functionDescription | Získá popis funkce asistenta, která je poskytována LLM |
parameterDescriptionJson | Volitelné. Získá nebo nastaví json popis parametru funkce, který je poskytnut modelu. Další informace najdete v tématu Využití. |
model | Volitelné. Získá nebo nastaví nasazení modelu chatu OpenAI pro použití s výchozí hodnotou gpt-3.5-turbo . |
Konfigurace
Vazba podporuje tyto vlastnosti, které jsou definovány v kódu:
Vlastnost | Popis |
---|---|
type | Musí být AssistantSkillTrigger . |
Jméno | Název triggeru. |
functionName | Získá nebo nastaví název funkce volaného asistentem. |
functionDescription | Získá popis funkce asistenta, která je poskytována LLM |
parameterDescriptionJson | Volitelné. Získá nebo nastaví json popis parametru funkce, který je poskytnut modelu. Další informace najdete v tématu Využití. |
model | Volitelné. Získá nebo nastaví nasazení modelu chatu OpenAI pro použití s výchozí hodnotou gpt-3.5-turbo . |
Kompletní příklady najdete v části Příklad.
Využití
Pokud parameterDescriptionJson
není zadaná hodnota JSON, automaticky se vygeneruje. Další informace o syntaxi tohoto objektu najdete v dokumentaci k rozhraní OpenAI API.