Veri API'nizde Azure OpenAI Başvurusu
Bu makalede, yeni Azure OpenAI On Your Data API için Python ve REST için başvuru belgeleri sağlanır. En son API sürümü Swagger belirtimidir2024-02-01
.
Not
API sürümünden 2024-02-15-preview
bu yana, önceki API sürümleriyle karşılaştırıldığında aşağıdaki hataya neden olan değişiklikleri kullanıma sunulmuştur:
- API yolu olarak
/extensions/chat/completions
/chat/completions
değiştirilir. - Özellik anahtarlarının ve sabit listesi değerlerinin adlandırma kuralı, deve kasasından yılan kasasına değiştirilir. Örnek:
deploymentName
olarakdeployment_name
değiştirildi. - Veri kaynağı türü
AzureCognitiveSearch
olarakazure_search
değiştirilir. - Alıntılar ve amaç, açık şema tanımlı olarak yardımcı iletinin bağlam aracı iletilerinden yardımcı iletinin bağlam kök düzeyine taşınır.
POST {endpoint}/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}
Desteklenen sürümler
2024-02-15-preview
Swagger belirtimi.2024-02-01
Swagger belirtimi.
Not
Azure Machine learning dizinleri, Pinecone ve Elasticsearch yalnızca API sürümünde önizleme olarak desteklenir 2024-02-15-preview
.
URI parametreleri
Veri Akışı Adı | İçinde | Type | Zorunlu | Açıklama |
---|---|---|---|---|
deployment-id |
yol | Dize | True | Bu istek için kullanılacak sohbet tamamlama modeli dağıtım adını belirtir. |
endpoint |
yol | Dize | True | Azure OpenAI uç noktaları. Örneğin: https://{YOUR_RESOURCE_NAME}.openai.azure.com |
api-version |
query | Dize | True | Bu işlem için kullanılacak API sürümü. |
Request body
İstek gövdesi, sohbet tamamlama API'sinin isteğinin aynı şemasını devralır. Bu tabloda, Verilerinizde Azure OpenAI için benzersiz parametreler gösterilir.
Adı | Tür | Zorunlu | Açıklama |
---|---|---|---|
data_sources |
DataSource[] | True | Verilerinizde Azure OpenAI yapılandırma girişleri. Dizide tam olarak bir öğe olmalıdır. Sağlanmazsa data_sources , hizmet doğrudan sohbet tamamlama modelini kullanır ve Verilerinizde Azure OpenAI kullanmaz. |
Yanıt gövdesi
Yanıt gövdesi, sohbet tamamlama API yanıtının aynı şemasını devralır. Yanıt sohbeti iletisi , Verilerinizde Azure OpenAI için eklenen bir context
özelliğe sahiptir.
Sohbet iletisi
Yanıt yardımcısı ileti şeması, sohbet tamamlama yardımcısı sohbet iletisinden devralınır ve özelliğiyle context
genişletilir.
Adı | Tür | Zorunlu | Açıklama |
---|---|---|---|
context |
Bağlam | False | Alınan belgeler de dahil olmak üzere isteği işlerken Verilerinizde Azure OpenAI tarafından gerçekleştirilen artımlı adımları temsil eder. |
Bağlam
Adı | Tür | Zorunlu | Açıklama |
---|---|---|---|
citations |
Alıntı[] | False | Yanıtta yardımcı iletisini oluşturmak için kullanılan veri kaynağı alma sonucu. İstemciler alıntılardan başvuruları işleyebilir. |
intent |
Dize | False | Sohbet geçmişinden algılanan amaç. Önceki amacı geri geçirmek artık gerekli değildir. Bu özelliği yoksayın. |
Alıntı
Adı | Tür | Zorunlu | Açıklama |
---|---|---|---|
content |
Dize | True | Alıntının içeriği. |
title |
Dize | False | Alıntının başlığı. |
url |
Dize | False | Alıntının URL'si. |
filepath |
Dize | False | Alıntının dosya yolu. |
chunk_id |
Dize | False | Alıntının öbek kimliği. |
Data source
Bu listede desteklenen veri kaynakları gösterilir.
- Azure AI Arama
- MongoDB için Azure Cosmos DB sanal çekirdeği
- Azure Machine Learning dizini (önizleme)
- Elasticsearch (önizleme)
- Pinecone (önizleme)
Örnekler
Bu örnekte, daha iyi sonuçlar elde etmek için konuşma geçmişini geçirme gösterilmektedir.
Ön koşullar:
- Azure OpenAI sistemi tarafından atanan yönetilen kimlikten Azure arama hizmetine rol atamalarını yapılandırın. Gerekli roller:
Search Index Data Reader
,Search Service Contributor
. - Kullanıcıdan Azure OpenAI kaynağına rol atamalarını yapılandırın. Gerekli rol:
Cognitive Services OpenAI User
. - Az CLI'yı yükleyin ve komutunu çalıştırın
az login
. - Aşağıdaki ortam değişkenlerini tanımlayın:
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
En son pip paketlerini openai
yükleyin, 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-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))