Azure OpenAI On Your Data API Reference (classico)

Si applica solo a:Portale di Foundry (versione classica). Questo articolo non è disponibile per il nuovo portale foundry. Altre informazioni sul nuovo portale.

Note

I collegamenti in questo articolo potrebbero aprire contenuto nella nuova documentazione di Microsoft Foundry anziché nella documentazione di Foundry (versione classica) visualizzata.

Important

Azure OpenAI On Your Data è obsoleto e si avvicina al pensionamento.

Microsoft ha smesso di integrare nuovi modelli su Azure OpenAI On Your Data. Questa funzione supporta solo i seguenti modelli:

  • GPT-4o (versioni 2024-05-13, 2024-08-06 e 20-11-2024)
  • GPT-4o-mini (versione 2024-07-18) Una volta che questo modello viene ritirato, Azure tutti i endpoint OpenAI On Your Data API e i connettori di sorgenti dati supportati cessano di funzionare.

Consigliamo di migrare Azure carichi di lavoro OpenAI On Your Data verso Foundry Agent Service con Foundry IQ per recuperare contenuti e generare risposte concrete dai tuoi dati. Per iniziare, consulta la base di conoscenza di Collega un QI di Foundry.

Questo articolo fornisce documentazione di riferimento per Python e REST per la nuova API Azure OpenAI On Your Data. L'ultima versione API è 2024-05-01-previewSwagger spec.

Note

Dalla versione 2024-02-15-preview dell'API abbiamo introdotto i seguenti cambiamenti di impatto rispetto alle versioni precedenti dell'API:

  • Il percorso API viene cambiato da /extensions/chat/completions a /chat/completions.
  • La convenzione di denominazione delle chiavi di proprietà e dei valori di enum viene cambiata da camel casing a snake casing. Esempio: deploymentName viene cambiato in deployment_name.
  • Il tipo AzureCognitiveSearch di sorgente dati viene cambiato in azure_search.
  • Le citazioni e l'intento vengono spostati dai messaggi dello strumento contestuale del messaggio assistente al livello radice contestuale del messaggio assistente con uno schema esplicito definito.
POST {endpoint}/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}

Supported versions

Note

Pinecone ed Elasticsearch sono supportati come anteprima.

URI parameters

Name In Type Required Description
deployment-id path string True Specifica il nome del modello di distribuzione delle chat completions da utilizzare per questa richiesta.
endpoint path string True Azure OpenAI endpoint. Ad esempio: https://{YOUR_RESOURCE_NAME}.openai.azure.com
api-version query string True Versione dell'API da usare per questa operazione.

Request body

Il corpo della richiesta eredita lo stesso schema di completamento delle chat API request. Questa tabella mostra i parametri unici per Azure OpenAI sui tuoi dati.

Name Type Required Description
data_sources DataSource[] True Le voci di configurazione per Azure OpenAI sui tuoi dati. Deve esserci esattamente un elemento nell'array. Se non viene fornito data_sources, il servizio utilizza direttamente il modello di completamento delle chat e non utilizza Azure OpenAI sui tuoi dati. Quando specifichi il data_sources parametro, non potrai usare i logprobs parametri o top_logprobs .

Response body

Il corpo della risposta eredita lo stesso schema di completamento delle chat API response. Il messaggio response chat ha una proprietà context, che viene aggiunta per Azure OpenAI On Your Data.

Chat message

Lo schema del messaggio dell'assistente risposta eredita dal messaggio chat delle completazioni della chat dell'assistente, ed è esteso con la proprietà context.

Name Type Required Description
context Context False Rappresenta i passaggi incrementali eseguiti da Azure OpenAI On Your Data durante l'elaborazione della richiesta, inclusi i documenti recuperati.

Context

