Bagikan melalui


Pengikatan Input Pencarian Semantik Azure OpenAI untuk Azure Functions

Penting

Ekstensi Azure OpenAI untuk Azure Functions saat ini dalam pratinjau.

Pengikatan input pencarian semantik Azure OpenAI memungkinkan Anda menggunakan pencarian semantik pada penyematan Anda.

Untuk informasi tentang penyiapan dan detail konfigurasi ekstensi Azure OpenAI, lihat Ekstensi Azure OpenAI untuk Azure Functions. Untuk mempelajari selengkapnya tentang peringkat semantik di Azure AI Search, lihat Peringkat semantik di Azure AI Search.

Nota

Referensi dan contoh hanya disediakan untuk model Node.js v4.

Nota

Referensi dan contoh hanya disediakan untuk model Python v2.

Nota

Meskipun kedua model proses C# didukung, hanya contoh model pekerja terisolasi yang disediakan.

Contoh

Contoh ini menunjukkan cara melakukan pencarian semantik pada file.

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

Contoh ini menunjukkan cara melakukan pencarian semantik pada file.

@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;
    }        
}

Contoh ini menunjukkan cara melakukan pencarian semantik pada file.

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

Contoh ini menunjukkan cara melakukan pencarian semantik pada file.

Berikut adalah file function.json untuk meminta file:

{
  "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%"
    }
  ]
}

Untuk informasi selengkapnya tentang properti file function.json , lihat bagian Konfigurasi .

using namespace System.Net

param($Request, $TriggerMetadata, $SemanticSearchInput)

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

Contoh ini menunjukkan cara melakukan pencarian semantik pada file.

@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"
    )

Atributs

SemanticSearchInput Terapkan atribut untuk menentukan pengikatan input pencarian semantik, yang mendukung parameter ini:

Pengaturan Deskripsi
SearchConnectionName Nama pengaturan aplikasi atau variabel lingkungan yang berisi nilai string koneksi. Properti ini mendukung ekspresi pengikatan.
Koleksi Nama koleksi atau tabel atau indeks yang akan dicari. Properti ini mendukung ekspresi pengikatan.
Pertanyaan Teks kueri semantik yang digunakan untuk pencarian. Properti ini mendukung ekspresi pengikatan.
EmbeddingsModel Opsional. ID model yang digunakan untuk penyematan. Nilai defaultnya adalah text-embedding-3-small. Properti ini mendukung ekspresi pengikatan.
ChatModel Opsional. Mendapatkan atau mengatur nama Model Bahasa Besar yang akan dipanggil untuk respons obrolan. Nilai defaultnya adalah gpt-3.5-turbo. Properti ini mendukung ekspresi pengikatan.
AIConnectionName Opsional. Mendapatkan atau mengatur nama bagian konfigurasi untuk pengaturan konektivitas layanan AI. Untuk Azure OpenAI: Jika ditentukan, cari nilai "Titik Akhir" dan "Kunci" di bagian konfigurasi ini. Jika tidak ditentukan atau bagian tidak ada, kembali ke variabel lingkungan: AZURE_OPENAI_ENDPOINT dan AZURE_OPENAI_KEY. Untuk autentikasi identitas terkelola yang ditetapkan pengguna, properti ini diperlukan. Untuk layanan OpenAI (non-Azure), atur variabel lingkungan OPENAI_API_KEY.
SystemPrompt Opsional. Mendapatkan atau mengatur permintaan sistem yang akan digunakan untuk meminta model bahasa besar. Prompt sistem ditambahkan dengan pengetahuan yang diambil sebagai hasil dari Query. Prompt gabungan dikirim ke OpenAI Chat API. Properti ini mendukung ekspresi pengikatan.
MaxKnowledgeCount Opsional. Mendapatkan atau mengatur jumlah item pengetahuan untuk disuntikkan ke SystemPromptdalam .
IsReasoningModel Opsional. Mendapatkan atau menetapkan nilai yang menunjukkan apakah model penyelesaian obrolan adalah model penalaran. Opsi ini bersifat eksperimental dan terkait dengan model penalaran sampai semua model memiliki paritas di properti yang diharapkan, dengan nilai falsedefault .

Anotasi

Anotasi SemanticSearchInput memungkinkan Anda menentukan pengikatan input pencarian semantik, yang mendukung parameter ini:

