Aracılığıyla paylaş


Azure İşlevleri için Azure OpenAI Semantik Arama Giriş Bağlaması

Önemli

Azure İşlevleri için Azure OpenAI uzantısı şu anda önizleme aşamasındadır.

Azure OpenAI semantik arama giriş bağlaması, eklemelerinizde anlamsal aramayı kullanmanıza olanak tanır.

Azure OpenAI uzantısının kurulum ve yapılandırma ayrıntıları hakkında bilgi için bkz. Azure İşlevleri için Azure OpenAI uzantıları. Azure AI Search'teki anlam derecelendirmesi hakkında daha fazla bilgi edinmek için bkz . Azure AI Search'te anlam derecelendirmesi.

Uyarı

Başvurular ve örnekler yalnızca Node.js v4 modeli için sağlanır.

Uyarı

Başvurular ve örnekler yalnızca Python v2 modeli için sağlanır.

Uyarı

Her iki C# işlem modeli de destekleniyor olsa da yalnızca yalıtılmış çalışan modeli örnekleri sağlanır.

Örnek

Bu örnekte, bir dosyada anlamsal arama gerçekleştirme işlemi gösterilmektedir.

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

Bu örnekte, bir dosyada anlamsal arama gerçekleştirme işlemi gösterilmektedir.

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

Bu örnekte, bir dosyada anlamsal arama gerçekleştirme işlemi gösterilmektedir.

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

Bu örnekte, bir dosyada anlamsal arama gerçekleştirme işlemi gösterilmektedir.

Bir dosya istemi için function.json dosyası aşağıdadır:

