Naslaginformatie over Azure OpenAI op uw gegevens-API
Dit artikel bevat referentiedocumentatie voor Python en REST voor de nieuwe Azure OpenAI On Your Data API. De nieuwste API-versie is 2024-05-01-preview
Swagger spec.
Notitie
Sinds de API-versie 2024-02-15-preview
zijn de volgende belangrijke wijzigingen geïntroduceerd, vergeleken met eerdere API-versies:
- Het API-pad wordt gewijzigd van
/extensions/chat/completions
in/chat/completions
. - De naamconventie van eigenschapssleutels en opsommingswaarden wordt gewijzigd van kameelbehuizing tot slangenbehuizing. Voorbeeld:
deploymentName
wordt gewijzigd indeployment_name
. - Het gegevensbrontype
AzureCognitiveSearch
wordt gewijzigd inazure_search
. - De bronvermeldingen en intenties worden verplaatst van de contexthulpmiddelberichten van het assistentbericht naar het contexthoofdniveau van het assistentbericht, waarbij expliciet schema is gedefinieerd.
POST {endpoint}/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}
Ondersteunde versies
2024-02-15-preview
Swagger spec.2024-02-01
Swagger spec.2024-05-01-preview
Swagger-specificatie
Notitie
Azure Machine Learning-indexen, Pinecone en Elasticsearch worden ondersteund als preview.
URI-parameters
Naam | In | Type | Vereist | Beschrijving |
---|---|---|---|---|
deployment-id |
path | tekenreeks | Waar | Hiermee geeft u de implementatienaam van het chat-voltooiingsmodel op die voor deze aanvraag moet worden gebruikt. |
endpoint |
path | tekenreeks | Waar | Azure OpenAI-eindpunten. Bijvoorbeeld: https://{YOUR_RESOURCE_NAME}.openai.azure.com |
api-version |
query | tekenreeks | Waar | De API-versie die voor deze bewerking moet worden gebruikt. |
Aanvraagtekst
De aanvraagbody neemt hetzelfde schema over van de API-aanvraag voor voltooiing van chats. In deze tabel ziet u de parameters die uniek zijn voor Azure OpenAI op uw gegevens.
Name | Type | Vereist | Beschrijving |
---|---|---|---|
data_sources |
DataSource[] | Waar | De configuratievermeldingen voor Azure OpenAI op uw gegevens. Er moet precies één element in de matrix zijn. Als data_sources dit niet het geval is, gebruikt de service het model voor chatvoltooiingen rechtstreeks en maakt deze geen gebruik van Azure OpenAI op uw gegevens. Wanneer u de data_sources parameter opgeeft, kunt u de logprobs of top_logprobs parameters niet gebruiken. |
Hoofdtekst van de reactie
De hoofdtekst van het antwoord neemt hetzelfde schema over van het voltooien van chats API-antwoord. Het antwoordchatbericht heeft een context
eigenschap die wordt toegevoegd voor Azure OpenAI On Your Data.
Chatbericht
Het berichtschema van de antwoordassistent neemt het chatbericht over van de chatvoltooiingsassistent en wordt uitgebreid met de eigenschapcontext
.
Name | Type | Vereist | Beschrijving |
---|---|---|---|
context |
Context | Onwaar | Vertegenwoordigt de incrementele stappen die door de Azure OpenAI op uw gegevens worden uitgevoerd tijdens het verwerken van de aanvraag, inclusief de opgehaalde documenten. |
Context
Name | Type | Vereist | Beschrijving |
---|---|---|---|
citations |
Bronvermelding[] | Onwaar | Het resultaat van het ophalen van de gegevensbron, dat wordt gebruikt om het assistentbericht in het antwoord te genereren. Clients kunnen verwijzingen uit de bronvermeldingen weergeven. |
intent |
tekenreeks | Onwaar | De gedetecteerde intentie uit de chatgeschiedenis. Het doorgeven van de vorige intentie is niet meer nodig. Deze eigenschap negeren. |
all_retrieved_documents |
Opgehaalde documenten[] | Onwaar | Alle opgehaalde documenten. |
Gegevensvermelding
Name | Type | Vereist | Beschrijving |
---|---|---|---|
content |
tekenreeks | Waar | De inhoud van de bronvermelding. |
title |
tekenreeks | Onwaar | De titel van de bronvermelding. |
url |
tekenreeks | Onwaar | De URL van de bronvermelding. |
filepath |
tekenreeks | Onwaar | Het bestandspad van de bronvermelding. |
chunk_id |
tekenreeks | Onwaar | De segment-id van de bronvermelding. |
Opgehaalde documenten
Name | Type | Vereist | Beschrijving |
---|---|---|---|
search_queries |
tekenreeks[] | Waar | De zoekquery's die worden gebruikt om het document op te halen. |
data_source_index |
geheel getal | Waar | De index van de gegevensbron. |
original_search_score |
dubbel | Waar | De oorspronkelijke zoekscore van het opgehaalde document. |
rerank_score |
dubbel | Onwaar | De herrankingsscore van het opgehaalde document. |
filter_reason |
tekenreeks | Onwaar | Vertegenwoordigt de logica voor het filteren van het document. Als het document geen filter ondergaat, blijft dit veld uitgeschakeld. Dit is score als het document wordt gefilterd op de oorspronkelijke drempelwaarde voor de zoekscore die is gedefinieerd door strictness . Dit is rerank als het document niet wordt gefilterd op de oorspronkelijke drempelwaarde voor de zoekscore, maar wordt gefilterd op herrankingsscore en top_n_documents . |
Gegevensbron
In deze lijst worden de ondersteunde gegevensbronnen weergegeven.
- Azure AI Search
- Azure Cosmos DB voor MongoDB vCore
- Azure Machine Learning-index (preview)
- Elasticsearch (preview)
- Pinecone (preview)
Voorbeelden
In dit voorbeeld ziet u hoe u de gespreksgeschiedenis doorgeeft voor betere resultaten.
Vereisten:
- Configureer de roltoewijzingen van het Azure OpenAI-systeem dat aan de Azure Search-service is toegewezen. Vereiste rollen:
Search Index Data Reader
,Search Service Contributor
. - Configureer de roltoewijzingen van de gebruiker naar de Azure OpenAI-resource. Vereiste rol:
Cognitive Services OpenAI User
. - Installeer Az CLI en voer deze uit
az login
. - Definieer de volgende omgevingsvariabelen:
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
Installeer de nieuwste pip-pakketten openai
, 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://cognitiveservices.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)