Zephyrnet Logosu

OpenAI API'sini Python ile Keşfetmek – KDnuggets

Tarih:

OpenAI API'sini Python ile keşfetme
Şununla oluşturulan resim: ideogram.ai
 

OpenAI'yi kim duymadı? Yapay zeka araştırma laboratuvarı, ünlü ürünü ChatGPT sayesinde dünyayı değiştirdi.

Yapay zeka uygulamasının manzarasını tam anlamıyla değiştirdi ve birçok şirket artık bir sonraki büyük şey olmak için acele ediyor.

Çok fazla rekabete rağmen OpenAI, tüm Üretken Yapay Zeka iş ihtiyaçları için hala başvurulacak şirkettir çünkü en iyi modellerden birine ve sürekli desteğe sahiptir. Şirket, çeşitli görev yeteneklerine sahip birçok son teknoloji ürünü Üretken Yapay Zeka modeli sunuyor: Görüntü oluşturma, Metinden Konuşmaya ve çok daha fazlası. 

OpenAI'nin sunduğu tüm modellere API çağrıları yoluyla ulaşılabilir. Basit Python koduyla modeli zaten kullanabilirsiniz. 

Bu yazıda OpenAI API'nin Python ile nasıl kullanılacağını ve yapabileceğiniz çeşitli görevleri inceleyeceğiz. Umarım bu makaleden çok şey öğrenirsiniz.

Bu makaleyi takip etmek için hazırlamanız gereken birkaç şey var.

Anahtar olmadan OpenAI modellerine erişemeyeceğiniz için ihtiyacınız olan en önemli şey OpenAI'nin API Anahtarlarıdır. Erişim elde etmek için bir OpenAI hesabına kaydolmanız ve API Anahtarını talep etmeniz gerekir. hesap sayfası. Anahtarı aldıktan sonra, OpenAI arayüzünde bir daha görünmeyeceği için bunu hatırlayabileceğiniz bir yere kaydedin.

Ayarlamanız gereken bir sonraki şey, OpenAI API'yi kullanmak için ön ödemeli kredi satın almaktır. Son zamanlarda OpenAI, nasıl yapılacağına dair değişiklikleri duyurdu. faturalandırma işleri. Ay sonunda ödeme yapmak yerine API çağrısı için ön ödemeli kredi satın almamız gerekiyor. Ziyaret edebilirsiniz OpenAI fiyatlandırması İhtiyacınız olan krediyi tahmin etmek için sayfa. Ayrıca bunları da kontrol edebilirsiniz. model sayfası Hangi modele ihtiyacınız olduğunu anlamak için.

Son olarak ortamınıza OpenAI Python paketini kurmanız gerekiyor. Bunu aşağıdaki kodu kullanarak yapabilirsiniz.

pip install openai

 

Daha sonra aşağıdaki kodu kullanarak OpenAI Key Environment değişkeninizi ayarlamanız gerekiyor.

import os

os.environ['OPENAI_API_KEY'] = 'YOUR API KEY'

 

Her şey ayarlandığında, OpenAI modellerinin API'sini Python ile keşfetmeye başlayalım.

OpenAI API'nin yıldızı Metin Nesilleri modelidir. Bu Büyük Dil Modelleri ailesi, istem adı verilen metin girişinden metin çıktısı üretebilir. Bilgi istemleri temel olarak metin analizi, belge taslakları oluşturma ve çok daha fazlası gibi modelden ne beklediğimizle ilgili talimatlardır.

Basit bir Text Generations API çağrısı yürüterek başlayalım. Temel model olarak OpenAI'nin GPT-3.5-Turbo modelini kullanırdık. En gelişmiş model olmasa da en ucuzu genellikle metinle ilgili görevleri gerçekleştirmek için yeterlidir.

from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Generate me 3 Jargons that I can use for my Social Media content as a Data Scientist content creator"}
  ]
)

print(completion.choices[0].message.content)

 

  1. “Veriye dayalı kararları yönlendirmek için tahmine dayalı analitiğin gücünü serbest bırakıyoruz!”
  2. "Değerli içgörüleri ortaya çıkarmak için veri okyanusunun derinliklerine dalmak."
  3. “Gelişmiş algoritmalar aracılığıyla ham verileri eyleme dönüştürülebilir zekaya dönüştürmek.”

Metin Oluşturma modeli için API Çağrısı, API Uç Noktasını kullanır sohbet.tamamlamalar istemimizden metin yanıtı oluşturmak için. 

Metin Oluşturma için gerekli iki parametre vardır: model ve mesajlar. 