Elemen Deskripsi
Nama Mendapatkan atau mengatur nama pengikatan input.
searchConnectionName Nama pengaturan aplikasi atau variabel lingkungan yang berisi nilai string koneksi. Properti ini mendukung ekspresi pengikatan.
koleksi Nama koleksi atau tabel atau indeks yang akan dicari. Properti ini mendukung ekspresi pengikatan.
kueri Teks kueri semantik yang digunakan untuk pencarian. Properti ini mendukung ekspresi pengikatan.
embeddingsModel Opsional. ID model yang digunakan untuk penyematan. Nilai defaultnya adalah text-embedding-3-small. Properti ini mendukung ekspresi pengikatan.
chatModel Opsional. Mendapatkan atau mengatur nama Model Bahasa Besar yang akan dipanggil untuk respons obrolan. Nilai defaultnya adalah gpt-3.5-turbo. Properti ini mendukung ekspresi pengikatan.
aiConnectionName Opsional. Mendapatkan atau mengatur nama bagian konfigurasi untuk pengaturan konektivitas layanan AI. Untuk Azure OpenAI: Jika ditentukan, cari nilai "Titik Akhir" dan "Kunci" di bagian konfigurasi ini. Jika tidak ditentukan atau bagian tidak ada, kembali ke variabel lingkungan: AZURE_OPENAI_ENDPOINT dan AZURE_OPENAI_KEY. Untuk autentikasi identitas terkelola yang ditetapkan pengguna, properti ini diperlukan. Untuk layanan OpenAI (non-Azure), atur variabel lingkungan OPENAI_API_KEY.
systemPrompt Opsional. Mendapatkan atau mengatur permintaan sistem yang akan digunakan untuk meminta model bahasa besar. Prompt sistem ditambahkan dengan pengetahuan yang diambil sebagai hasil dari Query. Prompt gabungan dikirim ke OpenAI Chat API. Properti ini mendukung ekspresi pengikatan.
maxKnowledgeCount Opsional. Mendapatkan atau mengatur jumlah item pengetahuan untuk disuntikkan ke SystemPromptdalam .
isReasoningModel Opsional. Mendapatkan atau menetapkan nilai yang menunjukkan apakah model penyelesaian obrolan adalah model penalaran. Opsi ini bersifat eksperimental dan terkait dengan model penalaran sampai semua model memiliki paritas di properti yang diharapkan, dengan nilai falsedefault .

Dekorator

Selama pratinjau, tentukan pengikatan input sebagai generic_input_binding pengikatan jenis semanticSearch, yang mendukung parameter ini:

Pengaturan Deskripsi
arg_name Nama variabel yang mewakili parameter pengikatan.
search_connection_name Nama pengaturan aplikasi atau variabel lingkungan yang berisi nilai string koneksi. Properti ini mendukung ekspresi pengikatan.
koleksi Nama koleksi atau tabel atau indeks yang akan dicari. Properti ini mendukung ekspresi pengikatan.
kueri Teks kueri semantik yang digunakan untuk pencarian. Properti ini mendukung ekspresi pengikatan.
embeddings_model Opsional. ID model yang digunakan untuk penyematan. Nilai defaultnya adalah text-embedding-3-small. Properti ini mendukung ekspresi pengikatan.
chat_model Opsional. Mendapatkan atau mengatur nama Model Bahasa Besar yang akan dipanggil untuk respons obrolan. Nilai defaultnya adalah gpt-3.5-turbo. Properti ini mendukung ekspresi pengikatan.
ai_connection_name Opsional. Mendapatkan atau mengatur nama bagian konfigurasi untuk pengaturan konektivitas layanan AI. Untuk Azure OpenAI: Jika ditentukan, cari nilai "Titik Akhir" dan "Kunci" di bagian konfigurasi ini. Jika tidak ditentukan atau bagian tidak ada, kembali ke variabel lingkungan: AZURE_OPENAI_ENDPOINT dan AZURE_OPENAI_KEY. Untuk autentikasi identitas terkelola yang ditetapkan pengguna, properti ini diperlukan. Untuk layanan OpenAI (non-Azure), atur variabel lingkungan OPENAI_API_KEY.
system_prompt Opsional. Mendapatkan atau mengatur permintaan sistem yang akan digunakan untuk meminta model bahasa besar. Prompt sistem ditambahkan dengan pengetahuan yang diambil sebagai hasil dari Query. Prompt gabungan dikirim ke OpenAI Chat API. Properti ini mendukung ekspresi pengikatan.
max_knowledge_count Opsional. Mendapatkan atau mengatur jumlah item pengetahuan untuk disuntikkan ke SystemPromptdalam .
is_reasoning _model Opsional. Mendapatkan atau menetapkan nilai yang menunjukkan apakah model penyelesaian obrolan adalah model penalaran. Opsi ini bersifat eksperimental dan terkait dengan model penalaran sampai semua model memiliki paritas di properti yang diharapkan, dengan nilai falsedefault .

Konfigurasi

Pengikatan mendukung properti konfigurasi ini yang Anda tetapkan dalam file function.json.

