Λογότυπο Zephyrnet

Εξερευνώντας το OpenAI API με Python – KDnuggets

Ημερομηνία:

Εξερευνώντας το OpenAI API με Python
Εικόνα που δημιουργήθηκε με Ιδεόγραμμα.ai
 

Ποιος δεν έχει ακούσει για το OpenAI; Το ερευνητικό εργαστήριο AI έχει αλλάξει τον κόσμο λόγω του διάσημου προϊόντος του, ChatGPT.

Άλλαξε κυριολεκτικά το τοπίο της εφαρμογής της τεχνητής νοημοσύνης και πολλές εταιρείες σπεύδουν τώρα να γίνουν το επόμενο μεγάλο πράγμα.

Παρά τον μεγάλο ανταγωνισμό, η OpenAI εξακολουθεί να είναι η πιο δημοφιλής εταιρεία για κάθε επιχειρηματική ανάγκη Generative AI, επειδή διαθέτει ένα από τα καλύτερα μοντέλα και συνεχή υποστήριξη. Η εταιρεία παρέχει πολλά τελευταίας τεχνολογίας Generative AI μοντέλα με διάφορες δυνατότητες εργασιών: δημιουργία εικόνας, μετατροπή κειμένου σε ομιλία και πολλά άλλα. 

Όλα τα μοντέλα που προσφέρει το OpenAI είναι διαθέσιμα μέσω κλήσεων API. Με απλό κώδικα Python, μπορείτε ήδη να χρησιμοποιήσετε το μοντέλο. 

Σε αυτό το άρθρο, θα διερευνήσουμε πώς να χρησιμοποιήσετε το OpenAI API με την Python και διάφορες εργασίες που μπορείτε να κάνετε. Ελπίζω να μάθετε πολλά από αυτό το άρθρο.

Για να ακολουθήσετε αυτό το άρθρο, υπάρχουν μερικά πράγματα που πρέπει να προετοιμάσετε.

Το πιο σημαντικό πράγμα που χρειάζεστε είναι τα κλειδιά API από το OpenAI, καθώς δεν μπορείτε να έχετε πρόσβαση στα μοντέλα OpenAI χωρίς το κλειδί. Για να αποκτήσετε πρόσβαση, πρέπει να εγγραφείτε για έναν λογαριασμό OpenAI και να ζητήσετε το κλειδί API στο σελίδα λογαριασμού. Αφού λάβετε το κλειδί, αποθηκεύστε το κάπου που μπορείτε να το θυμηθείτε, καθώς δεν θα εμφανιστεί ξανά στη διεπαφή OpenAI.

Το επόμενο πράγμα που πρέπει να ορίσετε είναι να αγοράσετε την προπληρωμένη πίστωση για να χρησιμοποιήσετε το OpenAI API. Πρόσφατα, το OpenAI ανακοίνωσε αλλαγές στον τρόπο λειτουργεί η τιμολόγησή τους. Αντί να πληρώσουμε στο τέλος του μήνα, πρέπει να αγοράσουμε προπληρωμένη πίστωση για την κλήση API. Μπορείτε να επισκεφθείτε το Τιμολόγηση OpenAI σελίδα για να υπολογίσετε την πίστωση που χρειάζεστε. Μπορείτε επίσης να ελέγξετε τους σελίδα μοντέλου για να καταλάβετε ποιο μοντέλο χρειάζεστε.

Τέλος, πρέπει να εγκαταστήσετε το πακέτο OpenAI Python στο περιβάλλον σας. Μπορείτε να το κάνετε χρησιμοποιώντας τον παρακάτω κώδικα.

pip install openai

 

Στη συνέχεια, πρέπει να ορίσετε τη μεταβλητή OpenAI Key Environment χρησιμοποιώντας τον παρακάτω κώδικα.

import os

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

 

Έχοντας όλα έτοιμα, ας ξεκινήσουμε την εξερεύνηση του API των μοντέλων OpenAI με την Python.

