Delen via


Azure OpenAI Semantic Search Input Binding voor Azure Functions

Belangrijk

De Azure OpenAI-extensie voor Azure Functions is momenteel in preview.

Met de semantische zoekinvoerbinding van Azure OpenAI kunt u semantische zoekopdrachten gebruiken voor uw insluitingen.

Zie Azure OpenAI-extensies voor Azure Functions voor informatie over de installatie en configuratie van de Azure OpenAI-extensie. Zie Semantische rangschikking in Azure AI Search voor meer informatie over semantische rangschikking in Azure AI Search.

Notitie

Verwijzingen en voorbeelden worden alleen verstrekt voor het Node.js v4-model.

Notitie

Verwijzingen en voorbeelden worden alleen verstrekt voor het Python v2-model.

Notitie

Hoewel beide C#-procesmodellen worden ondersteund, worden alleen geïsoleerde werkrolmodelvoorbeelden gegeven.

Opmerking

In dit voorbeeld ziet u hoe u een semantische zoekopdracht uitvoert op een bestand.


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

In dit voorbeeld ziet u hoe u een semantische zoekopdracht uitvoert op een bestand.

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

In dit voorbeeld ziet u hoe u een semantische zoekopdracht uitvoert op een bestand.

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

In dit voorbeeld ziet u hoe u een semantische zoekopdracht uitvoert op een bestand.

Dit is het function.json-bestand om een bestand te vragen:

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

Zie de sectie Configuratie voor meer informatie over function.json bestandseigenschappen.

using namespace System.Net

param($Request, $TriggerMetadata, $SemanticSearchInput)

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

Voorbeelden zijn nog niet beschikbaar.

Kenmerken

Pas het SemanticSearchInput kenmerk toe om een semantische zoekinvoerbinding te definiëren, die ondersteuning biedt voor deze parameters:

Parameter Omschrijving
ConnectionName De naam van een app-instelling of omgevingsvariabele die de verbindingsreeks waarde bevat. Deze eigenschap ondersteunt bindingexpressies.
Verzameling De naam van de verzameling of tabel of index die u wilt zoeken. Deze eigenschap ondersteunt bindingexpressies.
Query De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies.
EmbeddingsModel De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small. Deze eigenschap ondersteunt bindingexpressies.
ChatModel Hiermee wordt de naam van het grote taalmodel opgehaald of ingesteld om aan te roepen voor chatantwoorden. De standaardwaarde is gpt-3.5-turbo. Deze eigenschap ondersteunt bindingexpressies.
SystemPrompt Optioneel. Hiermee wordt de systeemprompt opgevraagd of ingesteld voor het vragen om het grote taalmodel. De systeemprompt wordt toegevoegd met kennis die wordt opgehaald als gevolg van de Query. De gecombineerde prompt wordt verzonden naar de OpenAI Chat-API. Deze eigenschap ondersteunt bindingexpressies.
MaxKnowledgeCount Optioneel. Hiermee haalt of stelt u het aantal kennisitems in dat SystemPromptmoet worden ingevoerd.

Aantekeningen

SemanticSearchInput Met de aantekening kunt u een semantische zoekinvoerbinding definiëren, die deze parameters ondersteunt:

Element Description
name Hiermee haalt u de naam van de invoerbinding op of stelt u deze in.
connectionName De naam van een app-instelling of omgevingsvariabele die de verbindingsreeks waarde bevat. Deze eigenschap ondersteunt bindingexpressies.
collectie De naam van de verzameling of tabel of index die u wilt zoeken. Deze eigenschap ondersteunt bindingexpressies.
query De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies.
embeddingsModel De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small. Deze eigenschap ondersteunt bindingexpressies.
chatModel Hiermee wordt de naam van het grote taalmodel opgehaald of ingesteld om aan te roepen voor chatantwoorden. De standaardwaarde is gpt-3.5-turbo. Deze eigenschap ondersteunt bindingexpressies.
systemPrompt Optioneel. Hiermee wordt de systeemprompt opgevraagd of ingesteld voor het vragen om het grote taalmodel. De systeemprompt wordt toegevoegd met kennis die wordt opgehaald als gevolg van de Query. De gecombineerde prompt wordt verzonden naar de OpenAI Chat-API. Deze eigenschap ondersteunt bindingexpressies.
maxKnowledgeCount Optioneel. Hiermee haalt of stelt u het aantal kennisitems in dat SystemPromptmoet worden ingevoerd.

