Referência da API do OpenAI do Azure em seus dados
Este artigo fornece documentação de referência para Python e REST para a nova API do Azure OpenAI On Your Data Python e API REST. A versão mais recente da API é 2024-02-01
Especificações do Swagger.
Observação
Como a versão da API 2024-02-15-preview
introduzimos as seguintes alterações significativas em comparação com as versões anteriores da API:
- O caminho da API é alterado de
/extensions/chat/completions
para/chat/completions
. - A convenção de nomenclatura de chaves de propriedade e valores de enumeração é alterada de casing de camelo para casing de cobra. Exemplo:
deploymentName
é alterado paradeployment_name
. - O tipo de fonte de dados
AzureCognitiveSearch
é alterado paraazure_search
. - As citações e a intenção são movidas das mensagens de ferramenta de contexto da mensagem de assistente para o nível raiz de contexto da mensagem de assistente com o esquema explícito definido.
POST {endpoint}/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}
Versões com suporte
2024-02-15-preview
Especificações do Swagger.2024-02-01
Especificações do Swagger.
Observação
Os índices de aprendizado de máquina do Azure,Pinecone e Elasticsearch são suportados apenas na versão 2024-02-15-preview
API como uma versão prévia.
Parâmetros do URI
Nome | Em | Tipo | Obrigatória | Descrição |
---|---|---|---|---|
deployment-id |
caminho | string | Verdadeiro | Especifica o nome de implantação do modelo de conclusões de chat a ser usado para essa solicitação. |
endpoint |
caminho | string | Verdadeiro | Pontos de extremidade do Azure OpenAI. Por exemplo: https://{YOUR_RESOURCE_NAME}.openai.azure.com |
api-version |
consulta | string | Verdadeiro | A versão da API a ser usada para esta operação. |
Corpo da solicitação
O corpo da solicitação herda o mesmo esquema da solicitação de API de conclusões de chat. Esta tabela mostra os parâmetros exclusivos para o Azure OpenAI On Your Data.
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
data_sources |
DataSource[] | Verdadeiro | As entradas de configuração do Azure OpenAI On Your Data. Deve haver exatamente um elemento na matriz. Se data_sources não for fornecido, o serviço usará diretamente o modelo de conclusão de chat e não usará o Azure OpenAI On Your Data. |
Corpo da resposta
O corpo da resposta herda o mesmo esquema de resposta da API de conclusões de chat. A mensagem de chat de resposta tem uma propriedade context
, que é adicionada ao Azure OpenAI On Your Data.
Mensagem de chat
O esquema de mensagem do assistente de resposta herda do assistente de conclusão de chat mensagem de chat e é estendido com a propriedadecontext
.
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
context |
Contexto | Falso | Representa as etapas incrementais executadas pelo Azure OpenAI On Your Data durante o processamento da solicitação, incluindo os documentos recuperados. |
Context
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
citations |
Citation[] | Falso | O resultado da recuperação da fonte de dados, usado para gerar a mensagem do assistente na resposta. Os clientes podem renderizar referências das citações. |
intent |
string | Falso | A intenção detectada no histórico de chat. Não é mais necessário transmitir a intenção anterior. Ignore esta propriedade. |
Citação
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
content |
string | Verdadeiro | O conteúdo da citação. |
title |
string | Falso | O título da citação. |
url |
string | Falso | A URL da citação. |
filepath |
string | Falso | O caminho do arquivo da citação. |
chunk_id |
string | Falso | A ID da parte da citação. |
Fonte de dados
Esta lista mostra as fontes de dados com suporte.
- Azure AI Search
- Azure Cosmos DB para MongoDB vCore
- Índice do Azure Machine Learning (versão prévia)
- Elasticsearch (versão prévia)
- Pinecone (versão prévia)
Exemplos
Esse exemplo mostra como passar o histórico de conversas para obter melhores resultados.
Pré-requisitos:
- Configure as atribuições de função da identidade gerenciada atribuída pelo sistema Azure OpenAI ao serviço de pesquisa do Azure. Funções necessárias:
Search Index Data Reader
,Search Service Contributor
. - Configure as atribuições de função do usuário para o recurso do Azure OpenAI. Função necessária:
Cognitive Services OpenAI User
. - Instale CLI do Azure e execute
az login
. - Defina as seguintes variáveis de ambiente:
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
Instale os pacotes pip openai
e azure-identity
mais recentes.
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-02-01",
)
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))