Wyzwalacz asystenta usługi Azure OpenAI dla usługi Azure Functions
Ważne
Rozszerzenie Azure OpenAI dla usługi Azure Functions jest obecnie dostępne w wersji zapoznawczej.
Wyzwalacz asystenta usługi Azure OpenAI umożliwia uruchamianie kodu na podstawie niestandardowego czatbota lub żądania umiejętności skierowanego do asystenta.
Aby uzyskać informacje na temat konfigurowania i konfigurowania rozszerzenia Azure OpenAI, zobacz Azure OpenAI extensions for Azure Functions (Rozszerzenia azure OpenAI dla usługi Azure Functions). Aby dowiedzieć się więcej na temat asystentów usługi Azure OpenAI, zobacz Interfejs API asystentów usługi Azure OpenAI.
Uwaga
Odwołania i przykłady są udostępniane tylko dla modelu Node.js w wersji 4.
Uwaga
Odwołania i przykłady są udostępniane tylko dla modelu języka Python w wersji 2.
Uwaga
Chociaż oba modele procesów języka C# są obsługiwane, udostępniane są tylko izolowane przykłady modeli procesów roboczych.
Przykład
W tym przykładzie pokazano, jak utworzyć asystenta, który dodaje nowe zadanie do wykonania do bazy danych. Wyzwalacz zawiera statyczny Create a new todo task
opis używany przez model. Sama funkcja przyjmuje ciąg, który reprezentuje nowe zadanie do dodania. Po wykonaniu funkcja dodaje zadanie jako nowy element zadania do wykonania w magazynie niestandardowych elementów i zwraca odpowiedź ze sklepu.
[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));
}
W tym przykładzie pokazano, jak utworzyć asystenta, który dodaje nowe zadanie do wykonania do bazy danych. Wyzwalacz zawiera statyczny Create a new todo task
opis używany przez model. Sama funkcja przyjmuje ciąg, który reprezentuje nowe zadanie do dodania. Po wykonaniu funkcja dodaje zadanie jako nowy element zadania do wykonania w magazynie niestandardowych elementów i zwraca odpowiedź ze sklepu.
@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);
}
Przykłady nie są jeszcze dostępne.
W tym przykładzie pokazano, jak utworzyć asystenta, który dodaje nowe zadanie do wykonania do bazy danych. Wyzwalacz zawiera statyczny Create a new todo task
opis używany przez model. Sama funkcja przyjmuje ciąg, który reprezentuje nowe zadanie do dodania. Po wykonaniu funkcja dodaje zadanie jako nowy element zadania do wykonania w magazynie niestandardowych elementów i zwraca odpowiedź ze sklepu.
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))
}
W tym przykładzie pokazano, jak utworzyć asystenta, który dodaje nowe zadanie do wykonania do bazy danych. Wyzwalacz zawiera statyczny Create a new todo task
opis używany przez model. Sama funkcja przyjmuje ciąg, który reprezentuje nowe zadanie do dodania. Po wykonaniu funkcja dodaje zadanie jako nowy element zadania do wykonania w magazynie niestandardowych elementów i zwraca odpowiedź ze sklepu.
Oto plik function.json dodawania zadań do wykonania:
{
"bindings": [
{
"name": "TaskDescription",
"type": "assistantSkillTrigger",
"dataType": "string",
"direction": "in",
"functionDescription": "Create a new todo task"
}
]
}
Aby uzyskać więcej informacji na temat function.json właściwości pliku, zobacz sekcję Konfiguracja.
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
W tym przykładzie pokazano, jak utworzyć asystenta, który dodaje nowe zadanie do wykonania do bazy danych. Wyzwalacz zawiera statyczny Create a new todo task
opis używany przez model. Sama funkcja przyjmuje ciąg, który reprezentuje nowe zadanie do dodania. Po wykonaniu funkcja dodaje zadanie jako nowy element zadania do wykonania w magazynie niestandardowych elementów i zwraca odpowiedź ze sklepu.
@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
Atrybuty
Zastosuj atrybut, AssistantSkillTrigger
aby zdefiniować wyzwalacz asystenta, który obsługuje następujące parametry:
Parametr | Opis |
---|---|
FunctionDescription | Pobiera opis funkcji asystenta, która jest dostarczana do modelu. |
Nazwa funkcji | Opcjonalne. Pobiera lub ustawia nazwę funkcji wywoływanej przez asystenta. |
ParameterDescriptionJson | Opcjonalne. Pobiera lub ustawia opis JSON parametru funkcji, który jest udostępniany modelowi. Aby uzyskać więcej informacji, zobacz Użycie. |
Model | Opcjonalne. Pobiera lub ustawia wdrożenie modelu czatu OpenAI do użycia z wartością gpt-3.5-turbo domyślną . |
Adnotacje
Adnotacja AssistantSkillTrigger
umożliwia zdefiniowanie wyzwalacza asystenta, który obsługuje następujące parametry:
Element | opis |
---|---|
name | Pobiera lub ustawia nazwę powiązania wejściowego. |
functionDescription | Pobiera opis funkcji asystenta, która jest dostarczana do modelu. |
functionName | Opcjonalne. Pobiera lub ustawia nazwę funkcji wywoływanej przez asystenta. |
parameterDescriptionJson | Opcjonalne. Pobiera lub ustawia opis JSON parametru funkcji, który jest udostępniany modelowi. Aby uzyskać więcej informacji, zobacz Użycie. |
model | Opcjonalne. Pobiera lub ustawia wdrożenie modelu czatu OpenAI do użycia z wartością gpt-3.5-turbo domyślną . |
Dekoratory
W wersji zapoznawczej zdefiniuj powiązanie wejściowe jako generic_trigger
powiązanie typu assistantSkillTrigger
, które obsługuje następujące parametry:
Parametr | Opis |
---|---|
function_description | Pobiera opis funkcji asystenta, która jest dostarczana do modelu. |
function_name | Opcjonalne. Pobiera lub ustawia nazwę funkcji wywoływanej przez asystenta. |
parameterDescriptionJson | Opcjonalne. Pobiera lub ustawia opis JSON parametru funkcji, który jest udostępniany modelowi. Aby uzyskać więcej informacji, zobacz Użycie. |
model | Opcjonalne. Pobiera lub ustawia wdrożenie modelu czatu OpenAI do użycia z wartością gpt-3.5-turbo domyślną . |
Konfigurowanie
Powiązanie obsługuje te właściwości konfiguracji ustawione w pliku function.json.
Właściwości | Opis |
---|---|
type | Musi mieć wartość AssistantSkillTrigger . |
direction | Musi mieć wartość in . |
name | Nazwa wyzwalacza. |
functionName | Pobiera lub ustawia nazwę funkcji wywoływanej przez asystenta. |
functionDescription | Pobiera opis funkcji asystenta, która jest dostarczana do usługi LLM |
parameterDescriptionJson | Opcjonalne. Pobiera lub ustawia opis JSON parametru funkcji, który jest udostępniany modelowi. Aby uzyskać więcej informacji, zobacz Użycie. |
model | Opcjonalne. Pobiera lub ustawia wdrożenie modelu czatu OpenAI do użycia z wartością gpt-3.5-turbo domyślną . |
Konfigurowanie
Powiązanie obsługuje te właściwości zdefiniowane w kodzie:
Właściwości | Opis |
---|---|
type | Musi mieć wartość AssistantSkillTrigger . |
name | Nazwa wyzwalacza. |
functionName | Pobiera lub ustawia nazwę funkcji wywoływanej przez asystenta. |
functionDescription | Pobiera opis funkcji asystenta, która jest dostarczana do usługi LLM |
parameterDescriptionJson | Opcjonalne. Pobiera lub ustawia opis JSON parametru funkcji, który jest udostępniany modelowi. Aby uzyskać więcej informacji, zobacz Użycie. |
model | Opcjonalne. Pobiera lub ustawia wdrożenie modelu czatu OpenAI do użycia z wartością gpt-3.5-turbo domyślną . |
Zobacz sekcję Przykład, aby zapoznać się z kompletnymi przykładami.
Użycie
Jeśli parameterDescriptionJson
wartość JSON nie zostanie podana, zostanie wygenerowana automatycznie. Aby uzyskać więcej informacji na temat składni tego obiektu, zobacz dokumentację interfejsu API interfejsu OpenAI.