Decorators

Definieer tijdens de preview de invoerbinding als een generic_input_binding binding van het type semanticSearch, die ondersteuning biedt voor deze parameters:

Parameter Description
arg_name De naam van de variabele die de bindingsparameter vertegenwoordigt.
connection_name De naam van een app-instelling of omgevingsvariabele die de verbindingsreeks waarde bevat. Deze eigenschap ondersteunt bindingexpressies.
collectie De naam van de verzameling of tabel of index die u wilt zoeken. Deze eigenschap ondersteunt bindingexpressies.
query De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies.
embeddings_model De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small. Deze eigenschap ondersteunt bindingexpressies.
chat_model Hiermee wordt de naam van het grote taalmodel opgehaald of ingesteld om aan te roepen voor chatantwoorden. De standaardwaarde is gpt-3.5-turbo. Deze eigenschap ondersteunt bindingexpressies.
system_prompt Optioneel. Hiermee wordt de systeemprompt opgevraagd of ingesteld voor het vragen om het grote taalmodel. De systeemprompt wordt toegevoegd met kennis die wordt opgehaald als gevolg van de Query. De gecombineerde prompt wordt verzonden naar de OpenAI Chat-API. Deze eigenschap ondersteunt bindingexpressies.
max_knowledge_count Optioneel. Hiermee haalt of stelt u het aantal kennisitems in dat SystemPromptmoet worden ingevoerd.

Configuratie

De binding ondersteunt deze configuratie-eigenschappen die u in het function.json-bestand hebt ingesteld.

Eigenschappen Beschrijving
type Moet semanticSearch zijn.
direction Moet in zijn.
name De naam van de invoerbinding.
connectionName Hiermee haalt u de naam op van een app-instelling of omgevingsvariabele die een verbindingsreeks waarde bevat. Deze eigenschap ondersteunt bindingexpressies.
collectie De naam van de verzameling of tabel of index die u wilt zoeken. Deze eigenschap ondersteunt bindingexpressies.
query De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies.
embeddingsModel De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small. Deze eigenschap ondersteunt bindingexpressies.
chatModel Hiermee wordt de naam van het grote taalmodel opgehaald of ingesteld om aan te roepen voor chatantwoorden. De standaardwaarde is gpt-3.5-turbo. Deze eigenschap ondersteunt bindingexpressies.
systemPrompt Optioneel. Hiermee wordt de systeemprompt opgevraagd of ingesteld voor het vragen om het grote taalmodel. De systeemprompt wordt toegevoegd met kennis die wordt opgehaald als gevolg van de Query. De gecombineerde prompt wordt verzonden naar de OpenAI Chat-API. Deze eigenschap ondersteunt bindingexpressies.
maxKnowledgeCount Optioneel. Hiermee haalt of stelt u het aantal kennisitems in dat SystemPromptmoet worden ingevoerd.

Configuratie

De binding ondersteunt deze eigenschappen, die zijn gedefinieerd in uw code:

Eigenschappen Beschrijving
connectionName De naam van een app-instelling of omgevingsvariabele die de verbindingsreeks waarde bevat. Deze eigenschap ondersteunt bindingexpressies.
collectie De naam van de verzameling of tabel of index die u wilt zoeken. Deze eigenschap ondersteunt bindingexpressies.
query De semantische querytekst die moet worden gebruikt voor zoeken. Deze eigenschap ondersteunt bindingexpressies.
embeddingsModel De id van het model dat moet worden gebruikt voor insluitingen. De standaardwaarde is text-embedding-3-small. Deze eigenschap ondersteunt bindingexpressies.
chatModel Hiermee wordt de naam van het grote taalmodel opgehaald of ingesteld om aan te roepen voor chatantwoorden. De standaardwaarde is gpt-3.5-turbo. Deze eigenschap ondersteunt bindingexpressies.
systemPrompt Optioneel. Hiermee wordt de systeemprompt opgevraagd of ingesteld voor het vragen om het grote taalmodel. De systeemprompt wordt toegevoegd met kennis die wordt opgehaald als gevolg van de Query. De gecombineerde prompt wordt verzonden naar de OpenAI Chat-API. Deze eigenschap ondersteunt bindingexpressies.
maxKnowledgeCount Optioneel. Hiermee haalt of stelt u het aantal kennisitems in dat SystemPromptmoet worden ingevoerd.

Gebruik

Zie de sectie Voorbeeld voor volledige voorbeelden.