مشاركة عبر


ربط إدخال البحث الدلالي ل Azure OpenAI لوظائف Azure

هام

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

يسمح لك ربط إدخال البحث الدلالي Azure OpenAI باستخدام البحث الدلالي على التضمينات الخاصة بك.

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

إشعار

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

إشعار

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

إشعار

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

مثال

يوضح هذا المثال كيفية إجراء بحث دلالي على ملف.

[Function("PromptFile")]
public static IActionResult PromptFile(
    [HttpTrigger(AuthorizationLevel.Function, "post")] SemanticSearchRequest unused,
    [SemanticSearchInput("AISearchEndpoint", "openai-index", Query = "{prompt}", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", EmbeddingsModel = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%")] SemanticSearchContext result)
{
    return new ContentResult { Content = result.Response, ContentType = "text/plain" };
}

يوضح هذا المثال كيفية إجراء بحث دلالي على ملف.

@FunctionName("PromptFile")
public HttpResponseMessage promptFile(
    @HttpTrigger(
        name = "req", 
        methods = {HttpMethod.POST},
        authLevel = AuthorizationLevel.ANONYMOUS)
        HttpRequestMessage<SemanticSearchRequest> request,
    @SemanticSearch(name = "search", searchConnectionName = "AISearchEndpoint", collection = "openai-index", query = "{prompt}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", embeddingsModel = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%", isReasoningModel = false ) String semanticSearchContext,
    final ExecutionContext context) {
        String response = new JSONObject(semanticSearchContext).getString("Response");
        return request.createResponseBuilder(HttpStatus.OK)
        .header("Content-Type", "application/json")
        .body(response)
        .build();        
}
public class SemanticSearchRequest {
    public String prompt;
    public String getPrompt() {
        return prompt;
    }
    public void setPrompt(String prompt) {
        this.prompt = prompt;
    }        
}

يوضح هذا المثال كيفية إجراء بحث دلالي على ملف.

const semanticSearchInput = input.generic({
    type: "semanticSearch",
    connectionName: "AISearchEndpoint",
    collection: "openai-index",
    query: "{prompt}",
    chatModel: "%CHAT_MODEL_DEPLOYMENT_NAME%",
    embeddingsModel: "%EMBEDDING_MODEL_DEPLOYMENT_NAME%"
});

app.http('PromptFile', {
    methods: ['POST'],
    authLevel: 'function',
    extraInputs: [semanticSearchInput],
    handler: async (_request, context) => {
        var responseBody = context.extraInputs.get(semanticSearchInput)

        return { status: 200, body: responseBody.Response.trim() }
    }
});
const semanticSearchInput = input.generic({
    type: "semanticSearch",
    connectionName: "AISearchEndpoint",
    collection: "openai-index",
    query: "{prompt}",
    chatModel: "%CHAT_MODEL_DEPLOYMENT_NAME%",
    embeddingsModel: "%EMBEDDING_MODEL_DEPLOYMENT_NAME%"
});

app.http('PromptFile', {
    methods: ['POST'],
    authLevel: 'function',
    extraInputs: [semanticSearchInput],
    handler: async (_request, context) => {
        var responseBody: any = context.extraInputs.get(semanticSearchInput)

        return { status: 200, body: responseBody.Response.trim() }
    }
});

يوضح هذا المثال كيفية إجراء بحث دلالي على ملف.

فيما يلي ملف function.json لمطالبة ملف:

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "methods": [
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    },
    {
      "name": "SemanticSearchInput",
      "type": "semanticSearch",
      "direction": "in",
      "searchConnectionName": "AISearchEndpoint",
      "collection": "openai-index",
      "query": "{prompt}",
      "chatModel": "%CHAT_MODEL_DEPLOYMENT_NAME%",
      "embeddingsModel": "%EMBEDDING_MODEL_DEPLOYMENT_NAME%"
    }
  ]
}

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

using namespace System.Net

param($Request, $TriggerMetadata, $SemanticSearchInput)

Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
        StatusCode = [HttpStatusCode]::OK
        Body       = $SemanticSearchInput.Response
    })

يوضح هذا المثال كيفية إجراء بحث دلالي على ملف.

@app.function_name("PromptFile")
@app.route(methods=["POST"])
@app.semantic_search_input(
    arg_name="result",
    search_connection_name="AISearchEndpoint",
    collection="openai-index",
    query="{prompt}",
    embeddings_model="%EMBEDDING_MODEL_DEPLOYMENT_NAME%",
    chat_model="%CHAT_MODEL_DEPLOYMENT_NAME%",
)
def prompt_file(req: func.HttpRequest, result: str) -> func.HttpResponse:
    result_json = json.loads(result)
    response_json = {
        "content": result_json.get("Response"),
        "content_type": "text/plain",
    }
    return func.HttpResponse(
        json.dumps(response_json), status_code=200, mimetype="application/json"
    )

