Chattare con il modello usando i propri dati

Completato

Rag con Azure OpenAI sui propri dati può essere usato in Azure AI Studio con il playground chat o usando l'API.

Poiché RAG con Azure OpenAI sui dati include i risultati della ricerca sull'indice nella richiesta, è importante comprenderne l'impatto sull'allocazione dei token. Ogni chiamata al modello include token per il messaggio di sistema, la richiesta utente, la cronologia delle conversazioni, i documenti di ricerca recuperati, le richieste interne e la risposta del modello.

Il messaggio di sistema, ad esempio, è un riferimento utile per le istruzioni per il modello ed è incluso in ogni chiamata. Anche se non esiste alcun limite di token per il messaggio di sistema, quando si usano i propri dati, il messaggio di sistema viene troncato se supera il limite di token del modello (che varia per modello, da 400 a 4000 token). Anche la risposta del modello viene limitata a 1500 token quando si usano i propri dati.

A causa di queste limitazioni dei token, è consigliabile limitare sia la lunghezza della domanda che la lunghezza della cronologia delle conversazioni nella chiamata. Le tecniche di progettazione delle richieste, ad esempio la suddivisione dell'attività e della catena di richieste, possono essere utili per consentire al modello di rispondere in modo più efficace.

Uso dell'API

Usando l'API con i propri dati, è necessario specificare l'origine dati in cui vengono archiviati i dati. Con ogni chiamata è necessario includere endpoint, key e indexName per la risorsa di Al Search.

Il corpo della richiesta è simile al codice JSON seguente.

{
    "dataSources": [
        {
            "type": "AzureCognitiveSearch",
            "parameters": {
                "endpoint": "<your_search_endpoint>",
                "key": "<your_search_endpoint>",
                "indexName": "<your_search_index>"
            }
        }
    ],
    "messages":[
        {
            "role": "system", 
            "content": "You are a helpful assistant assisting users with travel recommendations."
        },
        {
            "role": "user", 
            "content": "I want to go to New York. Where should I stay?"
        }
    ]
}

La chiamata quando si usano dati personalizzati deve essere inviata a un endpoint diverso da quello usato quando si chiama un modello di base, che include extensions. La chiamata verrà inviata a un URL simile al seguente.

<your_azure_openai_resource>/openai/deployments/<deployment_name>/chat/completions?api-version=<version>

La richiesta dovrà includere anche Content-Type e api-key.