Το αστέρι του OpenAI API είναι το μοντέλο τους Text Generations. Αυτή η οικογένεια Μεγάλων Μοντέλων Γλωσσών μπορεί να παράγει εξαγωγή κειμένου από την εισαγωγή κειμένου που ονομάζεται προτροπή. Τα μηνύματα προτροπής είναι βασικά οδηγίες σχετικά με το τι περιμένουμε από το μοντέλο, όπως ανάλυση κειμένου, δημιουργία προσχεδίων εγγράφων και πολλά άλλα.

Ας ξεκινήσουμε εκτελώντας μια απλή κλήση API Generations Text. Θα χρησιμοποιούσαμε το μοντέλο GPT-3.5-Turbo από το OpenAI ως βασικό μοντέλο. Δεν είναι το πιο προηγμένο μοντέλο, αλλά τα φθηνότερα είναι συχνά αρκετά για την εκτέλεση εργασιών που σχετίζονται με το κείμενο.

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. «Απελευθερώνοντας τη δύναμη των προγνωστικών αναλυτικών στοιχείων για την οδήγηση αποφάσεων που βασίζονται σε δεδομένα!»
  2. "Καταδύσεις βαθιά στον ωκεανό δεδομένων για να αποκαλύψει πολύτιμες γνώσεις."
  3. "Μετατροπή ακατέργαστων δεδομένων σε ευφυΐα με δυνατότητα δράσης μέσω προηγμένων αλγορίθμων."

Η κλήση API για το μοντέλο δημιουργίας κειμένου χρησιμοποιεί το τελικό σημείο API chat.completions για να δημιουργήσουμε την απάντηση κειμένου από την προτροπή μας. 

Υπάρχουν δύο απαιτούμενες παράμετροι για τη δημιουργία κειμένου: μοντέλο και μηνύματα. 

Για το μοντέλο, μπορείτε να ελέγξετε τη λίστα με τα μοντέλα που μπορείτε να χρησιμοποιήσετε στη σχετική σελίδα μοντέλου. 

Όσο για τα μηνύματα, περνάμε ένα λεξικό με δύο ζευγάρια: τον ρόλο και το περιεχόμενο. Το κλειδί ρόλου καθόριζε τον αποστολέα ρόλου στο μοντέλο συνομιλίας. Υπάρχουν 3 διαφορετικοί ρόλοι: σύστημα, χρήστης και βοηθός.

Χρησιμοποιώντας το ρόλο στα μηνύματα, μπορούμε να σας βοηθήσουμε να ορίσετε τη συμπεριφορά του μοντέλου και ένα παράδειγμα για το πώς το μοντέλο πρέπει να απαντήσει στην προτροπή μας.

Ας επεκτείνουμε το προηγούμενο παράδειγμα κώδικα με τον βοηθό ρόλου για να δώσουμε καθοδήγηση σχετικά με το μοντέλο μας. Επιπλέον, θα διερευνούσαμε ορισμένες παραμέτρους για το μοντέλο δημιουργίας κειμένου για να βελτιώσουμε τα αποτελέσματά τους.

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)

 

Φυσικά! Ακολουθούν τρεις ιδέες περιεχομένου που βασίζονται στις ορολογίες που παρέχονται:

  1. «Απελευθερώνοντας τη δύναμη της διαμάχης δεδομένων: Ένας οδηγός βήμα προς βήμα για επιστήμονες δεδομένων» – Δημιουργήστε μια ανάρτηση ιστολογίου ή ένα εκπαιδευτικό βίντεο που παρουσιάζει τις βέλτιστες πρακτικές και τα εργαλεία για τη διαμάχη δεδομένων σε ένα πραγματικό έργο επιστήμης δεδομένων.
  1. "The Future of Predictive Analytics: Trends and Innovations in Data Science" – Γράψτε ένα άρθρο ηγετικής σκέψης που θα συζητά τις αναδυόμενες τάσεις και τεχνολογίες στην προγνωστική ανάλυση και πώς αυτές διαμορφώνουν το μέλλον της επιστήμης δεδομένων.
  1. "Mastering Feature Engineering: Techniques to Boost Model Performance" – Αναπτύξτε μια σειρά infographic ή μέσων κοινωνικής δικτύωσης που επισημαίνει διαφορετικές τεχνικές μηχανικής χαρακτηριστικών και τον αντίκτυπό τους στη βελτίωση της ακρίβειας και της αποτελεσματικότητας των μοντέλων μηχανικής εκμάθησης.