Model için ilgili model sayfasından kullanabileceğiniz modellerin listesine göz atabilirsiniz. 

Mesajlara gelince, iki çiftten oluşan bir sözlük geçiyoruz: rol ve içerik. Rol anahtarı, konuşma modelindeki rolü göndereni belirtti. 3 farklı rol vardır: sistem, kullanıcı ve asistan.

Mesajlardaki rolü kullanarak model davranışını ayarlamaya ve modelin istemimize nasıl yanıt vermesi gerektiğine dair bir örnek vermeye yardımcı olabiliriz.

Modelimiz hakkında rehberlik sağlamak için önceki kod örneğini rol asistanıyla genişletelim. Ek olarak, sonuçlarını iyileştirmek için Metin Oluşturma modelinin bazı parametrelerini inceleyeceğiz.

completion = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Generate me 3 jargons that I can use for my Social Media content as a Data Scientist content creator."},
        {"role": "assistant", "content": "Sure, here are three jargons: Data Wrangling is the key, Predictive Analytics is the future, and Feature Engineering help your model."},
        {"role": "user", "content": "Great, can you also provide me with 3 content ideas based on these jargons?"}
    ],
    max_tokens=150,
    temperature=0.7,
    top_p=1,
    frequency_penalty=0
)

print(completion.choices[0].message.content)

 

Elbette! Sağlanan jargonlara dayalı üç içerik fikri aşağıda verilmiştir:

  1. “Veri Tartışmasının Gücünü Ortaya Çıkarmak: Veri Bilimcileri için Adım Adım Kılavuz” – Gerçek dünyadaki bir veri bilimi projesinde veri karıştırmaya yönelik en iyi uygulamaları ve araçları gösteren bir blog yazısı veya video eğitimi oluşturun.
  1. "Tahmini Analitiklerin Geleceği: Veri Biliminde Trendler ve Yenilikler" - Tahmine dayalı analitikte ortaya çıkan trendleri ve teknolojileri ve bunların veri biliminin geleceğini nasıl şekillendirdiğini tartışan bir düşünce liderliği yazısı yazın.
  1. “Özellik Mühendisliğinde Uzmanlaşmak: Model Performansını Artırma Teknikleri” – Farklı özellik mühendisliği tekniklerini ve bunların makine öğrenimi modellerinin doğruluğunu ve verimliliğini artırma üzerindeki etkilerini vurgulayan bir infografik veya sosyal medya serisi geliştirin.

Ortaya çıkan çıktı, modele sağladığımız örneği takip ediyor. Modelin takip etmesini istediğimiz belirli bir tarz veya sonuç varsa rol asistanını kullanmak faydalıdır.

Parametrelere gelince, burada kullandığımız her parametrenin basit açıklamaları verilmiştir:

  • max_tokens: Bu parametre modelin üretebileceği maksimum kelime sayısını ayarlar.
  • sıcaklık: Bu parametre model çıktısının öngörülemezliğini kontrol eder. Daha yüksek sıcaklık, daha çeşitli ve yaratıcı çıktılarla sonuçlanır. Kabul edilebilir aralık 0'dan sonsuza kadardır, ancak 2'nin üzerindeki değerler olağandışıdır.
  • top_p: Çekirdek örnekleme olarak da bilinen bu parametre, modelin çıktısını aldığı olasılık dağılımının alt kümesini belirlemeye yardımcı olur. Örneğin, top_p değerinin 0.1 olması, modelin örnekleme için olasılık dağılımının yalnızca en üst %10'unu dikkate aldığı anlamına gelir. Değerleri 0 ila 1 arasında değişebilir ve daha yüksek değerler daha fazla çıktı çeşitliliğine olanak tanır.
  • frekans_penalty: Bu, modelin çıktısında tekrarlanan belirteçleri cezalandırır. Ceza değeri -2 ila 2 arasında değişebilir; burada pozitif değerler belirteçlerin tekrarlanmasını engeller, negatif değerler ise tam tersini yaparak tekrarlanan sözcük kullanımını teşvik eder. 0 değeri tekrara herhangi bir ceza uygulanmadığını gösterir.

Son olarak aşağıdaki kod ile model çıktısını JSON formatına değiştirebilirsiniz.

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  response_format={ "type": "json_object" },
  messages=[
    {"role": "system", "content": "You are a helpful assistant designed to output JSON.."},
    {"role": "user", "content": "Generate me 3 Jargons that I can use for my Social Media content as a Data Scientist content creator"}
  ]
)

