Zephyrnet logo

OpenAI API:n tutkiminen Pythonilla – KDnuggets

Treffi:

OpenAI API:n tutkiminen Pythonilla
Kuva luotu kanssa Ideogram.ai
 

Kukapa ei olisi kuullut OpenAI:sta? Tekoälytutkimuslaboratorio on muuttanut maailmaa kuuluisan tuotteensa, ChatGPT:n, ansiosta.

Se muutti kirjaimellisesti tekoälyn toteutuksen maisemaa, ja monet yritykset ryntäävät nyt seuraavaksi suureksi asiaksi.

Kovasta kilpailusta huolimatta OpenAI on edelleen kaikkien Generatiivisen tekoälyn liiketoiminnan tarpeiden paras yritys, koska sillä on yksi parhaista malleista ja jatkuva tuki. Yritys tarjoaa monia huippuluokan generatiivisia tekoälymalleja erilaisilla tehtäväominaisuuksilla: kuvan luominen, tekstistä puheeksi ja paljon muuta. 

Kaikki OpenAI:n tarjoamat mallit ovat saatavilla API-kutsujen kautta. Yksinkertaisella Python-koodilla voit jo käyttää mallia. 

Tässä artikkelissa tutkimme OpenAI-sovellusliittymän käyttöä Pythonin kanssa ja erilaisia ​​tehtäviä, joita voit tehdä. Toivon, että opit paljon tästä artikkelista.

Jotta voit seurata tätä artikkelia, sinun on valmistauduttava muutamaan asiaan.

Tärkein tarvitsemasi asia on OpenAI:n API-avaimet, koska et voi käyttää OpenAI-malleja ilman avainta. Saadaksesi käyttöoikeudet, sinun on rekisteröidyttävä OpenAI-tilille ja pyydettävä API-avain osoitteessa tilin sivu. Kun olet saanut avaimen, tallenna se jonnekin, jonka muistat, koska se ei enää näy OpenAI-käyttöliittymässä.

Seuraava asia, joka sinun on asetettava, on ostaa ennakkoon maksettu luotto käyttääksesi OpenAI-sovellusliittymää. Äskettäin OpenAI ilmoitti muutoksista tapaan niiden laskutus toimii. Sen sijaan, että maksaisimme kuun lopussa, meidän on ostettava ennakkoon maksettu saldo API-puhelua varten. Voit vierailla OpenAI hinnoittelu sivulta arvioidaksesi tarvitsemasi luoton. Voit myös tarkistaa ne mallisivu ymmärtääksesi minkä mallin tarvitset.

Lopuksi sinun on asennettava OpenAI Python -paketti ympäristöösi. Voit tehdä sen käyttämällä seuraavaa koodia.

pip install openai

 

Sitten sinun on asetettava OpenAI Key Environment -muuttuja alla olevan koodin avulla.

import os

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

 

Kun kaikki on valmiina, aloitetaan OpenAI-mallien sovellusliittymän tutkiminen Pythonilla.

OpenAI API:n tähti on heidän Text Generations -mallinsa. Nämä Large Language Models -perheet voivat tuottaa tekstiä tekstinsyötöstä nimeltä kehote. Kehotteet ovat pohjimmiltaan ohjeita siitä, mitä odotamme mallilta, kuten tekstianalyysi, asiakirjaluonnosten luominen ja paljon muuta.

Aloitetaan suorittamalla yksinkertainen Text Generations API -kutsu. Perusmallina käyttäisimme OpenAI:n GPT-3.5-Turbo-mallia. Se ei ole edistyksellisin malli, mutta halvimmat riittävät usein tekstiin liittyvien tehtävien suorittamiseen.

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. "Ennakoivan analytiikan voiman vapauttaminen datalähtöisten päätösten tekemiseen!"
  2. "Sukeltamalla syvälle datan valtamereen löytääksesi arvokkaita oivalluksia."
  3. "Raakadatan muuntaminen toimivaksi älykkyydeksi kehittyneiden algoritmien avulla."

Tekstin luontimallin API-kutsu käyttää API-päätepistettä chat.completions luodaksesi tekstivastauksen kehotteestamme. 

Tekstin luomiseen vaaditaan kaksi parametria: malli ja viestit. 

Mallin osalta voit tarkistaa mallien luettelon mallisivulta, joita voit käyttää. 

Mitä tulee viesteihin, välitämme sanakirjan, jossa on kaksi paria: rooli ja sisältö. Rooliavain määritti roolin lähettäjän keskustelumallissa. Rooleja on kolme: järjestelmä, käyttäjä ja avustaja.

Viestien roolia käyttämällä voimme auttaa määrittämään mallin käyttäytymisen ja esimerkin siitä, kuinka mallin tulisi vastata kehotteeseen.

Laajennetaan edellistä koodiesimerkkiä rooliavustajalla antaaksemme ohjeita mallistamme. Lisäksi tutkisimme joitain tekstin generointimallin parametreja parantaaksemme niiden tulosta.

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)

 

