Associazione di input di ricerca semantica OpenAI di Azure per Funzioni di Azure

Importante

L'estensione Azure OpenAI per Funzioni di Azure è attualmente in anteprima.

L'associazione di input di ricerca semantica Azure OpenAI consente di usare la ricerca semantica negli incorporamenti.

Per informazioni sull'installazione e la configurazione dell'estensione Azure OpenAI, vedere Estensioni Azure OpenAI per Funzioni di Azure. Per altre informazioni sulla classificazione semantica in Ricerca di intelligenza artificiale di Azure, vedere Classificazione semantica in Ricerca di intelligenza artificiale di Azure.

Nota

I riferimenti e gli esempi vengono forniti solo per il modello Node.js v4.

Nota

I riferimenti e gli esempi vengono forniti solo per il modello Python v2.

Nota

Anche se sono supportati entrambi i modelli di processo C#, vengono forniti solo esempi di modelli di lavoro isolati.

Esempio

In questo esempio viene illustrato come eseguire una ricerca semantica in un 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" };
    }
}

In questo esempio viene illustrato come eseguire una ricerca semantica in un file.

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

Gli esempi non sono ancora disponibili.

In questo esempio viene illustrato come eseguire una ricerca semantica in un file.

    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.

In questo esempio viene illustrato come eseguire una ricerca semantica in un file.

Ecco il file function.json per richiedere un file:

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

Per altre informazioni sulle proprietà dei file function.json, vedere la sezione configurazione.

using namespace System.Net

param($Request, $TriggerMetadata, $SemanticSearchInput)

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

Gli esempi non sono ancora disponibili.

Attributi

Applicare l'attributo SemanticSearchInput per definire un'associazione di input di ricerca semantica, che supporta questi parametri:

Parametro Descrizione
ConnectionName Nome di un'impostazione dell'app o di una variabile di ambiente che contiene il valore della stringa di connessione. Questa proprietà supporta le espressioni di associazione.
Raccolta Nome della raccolta, della tabella o dell'indice da cercare. Questa proprietà supporta le espressioni di associazione.
Query Testo della query semantica da usare per la ricerca. Questa proprietà supporta le espressioni di associazione.
EmbeddingsModel ID del modello da usare per gli incorporamenti. Il valore predefinito è text-embedding-3-small. Questa proprietà supporta le espressioni di associazione.
ChatModel Ottiene o imposta il nome del modello linguistico di grandi dimensioni da richiamare per le risposte di chat. Il valore predefinito è gpt-3.5-turbo. Questa proprietà supporta le espressioni di associazione.
SystemPrompt Facoltativo. Ottiene o imposta il prompt di sistema da utilizzare per richiedere il modello linguistico di grandi dimensioni. Il prompt di sistema viene aggiunto con le informazioni recuperate in seguito a Query. Il prompt combinato viene inviato all'API Chat OpenAI. Questa proprietà supporta le espressioni di associazione.
MaxKnowledgeCount Facoltativo. Ottiene o imposta il numero delle voci della knowledge base da inserire in SystemPrompt.

Annotazioni

L'annotazione SemanticSearchInput consente di definire un'associazione di input di ricerca semantica, che supporta questi parametri:

Elemento Descrizione
name Ottiene o imposta il nome del binding di input.
connectionName Nome di un'impostazione dell'app o di una variabile di ambiente che contiene il valore della stringa di connessione. Questa proprietà supporta le espressioni di associazione.
collection Nome della raccolta, della tabella o dell'indice da cercare. Questa proprietà supporta le espressioni di associazione.
query Testo della query semantica da usare per la ricerca. Questa proprietà supporta le espressioni di associazione.
embeddingsModel ID del modello da usare per gli incorporamenti. Il valore predefinito è text-embedding-3-small. Questa proprietà supporta le espressioni di associazione.
chatModel Ottiene o imposta il nome del modello linguistico di grandi dimensioni da richiamare per le risposte di chat. Il valore predefinito è gpt-3.5-turbo. Questa proprietà supporta le espressioni di associazione.
systemPrompt Facoltativo. Ottiene o imposta il prompt di sistema da utilizzare per richiedere il modello linguistico di grandi dimensioni. Il prompt di sistema viene aggiunto con le informazioni recuperate in seguito a Query. Il prompt combinato viene inviato all'API Chat OpenAI. Questa proprietà supporta le espressioni di associazione.
maxKnowledgeCount Facoltativo. Ottiene o imposta il numero delle voci della knowledge base da inserire in SystemPrompt.

