ربط إدخال استعلام مساعد Azure OpenAI لوظائف Azure

هام

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

يسمح لك ربط إدخال استعلام مساعد Azure OpenAI بدمج استعلامات Assistants API في عمليات تنفيذ التعليمات البرمجية.

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

إشعار

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

إشعار

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

إشعار

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

مثال

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

    public static async Task<IActionResult> GetChatState(
       [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "assistants/{assistantId}")] HttpRequestData req,
       string assistantId,
       [AssistantQueryInput("{assistantId}", TimestampUtc = "{Query.timestampUTC}", ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting, CollectionName = DefaultCollectionName)] AssistantState state)
    {
        return new OkObjectResult(state);
    }
}

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

                "Ask for clarification if a user request is ambiguous.";

        AssistantCreateRequest assistantCreateRequest = new AssistantCreateRequest(assistantId, instructions);
        assistantCreateRequest.setChatStorageConnectionSetting(DEFAULT_CHATSTORAGE);
        assistantCreateRequest.setCollectionName(DEFAULT_COLLECTION);

        message.setValue(assistantCreateRequest);
        JSONObject response = new JSONObject();
        response.put("assistantId", assistantId);
        
        return request.createResponseBuilder(HttpStatus.CREATED)
            .header("Content-Type", "application/json")
            .body(response.toString())
            .build();    
}

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

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

            }
        };
    }
})


const chatBotQueryInput = input.generic({
    type: 'assistantQuery',
    id: '{assistantId}',
    timestampUtc: '{Query.timestampUTC}',
    chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
    collectionName: COLLECTION_NAME
})
app.http('GetChatState', {
    methods: ['GET'],

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

فيما يلي ملف function.json للحصول على حالة الدردشة:

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "route": "assistants/{assistantId}",
      "methods": [
        "get"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    },
    {
      "name": "State",
      "type": "assistantQuery",
      "direction": "in",
      "dataType": "string",
      "id": "{assistantId}",
      "timestampUtc": "{Query.timestampUTC}",
      "chatStorageConnectionSetting": "AzureWebJobsStorage",
      "collectionName": "ChatState"
    }
  ]
}

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

using namespace System.Net

param($Request, $TriggerMetadata, $State)

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

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

    recent_message_content = data['recentMessages'][0]['content']
    return func.HttpResponse(recent_message_content, status_code=200, mimetype="text/plain")


@apis.function_name("GetChatState")

السمات

تطبيق السمة AssistantQuery لتعريف ربط إدخال استعلام مساعد، والذي يدعم هذه المعلمات:

المعلمة ‏‏الوصف‬
معرّف يحصل على معرف المساعد للاستعلام.
TimeStampUtc اختياري. الحصول على الطابع الزمني لأقدم رسالة في محفوظات الدردشة أو تعيينها لإحضارها. يجب أن يكون الطابع الزمني بتنسيق ISO 8601 - على سبيل المثال، 2023-08-01T00:00:00Z.

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

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

العنصر ‏‏الوصف‬
الاسم الحصول على اسم ربط الإدخال أو تعيينه.
معرف يحصل على معرف المساعد للاستعلام.
timeStampUtc اختياري. الحصول على الطابع الزمني لأقدم رسالة في محفوظات الدردشة أو تعيينها لإحضارها. يجب أن يكون الطابع الزمني بتنسيق ISO 8601 - على سبيل المثال، 2023-08-01T00:00:00Z.

الديكور

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

المعلمة ‏‏الوصف‬
arg_name اسم المتغير الذي يمثل معلمة الربط.
معرف يحصل على معرف المساعد للاستعلام.
time_stamp_utc اختياري. الحصول على الطابع الزمني لأقدم رسالة في محفوظات الدردشة أو تعيينها لإحضارها. يجب أن يكون الطابع الزمني بتنسيق ISO 8601 - على سبيل المثال، 2023-08-01T00:00:00Z.

التكوين

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

الخاصية الوصف
النوع يجب أن يكونassistantQuery.
الاتجاه يجب أن يكونin.
الاسم اسم ربط الإدخال.
معرف يحصل على معرف المساعد للاستعلام.
timeStampUtc اختياري. الحصول على الطابع الزمني لأقدم رسالة في محفوظات الدردشة أو تعيينها لإحضارها. يجب أن يكون الطابع الزمني بتنسيق ISO 8601 - على سبيل المثال، 2023-08-01T00:00:00Z.

التكوين

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

الخاصية ‏‏الوصف
معرف يحصل على معرف المساعد للاستعلام.
timeStampUtc اختياري. الحصول على الطابع الزمني لأقدم رسالة في محفوظات الدردشة أو تعيينها لإحضارها. يجب أن يكون الطابع الزمني بتنسيق ISO 8601 - على سبيل المثال، 2023-08-01T00:00:00Z.

الاستخدام

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