السمات

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

المعلمة ‏‏الوصف‬
SearchConnectionName اسم إعداد التطبيق أو متغير البيئة الذي يحتوي على قيمة سلسلة الاتصال. تدعم هذه الخاصية تعبيرات الربط.
مجموعة اسم المجموعة أو الجدول أو الفهرس للبحث. تدعم هذه الخاصية تعبيرات الربط.
استعلام نص الاستعلام الدلالي المراد استخدامه للبحث. تدعم هذه الخاصية تعبيرات الربط.
EmbeddingsModel اختياري. معرف النموذج لاستخدامه للتضمينات. القيمة الافتراضية هي text-embedding-3-small. تدعم هذه الخاصية تعبيرات الربط.
ChatModel اختياري. الحصول على اسم نموذج اللغة الكبيرة أو تعيينه لاستدعاء استجابات الدردشة. القيمة الافتراضية هي gpt-3.5-turbo. تدعم هذه الخاصية تعبيرات الربط.
AIConnectionName اختياري. الحصول على اسم قسم التكوين أو تعيينه لإعدادات اتصال الخدمة الذكاء الاصطناعي. بالنسبة إلى Azure OpenAI: إذا تم تحديده، يبحث عن قيم "نقطة النهاية" و"المفتاح" في قسم التكوين هذا. إذا لم يتم تحديده أو لم يكن المقطع موجودا، يعود إلى متغيرات البيئة: AZURE_OPENAI_ENDPOINT AZURE_OPENAI_KEY. لمصادقة الهوية المدارة المعينة من قبل المستخدم، هذه الخاصية مطلوبة. بالنسبة لخدمة OpenAI (غير Azure)، قم بتعيين متغير البيئة OPENAI_API_KEY.
SystemPrompt اختياري. الحصول على مطالبة النظام أو تعيينها لاستخدامها لمطالبة نموذج اللغة الكبير. يتم إلحاق مطالبة النظام بالمعرفة التي يتم جلبها نتيجة ل Query. يتم إرسال المطالبة المجمعة إلى OpenAI Chat API. تدعم هذه الخاصية تعبيرات الربط.
MaxKnowledgeCount اختياري. يحصل على أو يعين عدد عناصر المعرفة لإدخالها في SystemPrompt.
IsReasoningModel اختياري. الحصول على قيمة تشير إلى ما إذا كان نموذج إكمال الدردشة نموذجا منطقيا أم لا. هذا الخيار تجريبي ومرتبط بنموذج المنطق حتى يكون لجميع النماذج تماثل في الخصائص المتوقعة، بقيمة افتراضية ل false.

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

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

العنصر ‏‏الوصف‬
الاسم الحصول على اسم ربط الإدخال أو تعيينه.
searchConnectionName اسم إعداد التطبيق أو متغير البيئة الذي يحتوي على قيمة سلسلة الاتصال. تدعم هذه الخاصية تعبيرات الربط.
مجموعة اسم المجموعة أو الجدول أو الفهرس للبحث. تدعم هذه الخاصية تعبيرات الربط.
الاستعلام نص الاستعلام الدلالي المراد استخدامه للبحث. تدعم هذه الخاصية تعبيرات الربط.
embeddingsModel اختياري. معرف النموذج لاستخدامه للتضمينات. القيمة الافتراضية هي text-embedding-3-small. تدعم هذه الخاصية تعبيرات الربط.
نموذج الدردشة اختياري. الحصول على اسم نموذج اللغة الكبيرة أو تعيينه لاستدعاء استجابات الدردشة. القيمة الافتراضية هي gpt-3.5-turbo. تدعم هذه الخاصية تعبيرات الربط.
aiConnectionName اختياري. الحصول على اسم قسم التكوين أو تعيينه لإعدادات اتصال الخدمة الذكاء الاصطناعي. بالنسبة إلى Azure OpenAI: إذا تم تحديده، يبحث عن قيم "نقطة النهاية" و"المفتاح" في قسم التكوين هذا. إذا لم يتم تحديده أو لم يكن المقطع موجودا، يعود إلى متغيرات البيئة: AZURE_OPENAI_ENDPOINT AZURE_OPENAI_KEY. لمصادقة الهوية المدارة المعينة من قبل المستخدم، هذه الخاصية مطلوبة. بالنسبة لخدمة OpenAI (غير Azure)، قم بتعيين متغير البيئة OPENAI_API_KEY.
systemPrompt اختياري. الحصول على مطالبة النظام أو تعيينها لاستخدامها لمطالبة نموذج اللغة الكبير. يتم إلحاق مطالبة النظام بالمعرفة التي يتم جلبها نتيجة ل Query. يتم إرسال المطالبة المجمعة إلى OpenAI Chat API. تدعم هذه الخاصية تعبيرات الربط.
maxKnowledgeCount اختياري. يحصل على أو يعين عدد عناصر المعرفة لإدخالها في SystemPrompt.
isReasoningModel اختياري. الحصول على قيمة تشير إلى ما إذا كان نموذج إكمال الدردشة نموذجا منطقيا أم لا. هذا الخيار تجريبي ومرتبط بنموذج المنطق حتى يكون لجميع النماذج تماثل في الخصائص المتوقعة، بقيمة افتراضية ل false.

