يقوم مساعد Azure OpenAI بإنشاء ربط إخراج لوظائف Azure

هام

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

يسمح لك مساعد Azure OpenAI بإنشاء ربط إخراج بإنشاء روبوت دردشة مساعد جديد من تنفيذ التعليمات البرمجية للوظيفة.

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

إشعار

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

إشعار

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

إشعار

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

مثال

يوضح هذا المثال عملية الإنشاء، حيث تقوم وظيفة HTTP PUT بإنشاء روبوت دردشة مساعد جديد بالمعرف المحدد. يتم إرجاع الاستجابة إلى المطالبة في استجابة HTTP.

/// HTTP PUT function that creates a new assistant chat bot with the specified ID.
/// </summary>
[Function(nameof(CreateAssistant))]
public static async Task<CreateChatBotOutput> CreateAssistant(
    [HttpTrigger(AuthorizationLevel.Anonymous, "put", Route = "assistants/{assistantId}")] HttpRequestData req,
    string assistantId)
{
    string instructions =
       """
        Don't make assumptions about what values to plug into functions.
        Ask for clarification if a user request is ambiguous.
        """;

    using StreamReader reader = new(req.Body);

    string request = await reader.ReadToEndAsync();


    return new CreateChatBotOutput
    {
        HttpResponse = new ObjectResult(new { assistantId }) { StatusCode = 202 },
        ChatBotCreateRequest = new AssistantCreateRequest(assistantId, instructions)
        {
            ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting,
            CollectionName = DefaultCollectionName,
        },

يوضح هذا المثال عملية الإنشاء، حيث تقوم وظيفة HTTP PUT بإنشاء روبوت دردشة مساعد جديد بالمعرف المحدد. يتم إرجاع الاستجابة إلى المطالبة في استجابة HTTP.

 * account
 * where chat data will be stored.
 */
String DEFAULT_CHATSTORAGE = "AzureWebJobsStorage";

/**
 * The default collection name for the table storage account.
 * This constant is used to specify the collection name for the table storage
 * account
 * where chat data will be stored.
 */
String DEFAULT_COLLECTION = "ChatState";

/*
 * HTTP PUT function that creates a new assistant chat bot with the specified ID.
 */
@FunctionName("CreateAssistant")
public HttpResponseMessage createAssistant(
    @HttpTrigger(
        name = "req", 
        methods = {HttpMethod.PUT}, 
        authLevel = AuthorizationLevel.ANONYMOUS, 
        route = "assistants/{assistantId}") 
        HttpRequestMessage<Optional<String>> request,
    @BindingName("assistantId") String assistantId,
    @AssistantCreate(name = "AssistantCreate") OutputBinding<AssistantCreateRequest> message,

الأمثلة غير متوفرة بعد.

يوضح هذا المثال عملية الإنشاء، حيث تقوم وظيفة HTTP PUT بإنشاء روبوت دردشة مساعد جديد بالمعرف المحدد. يتم إرجاع الاستجابة إلى المطالبة في استجابة HTTP.

const COLLECTION_NAME = "ChatState";

const chatBotCreateOutput = output.generic({
    type: 'assistantCreate'
})
app.http('CreateAssistant', {
    methods: ['PUT'],
    route: 'assistants/{assistantId}',
    authLevel: 'anonymous',
    extraOutputs: [chatBotCreateOutput],
    handler: async (request: HttpRequest, context: InvocationContext) => {
        const assistantId = request.params.assistantId
        const instructions =
            `
            Don't make assumptions about what values to plug into functions.
            Ask for clarification if a user request is ambiguous.
            `
        const createRequest = {
            id: assistantId,
            instructions: instructions,
            chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
            collectionName: COLLECTION_NAME
        }

يوضح هذا المثال عملية الإنشاء، حيث تقوم وظيفة HTTP PUT بإنشاء روبوت دردشة مساعد جديد بالمعرف المحدد. يتم إرجاع الاستجابة إلى المطالبة في استجابة HTTP.

فيما يلي ملف function.json لإنشاء مساعد:

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "route": "assistants/{assistantId}",
      "methods": [
        "put"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    },
    {
      "type": "assistantCreate",
      "direction": "out",
      "dataType": "string",
      "name": "Requests"
    }
  ]
}

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

{{يأتي هذا من مثال تعليق التعليمات البرمجية}}

using namespace System.Net

param($Request, $TriggerMetadata)

$assistantId = $Request.params.assistantId

$instructions = "Don't make assumptions about what values to plug into functions."
$instructions += "\nAsk for clarification if a user request is ambiguous."

$create_request = @{
    "id" = $assistantId
    "instructions" = $instructions
    "chatStorageConnectionSetting" = "AzureWebJobsStorage"
    "collectionName" = "ChatState"
}

Push-OutputBinding -Name Requests -Value (ConvertTo-Json $create_request)

Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
    StatusCode = [HttpStatusCode]::Accepted
    Body       = (ConvertTo-Json @{ "assistantId" = $assistantId})
    Headers    = @{
        "Content-Type" = "application/json"
    }
})

يوضح هذا المثال عملية الإنشاء، حيث تقوم وظيفة HTTP PUT بإنشاء روبوت دردشة مساعد جديد بالمعرف المحدد. يتم إرجاع الاستجابة إلى المطالبة في استجابة HTTP.

DEFAULT_CHAT_COLLECTION_NAME = "ChatState"

@apis.function_name("CreateAssistant")
@apis.route(route="assistants/{assistantId}", methods=["PUT"])
@apis.assistant_create_output(arg_name="requests")
def create_assistant(req: func.HttpRequest, requests: func.Out[str]) -> func.HttpResponse:
    assistantId = req.route_params.get("assistantId")
    instructions = """
            Don't make assumptions about what values to plug into functions.
            Ask for clarification if a user request is ambiguous.
            """
    create_request = {
        "id": assistantId,
        "instructions": instructions,
        "chatStorageConnectionSetting": DEFAULT_CHAT_STORAGE_SETTING,
        "collectionName": DEFAULT_CHAT_COLLECTION_NAME

السمات

تطبيق السمة CreateAssistant لتعريف مساعد إنشاء ربط إخراج، والذي يدعم هذه المعلمات:

المعلمة ‏‏الوصف‬
معرّف معرف المساعد المراد إنشاؤه.
تعليمات اختياري. الإرشادات التي يتم توفيرها إلى المساعد للمتابعة.

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

CreateAssistant يمكنك التعليق التوضيحي من تعريف مساعد إنشاء ربط إخراج، والذي يدعم هذه المعلمات:

العنصر ‏‏الوصف‬
الاسم الحصول على اسم ربط الإخراج أو تعيينه.
معرف معرف المساعد المراد إنشاؤه.
التوجيهات اختياري. الإرشادات التي يتم توفيرها إلى المساعد للمتابعة.

الديكور

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

المعلمة ‏‏الوصف‬
arg_name اسم المتغير الذي يمثل معلمة الربط.
معرف معرف المساعد المراد إنشاؤه.
التوجيهات اختياري. الإرشادات التي يتم توفيرها إلى المساعد للمتابعة.

التكوين

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

الخاصية الوصف
النوع يجب أن يكونCreateAssistant.
الاتجاه يجب أن يكونout.
الاسم اسم ربط الإخراج.
معرف معرف المساعد المراد إنشاؤه.
التوجيهات اختياري. الإرشادات التي يتم توفيرها إلى المساعد للمتابعة.

التكوين

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

الخاصية ‏‏الوصف
معرف معرف المساعد المراد إنشاؤه.
التوجيهات اختياري. الإرشادات التي يتم توفيرها إلى المساعد للمتابعة.

الاستخدام

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