Udostępnij za pośrednictwem


Powiązanie danych wejściowych wyszukiwania semantycznego usługi Azure OpenAI dla usługi Azure Functions

Ważne

Rozszerzenie Azure OpenAI dla usługi Azure Functions jest obecnie dostępne w wersji zapoznawczej.

Powiązanie danych wejściowych wyszukiwania semantycznego usługi Azure OpenAI umożliwia korzystanie z semantycznego wyszukiwania na osadzanych elementach.

Aby uzyskać informacje na temat konfigurowania i konfigurowania rozszerzenia Azure OpenAI, zobacz Azure OpenAI extensions for Azure Functions (Rozszerzenia azure OpenAI dla usługi Azure Functions). Aby dowiedzieć się więcej na temat klasyfikacji semantycznej w usłudze Azure AI Search, zobacz Semantic ranking in Azure AI Search (Ranking semantyczny w usłudze Azure AI Search).

Uwaga

Odwołania i przykłady są udostępniane tylko dla modelu Node.js w wersji 4.

Uwaga

Odwołania i przykłady są udostępniane tylko dla modelu języka Python w wersji 2.

Uwaga

Chociaż oba modele procesów języka C# są obsługiwane, udostępniane są tylko izolowane przykłady modeli procesów roboczych.

Przykład

W tym przykładzie pokazano, jak przeprowadzić semantyczne wyszukiwanie w pliku.


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

W tym przykładzie pokazano, jak przeprowadzić semantyczne wyszukiwanie w pliku.

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

Przykłady nie są jeszcze dostępne.

W tym przykładzie pokazano, jak przeprowadzić semantyczne wyszukiwanie w pliku.

    type: 'embeddings',
    maxChunkLength: 512,
    model: '%EMBEDDING_MODEL_DEPLOYMENT_NAME%'
})