Το αποτέλεσμα που προκύπτει ακολουθεί το παράδειγμα που δώσαμε στο μοντέλο. Η χρήση του βοηθού ρόλου είναι χρήσιμη εάν έχουμε ένα συγκεκριμένο στυλ ή αποτέλεσμα που θέλουμε να ακολουθήσει το μοντέλο.

Όσον αφορά τις παραμέτρους, ακολουθούν απλές εξηγήσεις για κάθε παράμετρο που χρησιμοποιήσαμε:

  • max_tokens: Αυτή η παράμετρος ορίζει τον μέγιστο αριθμό λέξεων που μπορεί να δημιουργήσει το μοντέλο.
  • θερμοκρασία: Αυτή η παράμετρος ελέγχει την μη προβλεψιμότητα της παραγωγής του μοντέλου. Μια υψηλότερη θερμοκρασία έχει ως αποτέλεσμα τα αποτελέσματα που είναι πιο ποικίλα και ευφάνταστα. Το αποδεκτό εύρος είναι από το 0 έως το άπειρο, αν και οι τιμές πάνω από το 2 είναι ασυνήθιστες.
  • top_p: Γνωστή και ως δειγματοληψία πυρήνων, αυτή η παράμετρος βοηθά στον προσδιορισμό του υποσυνόλου της κατανομής πιθανοτήτων από την οποία το μοντέλο αντλεί την έξοδο του. Για παράδειγμα, μια τιμή top_p 0.1 σημαίνει ότι το μοντέλο λαμβάνει υπόψη μόνο το κορυφαίο 10% της κατανομής πιθανότητας για δειγματοληψία. Οι τιμές του μπορεί να κυμαίνονται από 0 έως 1, με υψηλότερες τιμές που επιτρέπουν μεγαλύτερη ποικιλομορφία εξόδου.
  • συχνότητα_ποινή: Αυτό τιμωρεί τα επαναλαμβανόμενα διακριτικά στην έξοδο του μοντέλου. Η τιμή της ποινής μπορεί να κυμαίνεται από -2 έως 2, όπου οι θετικές τιμές αποθαρρύνουν την επανάληψη των διακριτικών και οι αρνητικές τιμές κάνουν το αντίθετο, ενθαρρύνοντας την επαναλαμβανόμενη χρήση λέξεων. Η τιμή 0 υποδηλώνει ότι δεν εφαρμόζεται ποινή για επανάληψη.

Τέλος, μπορείτε να αλλάξετε την έξοδο του μοντέλου σε μορφή JSON με τον ακόλουθο κώδικα.

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)

 

{
"jargons": [
"Μόχλευση προγνωστικών αναλυτικών στοιχείων για να ξεκλειδώσετε πολύτιμες πληροφορίες",
«Εμβάθυνση στις περιπλοκές των προηγμένων αλγορίθμων μηχανικής μάθησης»,
«Αξιοποίηση της δύναμης των μεγάλων δεδομένων για τη λήψη αποφάσεων που βασίζονται σε δεδομένα»
]
}

Το αποτέλεσμα είναι σε μορφή JSON και ακολουθεί την προτροπή που εισάγουμε στο μοντέλο.

Για να ολοκληρωθεί Τεκμηρίωση API δημιουργίας κειμένου, μπορείτε να τα δείτε στην ειδική σελίδα τους.

Το μοντέλο OpenAI είναι χρήσιμο για περιπτώσεις χρήσης δημιουργίας κειμένου και μπορεί επίσης να καλέσει το API για σκοπούς δημιουργίας εικόνας. 

Χρησιμοποιώντας το μοντέλο DALL·E, μπορούμε να δημιουργήσουμε μια εικόνα όπως ζητείται. Ο απλός τρόπος για να το εκτελέσετε είναι χρησιμοποιώντας τον ακόλουθο κώδικα.

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 με Python
Εικόνα που δημιουργήθηκε με DALL·E 3
 

