Python ile OpenAI ile Azure OpenAI uç noktaları arasında geçiş yapma

OpenAI ve Azure OpenAI Hizmeti ortak bir Python istemci kitaplığını kullanıyor olsa da, uç noktalar arasında geçiş yapmak için kodunuzda yapmanız gereken küçük değişiklikler vardır. Bu makalede, OpenAI ve Azure OpenAI arasında çalışırken karşılaşabileceğiniz yaygın değişiklikler ve farklılıklar açıklanmaktadır.

Bu makalede yalnızca yeni OpenAI Python 1.x API kitaplığıyla ilgili örnekler gösterilir. geçiş 0.28.1 hakkında bilgi için 1.x geçiş kılavuzumuza bakın.

Önkoşullar

Hiçbiri

Kimlik doğrulama

Ortam değişkenlerini kullanmanızı öneririz. Bunu daha önce yapmadıysanız Python hızlı başlangıçlarımız bu yapılandırmada size yol gösterir.

API key

OpenAI Azure OpenAI
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("OPENAI_API_KEY")
)



import os
from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2023-12-01-preview",
    azure_endpoint=os.getenv("AZURE_OPENAI_ENDPOINT")
)

Microsoft Entra ID authentication

OpenAI Azure OpenAI
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("OPENAI_API_KEY")
)








from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import AzureOpenAI

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)

api_version = "2023-12-01-preview"
endpoint = "https://my-resource.openai.azure.com"

client = AzureOpenAI(
    api_version=api_version,
    azure_endpoint=endpoint,
    azure_ad_token_provider=token_provider,
)

Model için anahtar sözcük bağımsız değişkeni

OpenAI, hangi modelin model kullanılacağını belirtmek için anahtar sözcük bağımsız değişkenini kullanır. Azure OpenAI, benzersiz model dağıtımları kavramına sahiptir. Azure OpenAI kullanırken modeli model dağıtırken seçtiğiniz temel dağıtım adına başvurmalısınız.

Önemli

Azure OpenAI'deki API aracılığıyla modele eriştiğinizde, OpenAI ile Azure OpenAI arasındaki önemli farklardan biri olan API çağrılarındaki temel model adı yerine dağıtım adına başvurmanız gerekir. OpenAI yalnızca model adını gerektirir. Azure OpenAI, model parametresini kullanırken bile her zaman dağıtım adı gerektirir. Belgelerimizde, hangi modelin belirli bir API uç noktasıyla çalıştığını belirtmeye yardımcı olmak için genellikle dağıtım adlarının model adlarıyla aynı olarak gösterildiği örnekler bulunur. Sonuç olarak dağıtım adlarınız, kullanım örneğiniz için en uygun adlandırma kuralını izleyebilir.

OpenAI Azure OpenAI
completion = client.completions.create(
    model="gpt-3.5-turbo-instruct",
    prompt="<prompt>"
)

chat_completion = client.chat.completions.create(
    model="gpt-4",
    messages="<messages>"
)

embedding = client.embeddings.create(
    model="text-embedding-ada-002",
    input="<input>"
)
completion = client.completions.create(
    model="gpt-35-turbo-instruct", # This must match the custom deployment name you chose for your model.
    prompt="<prompt>"
)

chat_completion = client.chat.completions.create(
    model="gpt-35-turbo", # model = "deployment_name".
    messages="<messages>"
)

embedding = client.embeddings.create(
    model="text-embedding-ada-002", # model = "deployment_name".
    input="<input>"
)

Azure OpenAI ekleme birden çok giriş desteği

OpenAI ve Azure OpenAI şu anda text-embedding-ada-002 için 2.048 giriş öğesine kadar giriş dizilerini desteklemektedir. Her ikisi de bu model için API isteği başına maksimum giriş belirteci sınırının 8.191'in altında kalmasını gerektirir.

OpenAI Azure OpenAI
inputs = ["A", "B", "C"] 

embedding = client.embeddings.create(
    input=inputs,
    model="text-embedding-ada-002"
)


inputs = ["A", "B", "C"] #max array size=2048

embedding = client.embeddings.create(
    input=inputs,
    model="text-embedding-ada-002" # This must match the custom deployment name you chose for your model.
    # engine="text-embedding-ada-002"
)