{
  "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 dosya özellikleri hakkında daha fazla bilgi için Yapılandırma bölümüne bakın.

using namespace System.Net

param($Request, $TriggerMetadata, $SemanticSearchInput)

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

Bu örnekte, bir dosyada anlamsal arama gerçekleştirme işlemi gösterilmektedir.

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

Özellikler

SemanticSearchInput Şu parametreleri destekleyen bir anlamsal arama girişi bağlaması tanımlamak için özniteliğini uygulayın:

Parametre Açıklama
SearchConnectionName bağlantı dizesi değerini içeren bir uygulama ayarının veya ortam değişkeninin adı. Bu özellik bağlama ifadelerini destekler.
Koleksiyon Aranacak koleksiyonun, tablonun veya dizinin adı. Bu özellik bağlama ifadelerini destekler.
Sorgu Arama için kullanılacak anlamsal sorgu metni. Bu özellik bağlama ifadelerini destekler.
EmbeddingsModel İsteğe bağlı. Eklemeler için kullanılacak modelin kimliği. Varsayılan değer şudur: text-embedding-3-small. Bu özellik bağlama ifadelerini destekler.
ChatModel İsteğe bağlı. Sohbet yanıtları için çağrılacak Büyük Dil Modelinin adını alır veya ayarlar. Varsayılan değer şudur: gpt-3.5-turbo. Bu özellik bağlama ifadelerini destekler.
AIConnectionName İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın.
SystemPrompt İsteğe bağlı. Büyük dil modelinin sorulduğunda kullanılacak sistem istemini alır veya ayarlar. Sistem istemi, sonucu Queryolarak getirilen bilgilerle eklenir. Birleştirilmiş istem OpenAI Sohbet API'sine gönderilir. Bu özellik bağlama ifadelerini destekler.
MaxKnowledgeCount İsteğe bağlı. içine SystemPromptekleneceğiniz bilgi öğelerinin sayısını alır veya ayarlar.
IsReasoningModel İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false.

Açıklamalar

Ek SemanticSearchInput açıklama, şu parametreleri destekleyen bir anlamsal arama girişi bağlaması tanımlamanızı sağlar:

Öğe Açıklama
isim Giriş bağlamasının adını alır veya ayarlar.
searchConnectionName bağlantı dizesi değerini içeren bir uygulama ayarının veya ortam değişkeninin adı. Bu özellik bağlama ifadelerini destekler.
koleksiyon Aranacak koleksiyonun, tablonun veya dizinin adı. Bu özellik bağlama ifadelerini destekler.
sorgu Arama için kullanılacak anlamsal sorgu metni. Bu özellik bağlama ifadelerini destekler.
embeddingsModel İsteğe bağlı. Eklemeler için kullanılacak modelin kimliği. Varsayılan değer şudur: text-embedding-3-small. Bu özellik bağlama ifadelerini destekler.
chatModel İsteğe bağlı. Sohbet yanıtları için çağrılacak Büyük Dil Modelinin adını alır veya ayarlar. Varsayılan değer şudur: gpt-3.5-turbo. Bu özellik bağlama ifadelerini destekler.
aiConnectionName İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın.
systemPrompt İsteğe bağlı. Büyük dil modelinin sorulduğunda kullanılacak sistem istemini alır veya ayarlar. Sistem istemi, sonucu Queryolarak getirilen bilgilerle eklenir. Birleştirilmiş istem OpenAI Sohbet API'sine gönderilir. Bu özellik bağlama ifadelerini destekler.
maxKnowledgeCount İsteğe bağlı. içine SystemPromptekleneceğiniz bilgi öğelerinin sayısını alır veya ayarlar.
isReasoningModel İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false.

Dekoratörler

Önizleme sırasında, giriş bağlamasını şu parametreleri destekleyen türündeki generic_input_bindingbir semanticSearch bağlama olarak tanımlayın:

Parametre Açıklama
arg_name Bağlama parametresini temsil eden değişkenin adı.
search_connection_name bağlantı dizesi değerini içeren bir uygulama ayarının veya ortam değişkeninin adı. Bu özellik bağlama ifadelerini destekler.
koleksiyon Aranacak koleksiyonun, tablonun veya dizinin adı. Bu özellik bağlama ifadelerini destekler.
sorgu Arama için kullanılacak anlamsal sorgu metni. Bu özellik bağlama ifadelerini destekler.
embeddings_model İsteğe bağlı. Eklemeler için kullanılacak modelin kimliği. Varsayılan değer şudur: text-embedding-3-small. Bu özellik bağlama ifadelerini destekler.
chat_model İsteğe bağlı. Sohbet yanıtları için çağrılacak Büyük Dil Modelinin adını alır veya ayarlar. Varsayılan değer şudur: gpt-3.5-turbo. Bu özellik bağlama ifadelerini destekler.
ai_connection_name İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın.
system_prompt İsteğe bağlı. Büyük dil modelinin sorulduğunda kullanılacak sistem istemini alır veya ayarlar. Sistem istemi, sonucu Queryolarak getirilen bilgilerle eklenir. Birleştirilmiş istem OpenAI Sohbet API'sine gönderilir. Bu özellik bağlama ifadelerini destekler.
max_knowledge_count İsteğe bağlı. içine SystemPromptekleneceğiniz bilgi öğelerinin sayısını alır veya ayarlar.
is_reasoning _model İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false.

Konfigürasyon

Bağlama, function.json dosyasında ayarladığınız bu yapılandırma özelliklerini destekler.

Mülkiyet Açıklama
türü semanticSearcholmalıdır.
yön inolmalıdır.
isim Giriş bağlamasının adı.
searchConnectionName Bağlantı dizesi değeri içeren bir uygulama ayarının veya ortam değişkeninin adını alır veya ayarlar. Bu özellik bağlama ifadelerini destekler.
koleksiyon Aranacak koleksiyonun, tablonun veya dizinin adı. Bu özellik bağlama ifadelerini destekler.
sorgu Arama için kullanılacak anlamsal sorgu metni. Bu özellik bağlama ifadelerini destekler.
embeddingsModel İsteğe bağlı. Eklemeler için kullanılacak modelin kimliği. Varsayılan değer şudur: text-embedding-3-small. Bu özellik bağlama ifadelerini destekler.
chatModel İsteğe bağlı. Sohbet yanıtları için çağrılacak Büyük Dil Modelinin adını alır veya ayarlar. Varsayılan değer şudur: gpt-3.5-turbo. Bu özellik bağlama ifadelerini destekler.
aiConnectionName İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın.
systemPrompt İsteğe bağlı. Büyük dil modelinin sorulduğunda kullanılacak sistem istemini alır veya ayarlar. Sistem istemi, sonucu Queryolarak getirilen bilgilerle eklenir. Birleştirilmiş istem OpenAI Sohbet API'sine gönderilir. Bu özellik bağlama ifadelerini destekler.
maxKnowledgeCount İsteğe bağlı. içine SystemPromptekleneceğiniz bilgi öğelerinin sayısını alır veya ayarlar.
isReasoningModel İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false.

Konfigürasyon

Bağlama, kodunuzda tanımlanan şu özellikleri destekler:

Mülkiyet Açıklama
searchConnectionName bağlantı dizesi değerini içeren bir uygulama ayarının veya ortam değişkeninin adı. Bu özellik bağlama ifadelerini destekler.
koleksiyon Aranacak koleksiyonun, tablonun veya dizinin adı. Bu özellik bağlama ifadelerini destekler.
sorgu Arama için kullanılacak anlamsal sorgu metni. Bu özellik bağlama ifadelerini destekler.
embeddingsModel İsteğe bağlı. Eklemeler için kullanılacak modelin kimliği. Varsayılan değer şudur: text-embedding-3-small. Bu özellik bağlama ifadelerini destekler.
chatModel İsteğe bağlı. Sohbet yanıtları için çağrılacak Büyük Dil Modelinin adını alır veya ayarlar. Varsayılan değer şudur: gpt-3.5-turbo. Bu özellik bağlama ifadelerini destekler.
aiConnectionName İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın.
systemPrompt İsteğe bağlı. Büyük dil modelinin sorulduğunda kullanılacak sistem istemini alır veya ayarlar. Sistem istemi, sonucu Queryolarak getirilen bilgilerle eklenir. Birleştirilmiş istem OpenAI Sohbet API'sine gönderilir. Bu özellik bağlama ifadelerini destekler.
maxKnowledgeCount İsteğe bağlı. içine SystemPromptekleneceğiniz bilgi öğelerinin sayısını alır veya ayarlar.
isReasoningModel İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false.

Kullanım

Tam örnekler için Örnek bölümüne bakın.