Για τις παραμέτρους, ακολουθούν οι επεξηγήσεις:

  • μοντέλο: Το μοντέλο δημιουργίας εικόνας προς χρήση. Προς το παρόν, το API υποστηρίζει μόνο μοντέλα DALL·E 3 και DALL·E 2. 
  • έγκαιρη: Αυτή είναι η περιγραφή κειμένου βάσει της οποίας το μοντέλο θα δημιουργήσει μια εικόνα. 
  • μέγεθος: Καθορίζει την ανάλυση της παραγόμενης εικόνας. Υπάρχουν τρεις επιλογές για το μοντέλο DALL·E 3 (1024×1024, 1024×1792 ή 1792×1024).
  • ποιότητα: Αυτή η παράμετρος επηρεάζει την ποιότητα της παραγόμενης εικόνας. Εάν απαιτείται υπολογιστικός χρόνος, το "standard" είναι ταχύτερο από το "hd".
  • n: Καθορίζει τον αριθμό των εικόνων που θα δημιουργηθούν βάσει της προτροπής. Το DALL·E 3 μπορεί να δημιουργήσει μόνο μία εικόνα κάθε φορά. Το DALL·E 2 μπορεί να δημιουργήσει έως και 10 τη φορά.

Είναι επίσης δυνατή η δημιουργία μιας εικόνας παραλλαγής από την υπάρχουσα εικόνα, αν και είναι διαθέσιμη μόνο χρησιμοποιώντας το μοντέλο DALL·E 2. Το API δέχεται μόνο τετράγωνες εικόνες PNG κάτω από 4 MB επίσης.

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)

 

Η εικόνα μπορεί να μην είναι τόσο καλή όσο οι γενιές DALL·E 3, καθώς χρησιμοποιεί το παλαιότερο μοντέλο.

Η OpenAI είναι μια κορυφαία εταιρεία που παρέχει μοντέλα που μπορούν να κατανοήσουν την εισαγωγή εικόνας. Αυτό το μοντέλο ονομάζεται μοντέλο Vision, μερικές φορές ονομάζεται GPT-4V. Το μοντέλο είναι ικανό να απαντήσει σε ερωτήσεις με βάση την εικόνα που δώσαμε.

Ας δοκιμάσουμε το API μοντέλου Vision. Σε αυτό το παράδειγμα, θα χρησιμοποιούσα τη λευκή εικόνα πιάνου που δημιουργούμε από το μοντέλο DALL·E 3 και θα την αποθηκεύσω τοπικά. Επίσης, θα δημιουργούσα μια συνάρτηση που παίρνει τη διαδρομή της εικόνας και επιστρέφει το κείμενο περιγραφής της εικόνας. Μην ξεχάσετε να αλλάξετε τη μεταβλητή api_key στο κλειδί API.

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

 

Αυτή η εικόνα παρουσιάζει ένα πιάνο με ουρά τοποθετημένο σε ένα γαλήνιο περιβάλλον στην παραλία. Το πιάνο είναι λευκό, υποδηλώνοντας ένα φινίρισμα που συχνά συνδέεται με την κομψότητα. Το όργανο βρίσκεται ακριβώς στην άκρη της ακτογραμμής, όπου τα απαλά κύματα χαϊδεύουν ελαφρά την άμμο, δημιουργώντας έναν αφρό που μόλις αγγίζει τη βάση του πιάνου και το αντίστοιχο σκαμπό. Το περιβάλλον της παραλίας υποδηλώνει μια αίσθηση ηρεμίας και απομόνωσης με καταγάλανους ουρανούς, αφράτα σύννεφα στο βάθος και μια ήρεμη θάλασσα να απλώνεται στον ορίζοντα. Διάσπαρτα γύρω από το πιάνο στην άμμο υπάρχουν πολλά κοχύλια διαφόρων μεγεθών και σχημάτων, που αναδεικνύουν τη φυσική ομορφιά και τη γαλήνια ατμόσφαιρα του σκηνικού. Η αντιπαράθεση ενός οργάνου κλασικής μουσικής σε ένα φυσικό περιβάλλον παραλίας δημιουργεί μια σουρεαλιστική και οπτικά ποιητική σύνθεση.