Name Type Required Description
citations Citation[] False Il risultato del recupero della sorgente dati, utilizzato per generare il messaggio assistente nella risposta. I clienti possono fornire riferimenti dalle citazioni.
intent string False L'intento rilevato dalla cronologia della chat. Non è più necessario riportare indietro l'intento precedente. Ignora questa proprietà.
all_retrieved_documents Retrieved documents[] False Tutti i documenti recuperati.

Citation

Name Type Required Description
content string True Il contenuto della citazione.
title string False Il titolo della citazione.
url string False L'URL della citazione.
filepath string False Il percorso del file della citazione.
chunk_id string False L'ID del blocco della citazione.

Retrieved documents

Name Type Required Description
search_queries string[] True Le query di ricerca utilizzate per recuperare il documento.
data_source_index integer True L'indice della fonte dati.
original_search_score double True Il punteggio originale della ricerca del documento recuperato.
rerank_score double False Il punteggio di riclassificazione del documento recuperato.
filter_reason string False Rappresenta la motivazione per filtrare il documento. Se il documento non viene sottoposto a filtraggio, questo campo rimarrà inattivato. Sarà score se il documento è filtrato dalla soglia di punteggio di ricerca originale definita da strictness. Sarà rerank se il documento non è filtrato dalla soglia originale del punteggio di ricerca, ma è filtrato dal punteggio di riclassificazione e top_n_documents.

Data source

Questa lista mostra le fonti di dati supportate.

Examples

Questo esempio mostra come superare la cronologia delle conversazioni per risultati migliori.

Prerequisites:

  • Configura le assegnazioni dei ruoli dal sistema Azure OpenAI assegnato l'identità gestita al servizio di ricerca Azure. Ruoli richiesti: Search Index Data Reader, Search Service Contributor.
  • Configura le assegnazioni dei ruoli dall'utente alla risorsa Azure OpenAI. Ruolo richiesto: Cognitive Services OpenAI User.
  • Installa Az CLI e esegui az login.
  • Definisci le seguenti variabili ambientali: AzureOpenAIEndpoint, ChatCompletionsDeploymentName,SearchEndpoint, SearchIndex.
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export SearchEndpoint=https://example.search.windows.net
export SearchIndex=example-index

Installa gli ultimi pacchetti openaipip , azure-identity.

import os
from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

endpoint = os.environ.get("AzureOpenAIEndpoint")
deployment = os.environ.get("ChatCompletionsDeploymentName")
search_endpoint = os.environ.get("SearchEndpoint")
search_index = os.environ.get("SearchIndex")

token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://ai.azure.com/.default")

client = AzureOpenAI(
    azure_endpoint=endpoint,
    azure_ad_token_provider=token_provider,
    api_version="2024-05-01-preview",
)

completion = client.chat.completions.create(
    model=deployment,
    messages=[
        {
            "role": "user",
            "content": "Who is DRI?",
        },
        {
            "role": "assistant",
            "content": "DRI stands for Directly Responsible Individual of a service. Which service are you asking about?"
        },
        {
            "role": "user",
            "content": "Opinion mining service"
        }
    ],
    extra_body={
        "data_sources": [
            {
                "type": "azure_search",
                "parameters": {
                    "endpoint": search_endpoint,
                    "index_name": search_index,
                    "authentication": {
                        "type": "system_assigned_managed_identity"
                    }
                }
            }
        ]
    }
)

print(completion.model_dump_json(indent=2))

# render the citations

content = completion.choices[0].message.content
context = completion.choices[0].message.context
for citation_index, citation in enumerate(context["citations"]):
    citation_reference = f"[doc{citation_index + 1}]"
    url = "https://example.com/?redirect=" + citation["url"] # replace with actual host and encode the URL
    filepath = citation["filepath"]
    title = citation["title"]
    snippet = citation["content"]
    chunk_id = citation["chunk_id"]
    replaced_html = f"<a href='{url}' title='{title}\n{snippet}''>(See from file {filepath}, Part {chunk_id})</a>"
    content = content.replace(citation_reference, replaced_html)
print(content)