مشاركة عبر


مشغل مساعد Azure OpenAI لوظائف Azure

هام

ملحق Azure OpenAI ل Azure Functions قيد المعاينة حاليا.

يتيح لك مشغل مساعد Azure OpenAI تشغيل التعليمات البرمجية الخاصة بك استنادا إلى روبوت الدردشة المخصص أو طلب المهارة المقدم إلى مساعد.

للحصول على معلومات حول تفاصيل الإعداد والتكوين لملحق Azure OpenAI، راجع ملحقات Azure OpenAI لوظائف Azure. لمعرفة المزيد حول مساعدي Azure OpenAI، راجع واجهة برمجة تطبيقات مساعدي Azure OpenAI.

إشعار

يتم توفير المراجع والأمثلة فقط لنموذج Node.js v4.

إشعار

يتم توفير المراجع والأمثلة فقط لنموذج Python v2.

إشعار

بينما يتم دعم نموذجي عملية C#، يتم توفير أمثلة نموذج عامل معزول فقط.

مثال

يوضح هذا المثال كيفية إنشاء مساعد يضيف مهمة todo جديدة إلى قاعدة بيانات. يحتوي المشغل على وصف Create a new todo task ثابت للاستخدام من قبل النموذج. تأخذ الدالة نفسها سلسلة تمثل مهمة جديدة لإضافتها. عند تنفيذها، تضيف الدالة المهمة كعنصر todo جديد في مخزن عناصر مخصص وتعيد استجابة من المتجر.

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

يوضح هذا المثال كيفية إنشاء مساعد يضيف مهمة todo جديدة إلى قاعدة بيانات. يحتوي المشغل على وصف Create a new todo task ثابت للاستخدام من قبل النموذج. تأخذ الدالة نفسها سلسلة تمثل مهمة جديدة لإضافتها. عند تنفيذها، تضيف الدالة المهمة كعنصر todo جديد في مخزن عناصر مخصص وتعيد استجابة من المتجر.

/**
 * 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);
}

يوضح هذا المثال كيفية إنشاء مساعد يضيف مهمة todo جديدة إلى قاعدة بيانات. يحتوي المشغل على وصف Create a new todo task ثابت للاستخدام من قبل النموذج. تأخذ الدالة نفسها سلسلة تمثل مهمة جديدة لإضافتها. عند تنفيذها، تضيف الدالة المهمة كعنصر todo جديد في مخزن عناصر مخصص وتعيد استجابة من المتجر.

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

يوضح هذا المثال كيفية إنشاء مساعد يضيف مهمة todo جديدة إلى قاعدة بيانات. يحتوي المشغل على وصف Create a new todo task ثابت للاستخدام من قبل النموذج. تأخذ الدالة نفسها سلسلة تمثل مهمة جديدة لإضافتها. عند تنفيذها، تضيف الدالة المهمة كعنصر todo جديد في مخزن عناصر مخصص وتعيد استجابة من المتجر.

فيما يلي ملف function.json لإضافة Todo:

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

لمزيد من المعلومات حول خصائص الملف function.json ، راجع قسم التكوين .

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

يوضح هذا المثال كيفية إنشاء مساعد يضيف مهمة todo جديدة إلى قاعدة بيانات. يحتوي المشغل على وصف Create a new todo task ثابت للاستخدام من قبل النموذج. تأخذ الدالة نفسها سلسلة تمثل مهمة جديدة لإضافتها. عند تنفيذها، تضيف الدالة المهمة كعنصر todo جديد في مخزن عناصر مخصص وتعيد استجابة من المتجر.

@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

السمات

تطبيق السمة AssistantSkillTrigger لتعريف مشغل مساعد، والذي يدعم هذه المعلمات:

المعلمة ‏‏الوصف‬
وصف الدالة يحصل على وصف دالة المساعد، التي يتم توفيرها للنموذج.
اسم الدالة اختياري. يحصل على اسم الدالة التي استدعاها المساعد أو يعينه.
ParameterDescriptionJson اختياري. الحصول على وصف JSON لمعلمة الدالة أو تعيينه، والذي يتم توفيره للنموذج. لمزيد من المعلومات، راجع الاستخدام.

تعليقات توضيحية

AssistantSkillTrigger يمكنك التعليق التوضيحي من تحديد مشغل مساعد، والذي يدعم هذه المعلمات:

العنصر ‏‏الوصف‬
الاسم الحصول على اسم ربط الإدخال أو تعيينه.
وصف الدالة يحصل على وصف دالة المساعد، التي يتم توفيرها للنموذج.
اسم الدالة اختياري. يحصل على اسم الدالة التي استدعاها المساعد أو يعينه.
parameterDescriptionJson اختياري. الحصول على وصف JSON لمعلمة الدالة أو تعيينه، والذي يتم توفيره للنموذج. لمزيد من المعلومات، راجع الاستخدام.

الديكور

أثناء المعاينة، حدد ربط الإدخال كربط generic_trigger من النوع assistantSkillTrigger، والذي يدعم هذه المعلمات:

المعلمة ‏‏الوصف‬
function_description يحصل على وصف دالة المساعد، التي يتم توفيرها للنموذج.
function_name اختياري. يحصل على اسم دالة يسمى المساعد أو يعينها.
parameterDescriptionJson اختياري. الحصول على وصف JSON لمعلمة الدالة أو تعيينه، والذي يتم توفيره للنموذج. لمزيد من المعلومات، راجع الاستخدام.

التكوين

يدعم الربط خصائص التكوين هذه التي قمت بتعيينها في ملف function.json.

الخاصية ‏‏الوصف‬
النوع يجب أن يكونAssistantSkillTrigger.
الاتجاه يجب أن يكونin.
الاسم اسم المشغل.
اسم الدالة يحصل على اسم الدالة التي استدعاها المساعد أو يعينه.
وصف الدالة يحصل على وصف دالة المساعد، التي يتم توفيرها لنموذج اللغة.
parameterDescriptionJson اختياري. الحصول على وصف JSON لمعلمة الدالة أو تعيينه، والذي يتم توفيره للنموذج. لمزيد من المعلومات، راجع الاستخدام.

التكوين

يدعم الربط هذه الخصائص، والتي يتم تعريفها في التعليمات البرمجية الخاصة بك:

الخاصية ‏‏الوصف‬
النوع يجب أن يكونAssistantSkillTrigger.
الاسم اسم المشغل.
اسم الدالة يحصل على اسم الدالة التي استدعاها المساعد أو يعينه.
وصف الدالة يحصل على وصف دالة المساعد، التي يتم توفيرها إلى LLM
parameterDescriptionJson اختياري. الحصول على وصف JSON لمعلمة الدالة أو تعيينه، والذي يتم توفيره للنموذج. لمزيد من المعلومات، راجع الاستخدام.

راجع قسم Example للحصول على أمثلة كاملة.

الاستخدام

عندما parameterDescriptionJson لا يتم توفير قيمة JSON، يتم إنشاؤها تلقائيا. لمزيد من المعلومات حول بناء جملة هذا الكائن، راجع وثائق OpenAI API.