print(completion.choices[0].message.content)

 

{
“jargonlar”: [
“Değerli içgörülerin kilidini açmak için tahmine dayalı analizlerden yararlanmak”,
“Gelişmiş makine öğrenimi algoritmalarının inceliklerini araştırmak”,
“Veriye dayalı kararları yönlendirmek için büyük verinin gücünden yararlanmak”
]
}

Sonuç JSON formatındadır ve modele girdiğimiz istemle uyumludur.

Tamamlamak için Metin Oluşturma API'si belgeleri, onlara özel sayfalarından göz atabilirsiniz.

OpenAI modeli, metin oluşturma kullanım durumları için kullanışlıdır ve ayrıca görüntü oluşturma amacıyla API'yi çağırabilir. 

DALL·E modelini kullanarak istenildiği gibi bir görüntü oluşturabiliriz. Bunu gerçekleştirmenin basit yolu aşağıdaki kodu kullanmaktır.

from openai import OpenAI
from IPython.display import Image

client = OpenAI()

response = client.images.generate(
  model="dall-e-3",
  prompt="White Piano on the Beach",
  size="1792x1024",
  quality="hd",
  n=1,
)

image_url = response.data[0].url
Image(url=image_url)

 

OpenAI API'sini Python ile keşfetme
DALL·E 3 ile oluşturulan görüntü
 

Parametreler için açıklamalar şunlardır:

  • model: Kullanılacak görüntü oluşturma modeli. Şu anda API yalnızca DALL·E 3 ve DALL·E 2 modellerini desteklemektedir. 
  • istemi: Bu, modelin bir görüntü oluşturacağı temel alınan metinsel açıklamadır. 
  • boyut: Oluşturulan görüntünün çözünürlüğünü belirler. DALL·E 3 modeli için üç seçenek bulunmaktadır (1024×1024, 1024×1792 veya 1792×1024).
  • kalite: Bu parametre oluşturulan görüntünün kalitesini etkiler. Hesaplama süresi gerekiyorsa "standart", "hd"den daha hızlıdır.
  • n: İsteme göre oluşturulacak görüntü sayısını belirtir. DALL·E 3 aynı anda yalnızca bir görüntü oluşturabilir. DALL·E 2 aynı anda 10'a kadar üretebilir.

Yalnızca DALL·E 2 modeli kullanılarak mevcut olmasına rağmen, mevcut görüntüden bir varyasyon görüntüsü oluşturmak da mümkündür. API yalnızca 4 MB'ın altındaki kare PNG resimlerini de kabul eder.

from openai import OpenAI
from IPython.display import Image

client = OpenAI()

response = client.images.create_variation(
  image=open("white_piano_ori.png", "rb"),
  n=2,
  size="1024x1024"
)

image_url = response.data[0].url

Image(url=image_url)

 

Görüntü, eski modeli kullandığı için DALL·E 3 nesli kadar iyi olmayabilir.

OpenAI, görüntü girişini anlayabilen modeller sunan lider bir şirkettir. Bu modele Vision modeli denir, bazen GPT-4V olarak da adlandırılır. Model verdiğimiz görsele göre sorulara cevap verebilecek kapasitededir.

Vision modeli API'sini deneyelim. Bu örnekte DALL·E 3 modelinden oluşturduğumuz beyaz piyano görüntüsünü kullanıp yerel olarak saklayacağım. Ayrıca görselin yolunu alan ve görsel açıklama metnini döndüren bir fonksiyon yaratırdım. api_key değişkenini API Anahtarınızla değiştirmeyi unutmayın.

from openai import OpenAI
import base64
import requests
def provide_image_description(img_path):

    client = OpenAI()

    api_key = 'YOUR-API-KEY'
    # Function to encode the image
    def encode_image(image_path):
      with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')
   
    # Path to your image
    image_path = img_path
   
    # Getting the base64 string
    base64_image = encode_image(image_path)
   
    headers = {
      "Content-Type": "application/json",
      "Authorization": f"Bearer {api_key}"
    }
   
    payload = {
      "model": "gpt-4-vision-preview",
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "text",
              "text": """Can you describe this image? """
            },
            {
              "type": "image_url",
              "image_url": {
                "url": f"data:image/jpeg;base64,{base64_image}"
              }
            }
          ]
        }
      ],
      "max_tokens": 300
    }
   
    response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

    return response.json()['choices'][0]['message']['content']

 