app.http('getEmbeddingsFilePath', {
    methods: ['POST'],
    route: 'embeddings-from-file',
    authLevel: 'function',
    extraInputs: [embeddingsFilePathInput],
    handler: async (request, context) => {
        let requestBody: EmbeddingsFilePath = await request.json();
        let response: any = context.extraInputs.get(embeddingsFilePathInput);

        context.log(
            `Received ${response.count} embedding(s) for input file ${requestBody.FilePath}.`
        );
        
        // TODO: Store the embeddings into a database or other storage.

W tym przykładzie pokazano, jak przeprowadzić semantyczne wyszukiwanie w pliku.

Oto plik function.json monitujący o plik:

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

Aby uzyskać więcej informacji na temat function.json właściwości pliku, zobacz sekcję Konfiguracja.

using namespace System.Net

param($Request, $TriggerMetadata, $SemanticSearchInput)

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

Przykłady nie są jeszcze dostępne.

Atrybuty

Zastosuj atrybut, SemanticSearchInput aby zdefiniować semantyczne powiązanie danych wejściowych wyszukiwania, które obsługuje następujące parametry:

Parametr opis
Nazwa połączenia Nazwa ustawienia aplikacji lub zmiennej środowiskowej zawierającej wartość parametry połączenia. Ta właściwość obsługuje wyrażenia powiązań.
Kolekcja Nazwa kolekcji lub tabeli lub indeksu do wyszukania. Ta właściwość obsługuje wyrażenia powiązań.
Zapytanie Semantyczny tekst zapytania do użycia do wyszukiwania. Ta właściwość obsługuje wyrażenia powiązań.
EmbeddingsModel Identyfikator modelu, który ma być używany do osadzania. Domyślna wartość to text-embedding-3-small. Ta właściwość obsługuje wyrażenia powiązań.
ChatModel Pobiera lub ustawia nazwę modelu dużego języka, który ma być wywoływany na potrzeby odpowiedzi na czat. Domyślna wartość to gpt-3.5-turbo. Ta właściwość obsługuje wyrażenia powiązań.
SystemPrompt Opcjonalne. Pobiera lub ustawia monit systemowy o monitowanie dużego modelu językowego. Monit systemowy jest dołączany z wiedzą, która jest pobierana w wyniku .Query Połączony monit jest wysyłany do interfejsu API czatu OpenAI. Ta właściwość obsługuje wyrażenia powiązań.
MaxKnowledgeCount Opcjonalne. Pobiera lub ustawia liczbę elementów wiedzy, które mają być wstrzykiwane do elementu SystemPrompt.

Adnotacje

Adnotacja SemanticSearchInput umożliwia zdefiniowanie semantycznego powiązania danych wejściowych wyszukiwania, które obsługuje następujące parametry:

Element opis
name Pobiera lub ustawia nazwę powiązania wejściowego.
connectionName Nazwa ustawienia aplikacji lub zmiennej środowiskowej zawierającej wartość parametry połączenia. Ta właściwość obsługuje wyrażenia powiązań.
kolekcja Nazwa kolekcji lub tabeli lub indeksu do wyszukania. Ta właściwość obsługuje wyrażenia powiązań.
query Semantyczny tekst zapytania do użycia do wyszukiwania. Ta właściwość obsługuje wyrażenia powiązań.
embeddingsModel Identyfikator modelu, który ma być używany do osadzania. Domyślna wartość to text-embedding-3-small. Ta właściwość obsługuje wyrażenia powiązań.
chatModel Pobiera lub ustawia nazwę modelu dużego języka, który ma być wywoływany na potrzeby odpowiedzi na czat. Domyślna wartość to gpt-3.5-turbo. Ta właściwość obsługuje wyrażenia powiązań.
systemPrompt Opcjonalne. Pobiera lub ustawia monit systemowy o monitowanie dużego modelu językowego. Monit systemowy jest dołączany z wiedzą, która jest pobierana w wyniku .Query Połączony monit jest wysyłany do interfejsu API czatu OpenAI. Ta właściwość obsługuje wyrażenia powiązań.
maxKnowledgeCount Opcjonalne. Pobiera lub ustawia liczbę elementów wiedzy, które mają być wstrzykiwane do elementu SystemPrompt.

Dekoratory

W wersji zapoznawczej zdefiniuj powiązanie wejściowe jako generic_input_binding powiązanie typu semanticSearch, które obsługuje następujące parametry:

Parametr Opis
arg_name Nazwa zmiennej reprezentującej parametr powiązania.
connection_name Nazwa ustawienia aplikacji lub zmiennej środowiskowej zawierającej wartość parametry połączenia. Ta właściwość obsługuje wyrażenia powiązań.
kolekcja Nazwa kolekcji lub tabeli lub indeksu do wyszukania. Ta właściwość obsługuje wyrażenia powiązań.
query Semantyczny tekst zapytania do użycia do wyszukiwania. Ta właściwość obsługuje wyrażenia powiązań.
embeddings_model Identyfikator modelu, który ma być używany do osadzania. Domyślna wartość to text-embedding-3-small. Ta właściwość obsługuje wyrażenia powiązań.
chat_model Pobiera lub ustawia nazwę modelu dużego języka, który ma być wywoływany na potrzeby odpowiedzi na czat. Domyślna wartość to gpt-3.5-turbo. Ta właściwość obsługuje wyrażenia powiązań.
system_prompt Opcjonalne. Pobiera lub ustawia monit systemowy o monitowanie dużego modelu językowego. Monit systemowy jest dołączany z wiedzą, która jest pobierana w wyniku .Query Połączony monit jest wysyłany do interfejsu API czatu OpenAI. Ta właściwość obsługuje wyrażenia powiązań.
max_knowledge_count Opcjonalne. Pobiera lub ustawia liczbę elementów wiedzy, które mają być wstrzykiwane do elementu SystemPrompt.

Konfigurowanie

Powiązanie obsługuje te właściwości konfiguracji ustawione w pliku function.json.

Właściwości Opis
type Musi mieć wartość semanticSearch.
direction Musi mieć wartość in.
name Nazwa powiązania wejściowego.
connectionName Pobiera lub ustawia nazwę ustawienia aplikacji lub zmiennej środowiskowej zawierającej wartość parametry połączenia. Ta właściwość obsługuje wyrażenia powiązań.
kolekcja Nazwa kolekcji lub tabeli lub indeksu do wyszukania. Ta właściwość obsługuje wyrażenia powiązań.
query Semantyczny tekst zapytania do użycia do wyszukiwania. Ta właściwość obsługuje wyrażenia powiązań.
embeddingsModel Identyfikator modelu, który ma być używany do osadzania. Domyślna wartość to text-embedding-3-small. Ta właściwość obsługuje wyrażenia powiązań.
chatModel Pobiera lub ustawia nazwę modelu dużego języka, który ma być wywoływany na potrzeby odpowiedzi na czat. Domyślna wartość to gpt-3.5-turbo. Ta właściwość obsługuje wyrażenia powiązań.
systemPrompt Opcjonalne. Pobiera lub ustawia monit systemowy o monitowanie dużego modelu językowego. Monit systemowy jest dołączany z wiedzą, która jest pobierana w wyniku .Query Połączony monit jest wysyłany do interfejsu API czatu OpenAI. Ta właściwość obsługuje wyrażenia powiązań.
maxKnowledgeCount Opcjonalne. Pobiera lub ustawia liczbę elementów wiedzy, które mają być wstrzykiwane do elementu SystemPrompt.

Konfigurowanie

Powiązanie obsługuje te właściwości zdefiniowane w kodzie:

Właściwości Opis
connectionName Nazwa ustawienia aplikacji lub zmiennej środowiskowej zawierającej wartość parametry połączenia. Ta właściwość obsługuje wyrażenia powiązań.
kolekcja Nazwa kolekcji lub tabeli lub indeksu do wyszukania. Ta właściwość obsługuje wyrażenia powiązań.
query Semantyczny tekst zapytania do użycia do wyszukiwania. Ta właściwość obsługuje wyrażenia powiązań.
embeddingsModel Identyfikator modelu, który ma być używany do osadzania. Domyślna wartość to text-embedding-3-small. Ta właściwość obsługuje wyrażenia powiązań.
chatModel Pobiera lub ustawia nazwę modelu dużego języka, który ma być wywoływany na potrzeby odpowiedzi na czat. Domyślna wartość to gpt-3.5-turbo. Ta właściwość obsługuje wyrażenia powiązań.
systemPrompt Opcjonalne. Pobiera lub ustawia monit systemowy o monitowanie dużego modelu językowego. Monit systemowy jest dołączany z wiedzą, która jest pobierana w wyniku .Query Połączony monit jest wysyłany do interfejsu API czatu OpenAI. Ta właściwość obsługuje wyrażenia powiązań.
maxKnowledgeCount Opcjonalne. Pobiera lub ustawia liczbę elementów wiedzy, które mają być wstrzykiwane do elementu SystemPrompt.

Użycie

Zobacz sekcję Przykład, aby zapoznać się z kompletnymi przykładami.