Harta benda Deskripsi
jenis Harus berupa semanticSearch .
arah Harus berupa in .
Nama Nama pengikatan input.
searchConnectionName Mendapatkan atau mengatur nama pengaturan aplikasi atau variabel lingkungan yang berisi nilai string koneksi. Properti ini mendukung ekspresi pengikatan.
koleksi Nama koleksi atau tabel atau indeks yang akan dicari. Properti ini mendukung ekspresi pengikatan.
kueri Teks kueri semantik yang digunakan untuk pencarian. Properti ini mendukung ekspresi pengikatan.
embeddingsModel Opsional. ID model yang digunakan untuk penyematan. Nilai defaultnya adalah text-embedding-3-small. Properti ini mendukung ekspresi pengikatan.
chatModel Opsional. Mendapatkan atau mengatur nama Model Bahasa Besar yang akan dipanggil untuk respons obrolan. Nilai defaultnya adalah gpt-3.5-turbo. Properti ini mendukung ekspresi pengikatan.
aiConnectionName Opsional. Mendapatkan atau mengatur nama bagian konfigurasi untuk pengaturan konektivitas layanan AI. Untuk Azure OpenAI: Jika ditentukan, cari nilai "Titik Akhir" dan "Kunci" di bagian konfigurasi ini. Jika tidak ditentukan atau bagian tidak ada, kembali ke variabel lingkungan: AZURE_OPENAI_ENDPOINT dan AZURE_OPENAI_KEY. Untuk autentikasi identitas terkelola yang ditetapkan pengguna, properti ini diperlukan. Untuk layanan OpenAI (non-Azure), atur variabel lingkungan OPENAI_API_KEY.
systemPrompt Opsional. Mendapatkan atau mengatur permintaan sistem yang akan digunakan untuk meminta model bahasa besar. Prompt sistem ditambahkan dengan pengetahuan yang diambil sebagai hasil dari Query. Prompt gabungan dikirim ke OpenAI Chat API. Properti ini mendukung ekspresi pengikatan.
maxKnowledgeCount Opsional. Mendapatkan atau mengatur jumlah item pengetahuan untuk disuntikkan ke SystemPromptdalam .
isReasoningModel Opsional. Mendapatkan atau menetapkan nilai yang menunjukkan apakah model penyelesaian obrolan adalah model penalaran. Opsi ini bersifat eksperimental dan terkait dengan model penalaran sampai semua model memiliki paritas di properti yang diharapkan, dengan nilai falsedefault .

Konfigurasi

Pengikatan mendukung properti ini, yang ditentukan dalam kode Anda:

Harta benda Deskripsi
searchConnectionName Nama pengaturan aplikasi atau variabel lingkungan yang berisi nilai string koneksi. Properti ini mendukung ekspresi pengikatan.
koleksi Nama koleksi atau tabel atau indeks yang akan dicari. Properti ini mendukung ekspresi pengikatan.
kueri Teks kueri semantik yang digunakan untuk pencarian. Properti ini mendukung ekspresi pengikatan.
embeddingsModel Opsional. ID model yang digunakan untuk penyematan. Nilai defaultnya adalah text-embedding-3-small. Properti ini mendukung ekspresi pengikatan.
chatModel Opsional. Mendapatkan atau mengatur nama Model Bahasa Besar yang akan dipanggil untuk respons obrolan. Nilai defaultnya adalah gpt-3.5-turbo. Properti ini mendukung ekspresi pengikatan.
aiConnectionName Opsional. Mendapatkan atau mengatur nama bagian konfigurasi untuk pengaturan konektivitas layanan AI. Untuk Azure OpenAI: Jika ditentukan, cari nilai "Titik Akhir" dan "Kunci" di bagian konfigurasi ini. Jika tidak ditentukan atau bagian tidak ada, kembali ke variabel lingkungan: AZURE_OPENAI_ENDPOINT dan AZURE_OPENAI_KEY. Untuk autentikasi identitas terkelola yang ditetapkan pengguna, properti ini diperlukan. Untuk layanan OpenAI (non-Azure), atur variabel lingkungan OPENAI_API_KEY.
systemPrompt Opsional. Mendapatkan atau mengatur permintaan sistem yang akan digunakan untuk meminta model bahasa besar. Prompt sistem ditambahkan dengan pengetahuan yang diambil sebagai hasil dari Query. Prompt gabungan dikirim ke OpenAI Chat API. Properti ini mendukung ekspresi pengikatan.
maxKnowledgeCount Opsional. Mendapatkan atau mengatur jumlah item pengetahuan untuk disuntikkan ke SystemPromptdalam .
isReasoningModel Opsional. Mendapatkan atau menetapkan nilai yang menunjukkan apakah model penyelesaian obrolan adalah model penalaran. Opsi ini bersifat eksperimental dan terkait dengan model penalaran sampai semua model memiliki paritas di properti yang diharapkan, dengan nilai falsedefault .

Penggunaan

Lihat Bagian contoh untuk contoh lengkapnya.