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.

Not

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

Not

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

Not

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.


public class EmbeddingsStoreOutputResponse
{
    [EmbeddingsStoreOutput("{url}", InputType.Url, "AISearchEndpoint", "openai-index", Model = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%")]
    public required SearchableDocument SearchableDocument { get; init; }

    public IActionResult? HttpResponse { get; set; }
}

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

        return searchableDocument;
    }

}

@FunctionName("PromptFile")
public HttpResponseMessage promptFile(
    @HttpTrigger(
        name = "req", 
        methods = {HttpMethod.POST},
        authLevel = AuthorizationLevel.ANONYMOUS)
        HttpRequestMessage<SemanticSearchRequest> request,
    @SemanticSearch(name = "search", connectionName = "AISearchEndpoint", collection = "openai-index", query = "{prompt}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", embeddingsModel = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%" ) String semanticSearchContext,
    final ExecutionContext context) {
        String response = new JSONObject(semanticSearchContext).getString("Response");

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",
      "connectionName": "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
    })

Örnekler henüz kullanılamıyor.

Özellikler

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

Parametre Tanım
ConnectionName 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 Eklemeler için kullanılacak modelin kimliği. Varsayılan değer şudur: text-embedding-3-small. Bu özellik bağlama ifadelerini destekler.
ChatModel 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.
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.

Ek Açıklamalar

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

Öğe Açıklama
ad Giriş bağlamasının adını alır veya ayarlar.
connectionName 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.
query Arama için kullanılacak anlamsal sorgu metni. Bu özellik bağlama ifadelerini destekler.
embeddingsModel Eklemeler için kullanılacak modelin kimliği. Varsayılan değer şudur: text-embedding-3-small. Bu özellik bağlama ifadelerini destekler.
chatModel 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.
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.

Dekoratörler

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

Parametre Açıklama
arg_name Bağlama parametresini temsil eden değişkenin adı.
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.
query Arama için kullanılacak anlamsal sorgu metni. Bu özellik bağlama ifadelerini destekler.
embeddings_model 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 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.
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.

Yapılandırma

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

Özellik Açıklama
type olmalıdır semanticSearch.
direction olmalıdır in.
ad Giriş bağlamasının adı.
connectionName 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.
query Arama için kullanılacak anlamsal sorgu metni. Bu özellik bağlama ifadelerini destekler.
embeddingsModel Eklemeler için kullanılacak modelin kimliği. Varsayılan değer şudur: text-embedding-3-small. Bu özellik bağlama ifadelerini destekler.
chatModel 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.
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.

Yapılandırma

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

Özellik Açıklama
connectionName 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.
query Arama için kullanılacak anlamsal sorgu metni. Bu özellik bağlama ifadelerini destekler.
embeddingsModel Eklemeler için kullanılacak modelin kimliği. Varsayılan değer şudur: text-embedding-3-small. Bu özellik bağlama ifadelerini destekler.
chatModel 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.
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.

Kullanım

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