Bu görüntüde sakin bir plaj ortamına yerleştirilmiş kuyruklu bir piyano bulunmaktadır. Piyano beyazdır ve genellikle zarafetle ilişkilendirilen bir bitişi gösterir. Enstrüman, kıyı şeridinin tam kenarında, hafif dalgaların kumu hafifçe okşadığı, piyanonun tabanına ve ona uygun tabureye dokunan bir köpük oluşturduğu yerde yer alıyor. Açık mavi gökyüzü, uzaktaki kabarık bulutlar ve ufka doğru genişleyen sakin deniz ile plaj çevresi huzur ve izolasyon duygusunu çağrıştırıyor. Kumun üzerindeki piyanonun etrafına dağılmış, çeşitli boyut ve şekillerde çok sayıda deniz kabuğu, ortamın doğal güzelliğini ve sakin atmosferini vurguluyor. Klasik bir müzik enstrümanının doğal bir plaj ortamında yan yana getirilmesi, gerçeküstü ve görsel olarak şiirsel bir kompozisyon yaratıyor.

Yukarıdaki sözlükteki metin değerlerini Vision modeli gereksinimlerinize uyacak şekilde ayarlayabilirsiniz.

OpenAI ayrıca Metinden Konuşmaya modeline dayalı olarak ses üretmek için bir model sağlar. Sesli anlatım tarzı sınırlı olmasına rağmen kullanımı oldukça kolaydır. Ayrıca model, üzerinde görebileceğiniz birçok dili desteklemektedir. dil destek sayfası.

Sesi oluşturmak için aşağıdaki kodu kullanabilirsiniz.

from openai import OpenAI
client = OpenAI()

speech_file_path = "speech.mp3"
response = client.audio.speech.create(
  model="tts-1",
  voice="alloy",
  input="I love data science and machine learning"
)

response.stream_to_file(speech_file_path)

 

Ses dosyasını dizininizde görmelisiniz. Oynamaya çalışın ve standartlarınıza uygun olup olmadığını görün. 

Şu anda Metinden Konuşmaya modeli için kullanabileceğiniz yalnızca birkaç parametre vardır:

  • model: Kullanılacak Metinden Konuşmaya modeli. Yalnızca iki model mevcuttur (tts-1 veya tts-1-hd), burada tts-1 hızı optimize eder ve tts-1-hd kaliteyi optimize eder.
  • ses: Tüm sesin ingilizceye göre optimize edildiği yerde kullanılacak ses stili. Seçim alaşım, yankı, fabl, oniks, nova ve ışıltıdır.
  • Response_format: Ses formatı dosyası. Şu anda desteklenen formatlar mp3, opus, aac, flac, wav ve pcm'dir.
  • hız: Oluşturulan ses hızı. 0.25 ila 4 arasındaki değerleri seçebilirsiniz. 
  • giriş: Sesi oluşturacak metin. Şu anda model yalnızca 4096 karaktere kadar desteklemektedir.

OpenAI, ses verilerinin yazıya geçirilmesi ve çevrilmesi için modeller sağlar. Fısıltı modelini kullanarak, desteklenen dildeki sesi metin dosyalarına aktarabilir ve bunları İngilizceye çevirebiliriz.

Daha önce oluşturduğumuz ses dosyasından basit bir transkripsiyon deneyelim.

from openai import OpenAI
client = OpenAI()

audio_file= open("speech.mp3", "rb")
transcription = client.audio.transcriptions.create(
  model="whisper-1",
  file=audio_file
)

print(transcription.text)

 

Veri bilimini ve makine öğrenimini seviyorum.

Ses dosyalarından İngilizce diline çeviri yapmak da mümkündür. Model henüz başka bir dile çevrilmeye hazır değil.

from openai import OpenAI
client = OpenAI()

audio_file = open("speech.mp3", "rb")
translate = client.audio.translations.create(
  model="whisper-1",
  file=audio_file
)

OpenAI'nin sağladığı Metin Oluşturma, Görüntü Oluşturma, Ses Oluşturma, Görme ve Metinden Konuşmaya modellerine kadar çeşitli model hizmetleri inceledik. Her modelin, kullanmadan önce öğrenmeniz gereken kendi API parametresi ve özellikleri vardır.
 
 

Cornellius Yudha Wijaya veri bilimi müdür yardımcısı ve veri yazarıdır. Allianz Endonezya'da tam zamanlı çalışırken Python'u ve veri ipuçlarını sosyal medya ve yazılı medya aracılığıyla paylaşmayı seviyor. Cornellius çeşitli yapay zeka ve makine öğrenimi konularında yazıyor.

spot_img

En Son İstihbarat

spot_img