Tietysti! Tässä on kolme sisältöideaa annettujen ammattislangien perusteella:

  1. "Datan kiistan voiman vapauttaminen: Vaiheittainen opas datatieteilijöille" – Luo blogikirjoitus tai video-opastus, joka esittelee parhaita käytäntöjä ja työkaluja datariittämiseen todellisessa datatiedeprojektissa.
  1. "The Future of Predictive Analytics: Trends and Innovations in Data Science" – Kirjoita ajatusjohtajuusartikkeli, jossa keskustellaan ennakoivan analytiikan nousevista trendeistä ja teknologioista ja siitä, miten ne muokkaavat datatieteen tulevaisuutta.
  1. "Mastering Feature Engineering: Techniques to Boost Model Performance" – Kehitä infografiikka tai sosiaalisen median sarja, jossa korostetaan erilaisia ​​ominaisuussuunnittelutekniikoita ja niiden vaikutusta koneoppimismallien tarkkuuden ja tehokkuuden parantamiseen.

Tuloksena oleva tulos noudattaa mallille antamaamme esimerkkiä. Rooliavustajan käyttö on hyödyllistä, jos meillä on tietty tyyli tai tulos, jota haluamme mallin noudattavan.

Mitä tulee parametreihin, tässä on yksinkertaiset selitykset jokaisesta käyttämästämme parametrista:

  • max_tokens: Tämä parametri määrittää mallin luomien sanojen enimmäismäärän.
  • lämpötila: Tämä parametri ohjaa mallin lähdön arvaamattomuutta. Korkeampi lämpötila tuottaa monipuolisempia ja mielikuvituksellisia tuloksia. Hyväksyttävä alue on nollasta äärettömään, vaikka arvot yli 0 ovat epätavallisia.
  • top_p: Tämä parametri, joka tunnetaan myös nimellä ydinnäytteenotto, auttaa määrittämään todennäköisyysjakauman osajoukon, josta malli ottaa tulostensa. Esimerkiksi top_p-arvo 0.1 tarkoittaa, että malli ottaa näytteenotossa huomioon vain todennäköisyysjakauman ylimmän 10 %. Sen arvot voivat vaihdella välillä 0 - 1, ja korkeammat arvot mahdollistavat suuremman ulostulon monimuotoisuuden.
  • taajuus_rangaistus: Tämä rankaisee toistuvia tokeneita mallin tulosteessa. Rangaistusarvo voi vaihdella -2:sta 2:een, jossa positiiviset arvot estävät merkkien toistamisen ja negatiiviset arvot päinvastoin, mikä rohkaisee toistuvaan sanojen käyttöön. Arvo 0 tarkoittaa, että toistosta ei sovelleta rangaistusta.

Lopuksi voit muuttaa mallin lähdön JSON-muotoon seuraavalla koodilla.

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)

 

{
"jargonia": [
"Hyödyntämällä ennakoivaa analytiikkaa arvokkaiden oivallusten saamiseksi",
"Sukeutuminen edistyneiden koneoppimisalgoritmien monimutkaisuuteen",
"Big datan voiman hyödyntäminen datalähtöisten päätösten tekemiseen"
]
}

Tulos on JSON-muodossa ja noudattaa malliin syöttämäämme kehotetta.

Täydellinen Text Generation API -dokumentaatio, voit tarkistaa ne heidän omalta sivultaan.

OpenAI-malli on hyödyllinen tekstin luomiseen ja voi myös kutsua API:ta kuvien luomiseen. 

DALL·E-mallia käyttämällä voimme luoda kuvan pyynnöstä. Yksinkertaisin tapa suorittaa se on käyttää seuraavaa koodia.

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:n tutkiminen Pythonilla
Kuva luotu DALL·E 3:lla
 

Tässä on parametrien selitykset:

  • malli: käytettävä kuvan luontimalli. Tällä hetkellä API tukee vain DALL·E 3- ja DALL·E 2 -malleja. 
  • nopea: Tämä on tekstillinen kuvaus, jonka perusteella malli luo kuvan. 
  • koko: Määrittää luodun kuvan resoluution. DALL·E 3 -mallissa on kolme vaihtoehtoa (1024×1024, 1024×1792 tai 1792×1024).
  • laatu: Tämä parametri vaikuttaa luodun kuvan laatuun. Jos laskentaaikaa tarvitaan, "standardi" on nopeampi kuin "hd".
  • n: Määrittää kehotteen perusteella luotavien kuvien määrän. DALL·E 3 voi luoda vain yhden kuvan kerrallaan. DALL·E 2 voi tuottaa jopa 10 kerrallaan.

On myös mahdollista luoda muunnelma kuva olemassa olevasta kuvasta, vaikka se on saatavana vain DALL·E 2 -mallilla. API hyväksyy myös vain alle 4 Mt:n neliönmuotoiset PNG-kuvat.

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)

 