Elementi Decorator

Durante l'anteprima, definire l'associazione di input come associazione generic_input_binding di tipo semanticSearch, che supporta questi parametri:

Parametro Descrizione
arg_name Nome della variabile che rappresenta il parametro di associazione.
connection_name Nome di un'impostazione dell'app o di una variabile di ambiente che contiene il valore della stringa di connessione. Questa proprietà supporta le espressioni di associazione.
collection Nome della raccolta, della tabella o dell'indice da cercare. Questa proprietà supporta le espressioni di associazione.
query Testo della query semantica da usare per la ricerca. Questa proprietà supporta le espressioni di associazione.
embeddings_model ID del modello da usare per gli incorporamenti. Il valore predefinito è text-embedding-3-small. Questa proprietà supporta le espressioni di associazione.
chat_model Ottiene o imposta il nome del modello linguistico di grandi dimensioni da richiamare per le risposte di chat. Il valore predefinito è gpt-3.5-turbo. Questa proprietà supporta le espressioni di associazione.
system_prompt Facoltativo. Ottiene o imposta il prompt di sistema da utilizzare per richiedere il modello linguistico di grandi dimensioni. Il prompt di sistema viene aggiunto con le informazioni recuperate in seguito a Query. Il prompt combinato viene inviato all'API Chat OpenAI. Questa proprietà supporta le espressioni di associazione.
max_knowledge_count Facoltativo. Ottiene o imposta il numero delle voci della knowledge base da inserire in SystemPrompt.

Impostazione

L'associazione supporta queste proprietà di configurazione impostate nel file function.json.

Proprietà Descrizione
type Deve essere semanticSearch.
direction Deve essere in.
name Nome dell'associazione di input.
connectionName Ottiene o imposta il nome di un'impostazione dell'app o di una variabile di ambiente che contiene un valore della stringa di connessione. Questa proprietà supporta le espressioni di associazione.
collection Nome della raccolta, della tabella o dell'indice da cercare. Questa proprietà supporta le espressioni di associazione.
query Testo della query semantica da usare per la ricerca. Questa proprietà supporta le espressioni di associazione.
embeddingsModel ID del modello da usare per gli incorporamenti. Il valore predefinito è text-embedding-3-small. Questa proprietà supporta le espressioni di associazione.
chatModel Ottiene o imposta il nome del modello linguistico di grandi dimensioni da richiamare per le risposte di chat. Il valore predefinito è gpt-3.5-turbo. Questa proprietà supporta le espressioni di associazione.
systemPrompt Facoltativo. Ottiene o imposta il prompt di sistema da utilizzare per richiedere il modello linguistico di grandi dimensioni. Il prompt di sistema viene aggiunto con le informazioni recuperate in seguito a Query. Il prompt combinato viene inviato all'API Chat OpenAI. Questa proprietà supporta le espressioni di associazione.
maxKnowledgeCount Facoltativo. Ottiene o imposta il numero delle voci della knowledge base da inserire in SystemPrompt.

Impostazione

Il binding supporta queste proprietà, definite nel codice:

Proprietà Descrizione
connectionName Nome di un'impostazione dell'app o di una variabile di ambiente che contiene il valore della stringa di connessione. Questa proprietà supporta le espressioni di associazione.
collection Nome della raccolta, della tabella o dell'indice da cercare. Questa proprietà supporta le espressioni di associazione.
query Testo della query semantica da usare per la ricerca. Questa proprietà supporta le espressioni di associazione.
embeddingsModel ID del modello da usare per gli incorporamenti. Il valore predefinito è text-embedding-3-small. Questa proprietà supporta le espressioni di associazione.
chatModel Ottiene o imposta il nome del modello linguistico di grandi dimensioni da richiamare per le risposte di chat. Il valore predefinito è gpt-3.5-turbo. Questa proprietà supporta le espressioni di associazione.
systemPrompt Facoltativo. Ottiene o imposta il prompt di sistema da utilizzare per richiedere il modello linguistico di grandi dimensioni. Il prompt di sistema viene aggiunto con le informazioni recuperate in seguito a Query. Il prompt combinato viene inviato all'API Chat OpenAI. Questa proprietà supporta le espressioni di associazione.
maxKnowledgeCount Facoltativo. Ottiene o imposta il numero delle voci della knowledge base da inserire in SystemPrompt.

Utilizzo

Per esempi completi, vedere la sezione di esempio.