Aracılığıyla paylaş


Azure İşlevleri için Azure OpenAI yardımcısı tetikleyicisi

Önemli

Azure İşlevleri için Azure OpenAI uzantısı şu anda önizleme aşamasındadır.

Azure OpenAI yardımcısı tetikleyicisi, özel sohbet botunu veya bir yardımcıya yapılan beceri isteğini temel alarak kodunuzu çalıştırmanıza olanak tanır.

Azure OpenAI uzantısının kurulum ve yapılandırma ayrıntıları hakkında bilgi için bkz. Azure İşlevleri için Azure OpenAI uzantıları. Azure OpenAI yardımcıları hakkında daha fazla bilgi edinmek için bkz . Azure OpenAI Yardımcıları API'si.

Not

Başvurular ve örnekler yalnızca Node.js v4 modeli için sağlanır.

Not

Başvurular ve örnekler yalnızca Python v2 modeli için sağlanır.

Not

Her iki C# işlem modeli de destekleniyor olsa da yalnızca yalıtılmış çalışan modeli örnekleri sağlanır.

Örnek

Bu örnekte veritabanına yeni yapılacaklar görevi ekleyen bir yardımcının nasıl oluşturulacağı gösterilmektedir. Tetikleyici, model tarafından kullanılan statik bir açıklamasına Create a new todo task sahiptir. İşlev, eklenecek yeni bir görevi temsil eden bir dize alır. İşlev yürütüldüğünde, görevi özel bir öğe deposuna yeni yapılacaklar öğesi olarak ekler ve depodan bir yanıt döndürür.

[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));
}

Bu örnekte veritabanına yeni yapılacaklar görevi ekleyen bir yardımcının nasıl oluşturulacağı gösterilmektedir. Tetikleyici, model tarafından kullanılan statik bir açıklamasına Create a new todo task sahiptir. İşlev, eklenecek yeni bir görevi temsil eden bir dize alır. İşlev yürütüldüğünde, görevi özel bir öğe deposuna yeni yapılacaklar öğesi olarak ekler ve depodan bir yanıt döndürür.

/**
 * Called by the assistant to create new todo tasks.
 */
@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);
}

Bu örnekte veritabanına yeni yapılacaklar görevi ekleyen bir yardımcının nasıl oluşturulacağı gösterilmektedir. Tetikleyici, model tarafından kullanılan statik bir açıklamasına Create a new todo task sahiptir. İşlev, eklenecek yeni bir görevi temsil eden bir dize alır. İşlev yürütüldüğünde, görevi özel bir öğe deposuna yeni yapılacaklar öğesi olarak ekler ve depodan bir yanıt döndürür.

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))
    }
})

Bu örnekte veritabanına yeni yapılacaklar görevi ekleyen bir yardımcının nasıl oluşturulacağı gösterilmektedir. Tetikleyici, model tarafından kullanılan statik bir açıklamasına Create a new todo task sahiptir. İşlev, eklenecek yeni bir görevi temsil eden bir dize alır. İşlev yürütüldüğünde, görevi özel bir öğe deposuna yeni yapılacaklar öğesi olarak ekler ve depodan bir yanıt döndürür.

Todo Ekle'nin function.json dosyası aşağıdadır:

{
  "bindings": [
    {
      "name": "TaskDescription",
      "type": "assistantSkillTrigger",
      "dataType": "string",
      "direction": "in",
      "functionDescription": "Create a new todo task"
    }
  ]
}

function.json dosya özellikleri hakkında daha fazla bilgi için Yapılandırma bölümüne bakın.

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

Bu örnekte veritabanına yeni yapılacaklar görevi ekleyen bir yardımcının nasıl oluşturulacağı gösterilmektedir. Tetikleyici, model tarafından kullanılan statik bir açıklamasına Create a new todo task sahiptir. İşlev, eklenecek yeni bir görevi temsil eden bir dize alır. İşlev yürütüldüğünde, görevi özel bir öğe deposuna yeni yapılacaklar öğesi olarak ekler ve depodan bir yanıt döndürür.

@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

Özellikler

AssistantSkillTrigger Şu parametreleri destekleyen bir yardımcı tetikleyicisi tanımlamak için özniteliğini uygulayın:

Parametre Açıklama
FunctionDescription Modele sağlanan yardımcı işlevinin açıklamasını alır.
İşlevAdı İsteğe bağlı. Yardımcı tarafından çağrılan işlevin adını alır veya ayarlar.
ParameterDescriptionJson İsteğe bağlı. Modele sağlanan işlev parametresinin JSON açıklamasını alır veya ayarlar. Daha fazla bilgi için bkz . Kullanım.

Ek Açıklamalar

Ek AssistantSkillTrigger açıklama, şu parametreleri destekleyen bir yardımcı tetikleyicisi tanımlamanızı sağlar:

Öğe Açıklama
ad Giriş bağlamasının adını alır veya ayarlar.
functionDescription Modele sağlanan yardımcı işlevinin açıklamasını alır.
functionName İsteğe bağlı. Yardımcı tarafından çağrılan işlevin adını alır veya ayarlar.
parameterDescriptionJson İsteğe bağlı. Modele sağlanan işlev parametresinin JSON açıklamasını alır veya ayarlar. Daha fazla bilgi için bkz . Kullanım.

Dekoratörler

Önizleme sırasında, giriş bağlamasını şu parametreleri destekleyen türündeki generic_triggerbir assistantSkillTrigger bağlama olarak tanımlayın:

Parametre Açıklama
function_description Modele sağlanan yardımcı işlevinin açıklamasını alır.
function_name İsteğe bağlı. Yardımcı tarafından çağrılan bir işlevin adını alır veya ayarlar.
parameterDescriptionJson İsteğe bağlı. Modele sağlanan işlev parametresinin JSON açıklamasını alır veya ayarlar. Daha fazla bilgi için bkz . Kullanım.

Yapılandırma

Bağlama, function.json dosyasında ayarladığınız bu yapılandırma özelliklerini destekler.

Özellik Açıklama
türü olmalıdır AssistantSkillTrigger.
yön olmalıdır in.
ad Tetikleyicinin adı.
functionName Yardımcı tarafından çağrılan işlevin adını alır veya ayarlar.
functionDescription Dil modeline sağlanan yardımcı işlevinin açıklamasını alır.
parameterDescriptionJson İsteğe bağlı. Modele sağlanan işlev parametresinin JSON açıklamasını alır veya ayarlar. Daha fazla bilgi için bkz . Kullanım.

Yapılandırma

Bağlama, kodunuzda tanımlanan şu özellikleri destekler:

Özellik Açıklama
türü olmalıdır AssistantSkillTrigger.
ad Tetikleyicinin adı.
functionName Yardımcı tarafından çağrılan işlevin adını alır veya ayarlar.
functionDescription LLM'ye sağlanan yardımcı işlevinin açıklamasını alır
parameterDescriptionJson İsteğe bağlı. Modele sağlanan işlev parametresinin JSON açıklamasını alır veya ayarlar. Daha fazla bilgi için bkz . Kullanım.

Tam örnekler için Örnek bölümüne bakın.

Kullanım

parameterDescriptionJson JSON değeri sağlanmazsa otomatik olarak oluşturulur. Bu nesnenin söz dizimi hakkında daha fazla bilgi için OpenAI API belgelerine bakın.