Kuva ei ehkä ole yhtä hyvä kuin DALL·E 3 -sukupolvien, koska se käyttää vanhempaa mallia.

OpenAI on johtava yritys, joka tarjoaa malleja, jotka voivat ymmärtää kuvasyöttöä. Tätä mallia kutsutaan Vision-malliksi, joskus kutsutaan nimellä GPT-4V. Malli pystyy vastaamaan kysymyksiin antamamme kuvan perusteella.

Kokeillaan Vision mallisovellusliittymää. Tässä esimerkissä käyttäisin valkoista pianokuvaa, jonka luomme DALL·E 3 -mallista, ja tallensin sen paikallisesti. Lisäksi luoisin funktion, joka vie kuvan polun ja palauttaa kuvan kuvaustekstin. Muista vaihtaa api_key-muuttuja API-avaimeksi.

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']

 

Tässä kuvassa on flyygeli, joka on sijoitettu rauhalliselle rantaympäristölle. Piano on valkoinen, mikä viittaa viimeistelyyn, joka liittyy usein eleganssiin. Instrumentti sijaitsee aivan rantaviivan reunalla, jossa lempeät aallot hyväilevät kevyesti hiekkaa muodostaen vaahdon, joka vain koskettaa pianon pohjaa ja siihen sopivaa jakkaraa. Rantaympäristö tuo rauhallisuuden ja eristäytymisen tunteen kirkkaan sinisen taivaan, kaukaisten pörröisten pilvien ja horisonttiin ulottuvan tyyni meren kanssa. Pianon ympärillä hiekalla on lukuisia erikokoisia ja -muotoisia simpukankuoria, jotka korostavat ympäristön luonnon kauneutta ja rauhallista tunnelmaa. Klassisen musiikin instrumentin rinnastus luonnollisessa rantaympäristössä luo surrealistisen ja visuaalisesti runollisen sävellyksen.

Voit muokata yllä olevan sanakirjan tekstiarvoja vastaamaan Vision-mallisi vaatimuksia.

OpenAI tarjoaa myös mallin äänen tuottamiseksi heidän tekstistä puheeksi -mallinsa perusteella. Se on erittäin helppokäyttöinen, vaikka puheen kertomistyyli on rajallinen. Malli on myös tukenut monia kieliä, jotka voit nähdä niiden avulla kielen tukisivu.

Voit luoda äänen käyttämällä alla olevaa koodia.

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)

 

Sinun pitäisi nähdä äänitiedosto hakemistossasi. Yritä pelata sitä ja katso, vastaako se standardiisi. 

Tällä hetkellä tekstistä puheeksi -mallissa voi käyttää vain muutamia parametreja:

  • malli: käytettävä tekstistä puheeksi -malli. Saatavilla on vain kaksi mallia (tts-1 tai tts-1-hd), joissa tts-1 optimoi nopeuden ja tts-1-hd laadun vuoksi.
  • ääni: käytettävä äänityyli, jossa kaikki äänet on optimoitu englanniksi. Valikoima on metalliseos, kaiku, satu, onyx, nova ja shimmer.
  • vastaus_muoto: Äänimuototiedosto. Tällä hetkellä tuetut tiedostomuodot ovat mp3, opus, aac, flac, wav ja pcm.
  • nopeus: Luotu äänen nopeus. Voit valita arvot välillä 0.25 - 4. 
  • syöttö: Teksti äänen luomiseksi. Tällä hetkellä malli tukee vain 4096 merkkiä.

OpenAI tarjoaa mallit äänidatan litteroimiseen ja kääntämiseen. Kuiskausmallin avulla voimme kopioida äänen tuetuista kielistä tekstitiedostoihin ja kääntää ne englanniksi.

Kokeillaan yksinkertaista transkriptiota aiemmin luomastamme äänitiedostosta.

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)

 

Rakastan datatieteitä ja koneoppimista.

On myös mahdollista suorittaa käännös äänitiedostoista englannin kielelle. Mallia ei ole vielä saatavilla käännettäväksi toiselle kielelle.

from openai import OpenAI
client = OpenAI()

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

Olemme tutkineet useita OpenAI:n tarjoamia mallipalveluita tekstin luonti-, kuvanluonti-, äänen luonti-, visio- ja tekstistä puheeksi -malleista. Jokaisella mallilla on API-parametrinsa ja erittelynsä, jotka sinun on opittava ennen niiden käyttöä.
 
 

Cornelius Yudha Wijaya on datatieteen apulaisjohtaja ja tietojen kirjoittaja. Työskennellessään kokopäiväisesti Allianz Indonesiassa hän rakastaa Python- ja datavinkkejä sosiaalisen median ja kirjoitusmedian kautta. Cornellius kirjoittaa erilaisista tekoälyn ja koneoppimisen aiheista.

spot_img

Uusin älykkyys

spot_img