Share via


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/completionsdeğ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 olarak deployment_namedeğiştirildi.
  • Veri kaynağı türü AzureCognitiveSearch olarak azure_searchdeğ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

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 contextgeniş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.

Ö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ınaz 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 openaiyü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))