Μπορείτε να τροποποιήσετε τις τιμές κειμένου στο παραπάνω λεξικό για να ταιριάζουν με τις απαιτήσεις του μοντέλου Vision.

Το OpenAI παρέχει επίσης ένα μοντέλο για τη δημιουργία ήχου με βάση το μοντέλο Text-to-Speech. Είναι πολύ εύκολο στη χρήση, αν και το στυλ φωνητικής αφήγησης είναι περιορισμένο. Επίσης, το μοντέλο έχει υποστηρίξει πολλές γλώσσες, τις οποίες μπορείτε να δείτε σε αυτές σελίδα υποστήριξης γλώσσας.

Για να δημιουργήσετε τον ήχο, μπορείτε να χρησιμοποιήσετε τον παρακάτω κώδικα.

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)

 

Θα πρέπει να δείτε το αρχείο ήχου στον κατάλογό σας. Προσπαθήστε να το παίξετε και δείτε αν είναι στο ύψος των προτύπων σας. 

Προς το παρόν, υπάρχουν μόνο μερικές παράμετροι που μπορείτε να χρησιμοποιήσετε για το μοντέλο Text-to-Speech:

  • μοντέλο: Το μοντέλο Text-to-Speech προς χρήση. Διατίθενται μόνο δύο μοντέλα (tts-1 ή tts-1-hd), όπου το tts-1 βελτιστοποιεί την ταχύτητα και το tts-1-hd για ποιότητα.
  • φωνή: Το στυλ φωνής που χρησιμοποιείται όπου όλη η φωνή έχει βελτιστοποιηθεί στα αγγλικά. Η επιλογή είναι κράμα, ηχώ, μύθος, όνυχας, nova και shimmer.
  • answer_format: Το αρχείο μορφής ήχου. Επί του παρόντος, οι υποστηριζόμενες μορφές είναι mp3, opus, aac, flac, wav και pcm.
  • ταχύτητα: Η παραγόμενη ταχύτητα ήχου. Μπορείτε να επιλέξετε τιμές μεταξύ 0.25 και 4. 
  • input: Το κείμενο για τη δημιουργία του ήχου. Προς το παρόν, το μοντέλο υποστηρίζει μόνο έως 4096 χαρακτήρες.

Το OpenAI παρέχει τα μοντέλα για τη μεταγραφή και τη μετάφραση δεδομένων ήχου. Χρησιμοποιώντας το μοντέλο whispers, μπορούμε να μεταγράψουμε ήχο από την υποστηριζόμενη γλώσσα στα αρχεία κειμένου και να τα μεταφράσουμε στα αγγλικά.

Ας δοκιμάσουμε μια απλή μεταγραφή από το αρχείο ήχου που δημιουργήσαμε προηγουμένως.

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)

 

Λατρεύω την επιστήμη των δεδομένων και τη μηχανική μάθηση.

Είναι επίσης δυνατή η εκτέλεση μετάφρασης από τα αρχεία ήχου στην αγγλική γλώσσα. Το μοντέλο δεν είναι ακόμη διαθέσιμο για μετάφραση σε άλλη γλώσσα.

from openai import OpenAI
client = OpenAI()

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

Εξερευνήσαμε διάφορες υπηρεσίες μοντέλων που παρέχει το OpenAI, από μοντέλα Δημιουργία Κειμένου, Δημιουργία Εικόνας, Δημιουργία ήχου, Όραμα και μοντέλα μετατροπής κειμένου σε ομιλία. Κάθε μοντέλο έχει την παράμετρο API και τις προδιαγραφές που πρέπει να μάθετε πριν το χρησιμοποιήσετε.
 
 

Cornellius Yudha Wijaya είναι βοηθός διευθυντής επιστήμης δεδομένων και συγγραφέας δεδομένων. Ενώ εργάζεται με πλήρη απασχόληση στην Allianz Indonesia, του αρέσει να μοιράζεται συμβουλές για Python και δεδομένα μέσω των μέσων κοινωνικής δικτύωσης και των μέσων συγγραφής. Ο Cornellius γράφει για μια ποικιλία θεμάτων AI και μηχανικής μάθησης.

spot_img

Τελευταία Νοημοσύνη

spot_img