الديكور

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

المعلمة ‏‏الوصف‬
arg_name اسم المتغير الذي يمثل معلمة الربط.
search_connection_name اسم إعداد التطبيق أو متغير البيئة الذي يحتوي على قيمة سلسلة الاتصال. تدعم هذه الخاصية تعبيرات الربط.
مجموعة اسم المجموعة أو الجدول أو الفهرس للبحث. تدعم هذه الخاصية تعبيرات الربط.
الاستعلام نص الاستعلام الدلالي المراد استخدامه للبحث. تدعم هذه الخاصية تعبيرات الربط.
embeddings_model اختياري. معرف النموذج لاستخدامه للتضمينات. القيمة الافتراضية هي text-embedding-3-small. تدعم هذه الخاصية تعبيرات الربط.
chat_model اختياري. الحصول على اسم نموذج اللغة الكبيرة أو تعيينه لاستدعاء استجابات الدردشة. القيمة الافتراضية هي gpt-3.5-turbo. تدعم هذه الخاصية تعبيرات الربط.
ai_connection_name اختياري. الحصول على اسم قسم التكوين أو تعيينه لإعدادات اتصال الخدمة الذكاء الاصطناعي. بالنسبة إلى Azure OpenAI: إذا تم تحديده، يبحث عن قيم "نقطة النهاية" و"المفتاح" في قسم التكوين هذا. إذا لم يتم تحديده أو لم يكن المقطع موجودا، يعود إلى متغيرات البيئة: AZURE_OPENAI_ENDPOINT AZURE_OPENAI_KEY. لمصادقة الهوية المدارة المعينة من قبل المستخدم، هذه الخاصية مطلوبة. بالنسبة لخدمة OpenAI (غير Azure)، قم بتعيين متغير البيئة OPENAI_API_KEY.
system_prompt اختياري. الحصول على مطالبة النظام أو تعيينها لاستخدامها لمطالبة نموذج اللغة الكبير. يتم إلحاق مطالبة النظام بالمعرفة التي يتم جلبها نتيجة ل Query. يتم إرسال المطالبة المجمعة إلى OpenAI Chat API. تدعم هذه الخاصية تعبيرات الربط.
max_knowledge_count اختياري. يحصل على أو يعين عدد عناصر المعرفة لإدخالها في SystemPrompt.
is_reasoning _model اختياري. الحصول على قيمة تشير إلى ما إذا كان نموذج إكمال الدردشة نموذجا منطقيا أم لا. هذا الخيار تجريبي ومرتبط بنموذج المنطق حتى يكون لجميع النماذج تماثل في الخصائص المتوقعة، بقيمة افتراضية ل false.

التكوين

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

