Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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/completionsa/chat/completions. - La convenzione di denominazione delle chiavi di proprietà e dei valori di enum viene cambiata da camel casing a snake casing. Esempio:
deploymentNameviene cambiato indeployment_name. - Il tipo
AzureCognitiveSearchdi sorgente dati viene cambiato inazure_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
-
2024-02-15-previewSwagger specifica. -
2024-02-01Swagger specifica. - specifica
2024-05-01-previewSwagger
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)