الخاصية ‏‏الوصف‬
النوع يجب أن يكونsemanticSearch.
الاتجاه يجب أن يكونin.
الاسم اسم ربط الإدخال.
searchConnectionName الحصول على اسم إعداد التطبيق أو متغير البيئة الذي يحتوي على قيمة سلسلة اتصال أو تعيينه. تدعم هذه الخاصية تعبيرات الربط.
مجموعة اسم المجموعة أو الجدول أو الفهرس للبحث. تدعم هذه الخاصية تعبيرات الربط.
الاستعلام نص الاستعلام الدلالي المراد استخدامه للبحث. تدعم هذه الخاصية تعبيرات الربط.
embeddingsModel اختياري. معرف النموذج لاستخدامه للتضمينات. القيمة الافتراضية هي text-embedding-3-small. تدعم هذه الخاصية تعبيرات الربط.
نموذج الدردشة اختياري. الحصول على اسم نموذج اللغة الكبيرة أو تعيينه لاستدعاء استجابات الدردشة. القيمة الافتراضية هي gpt-3.5-turbo. تدعم هذه الخاصية تعبيرات الربط.
aiConnectionName اختياري. الحصول على اسم قسم التكوين أو تعيينه لإعدادات اتصال الخدمة الذكاء الاصطناعي. بالنسبة إلى Azure OpenAI: إذا تم تحديده، يبحث عن قيم "نقطة النهاية" و"المفتاح" في قسم التكوين هذا. إذا لم يتم تحديده أو لم يكن المقطع موجودا، يعود إلى متغيرات البيئة: AZURE_OPENAI_ENDPOINT AZURE_OPENAI_KEY. لمصادقة الهوية المدارة المعينة من قبل المستخدم، هذه الخاصية مطلوبة. بالنسبة لخدمة OpenAI (غير Azure)، قم بتعيين متغير البيئة OPENAI_API_KEY.
systemPrompt اختياري. الحصول على مطالبة النظام أو تعيينها لاستخدامها لمطالبة نموذج اللغة الكبير. يتم إلحاق مطالبة النظام بالمعرفة التي يتم جلبها نتيجة ل Query. يتم إرسال المطالبة المجمعة إلى OpenAI Chat API. تدعم هذه الخاصية تعبيرات الربط.
maxKnowledgeCount اختياري. يحصل على أو يعين عدد عناصر المعرفة لإدخالها في SystemPrompt.
isReasoningModel اختياري. الحصول على قيمة تشير إلى ما إذا كان نموذج إكمال الدردشة نموذجا منطقيا أم لا. هذا الخيار تجريبي ومرتبط بنموذج المنطق حتى يكون لجميع النماذج تماثل في الخصائص المتوقعة، بقيمة افتراضية ل false.

التكوين

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

الخاصية ‏‏الوصف‬
searchConnectionName اسم إعداد التطبيق أو متغير البيئة الذي يحتوي على قيمة سلسلة الاتصال. تدعم هذه الخاصية تعبيرات الربط.
مجموعة اسم المجموعة أو الجدول أو الفهرس للبحث. تدعم هذه الخاصية تعبيرات الربط.
الاستعلام نص الاستعلام الدلالي المراد استخدامه للبحث. تدعم هذه الخاصية تعبيرات الربط.
embeddingsModel اختياري. معرف النموذج لاستخدامه للتضمينات. القيمة الافتراضية هي text-embedding-3-small. تدعم هذه الخاصية تعبيرات الربط.
نموذج الدردشة اختياري. الحصول على اسم نموذج اللغة الكبيرة أو تعيينه لاستدعاء استجابات الدردشة. القيمة الافتراضية هي gpt-3.5-turbo. تدعم هذه الخاصية تعبيرات الربط.
aiConnectionName اختياري. الحصول على اسم قسم التكوين أو تعيينه لإعدادات اتصال الخدمة الذكاء الاصطناعي. بالنسبة إلى Azure OpenAI: إذا تم تحديده، يبحث عن قيم "نقطة النهاية" و"المفتاح" في قسم التكوين هذا. إذا لم يتم تحديده أو لم يكن المقطع موجودا، يعود إلى متغيرات البيئة: AZURE_OPENAI_ENDPOINT AZURE_OPENAI_KEY. لمصادقة الهوية المدارة المعينة من قبل المستخدم، هذه الخاصية مطلوبة. بالنسبة لخدمة OpenAI (غير Azure)، قم بتعيين متغير البيئة OPENAI_API_KEY.
systemPrompt اختياري. الحصول على مطالبة النظام أو تعيينها لاستخدامها لمطالبة نموذج اللغة الكبير. يتم إلحاق مطالبة النظام بالمعرفة التي يتم جلبها نتيجة ل Query. يتم إرسال المطالبة المجمعة إلى OpenAI Chat API. تدعم هذه الخاصية تعبيرات الربط.
maxKnowledgeCount اختياري. يحصل على أو يعين عدد عناصر المعرفة لإدخالها في SystemPrompt.
isReasoningModel اختياري. الحصول على قيمة تشير إلى ما إذا كان نموذج إكمال الدردشة نموذجا منطقيا أم لا. هذا الخيار تجريبي ومرتبط بنموذج المنطق حتى يكون لجميع النماذج تماثل في الخصائص المتوقعة، بقيمة افتراضية ل false.

الاستخدام

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