Zephyrnet-logo

OpenAI API voor beginners: uw eenvoudig te volgen startersgids – KDnuggets

Datum:

OpenAI API voor beginners: uw eenvoudig te volgen startersgids
Afbeelding door auteur
 

In deze tutorial leren we hoe we de OpenAI API voor verschillende gebruiksscenario's kunnen instellen en gebruiken. De tutorial is zo ontworpen dat hij gemakkelijk te volgen is, zelfs voor mensen met beperkte kennis van programmeren in Python. We onderzoeken hoe iedereen reacties kan genereren en toegang kan krijgen tot grote taalmodellen van hoge kwaliteit.

De OpenAI-API geeft ontwikkelaars eenvoudig toegang tot een breed scala aan AI-modellen die zijn ontwikkeld door OpenAI. Het biedt een gebruiksvriendelijke interface waarmee ontwikkelaars intelligente functies, mogelijk gemaakt door de modernste OpenAI-modellen, in hun applicaties kunnen integreren. De API kan voor verschillende doeleinden worden gebruikt, waaronder het genereren van tekst, multi-turn chat, insluitingen, transcriptie, vertaling, tekst-naar-spraak, beeldbegrip en het genereren van afbeeldingen. Bovendien is de API compatibel met curl, Python en Node.js. 

Om aan de slag te gaan met de OpenAI API, moet u eerst een account aanmaken op openai.com. Voorheen kreeg elke gebruiker gratis tegoed, maar nu moeten nieuwe gebruikers tegoed kopen. 

Als u tegoed wilt kopen, gaat u naar 'Instellingen', vervolgens naar 'Facturering' en ten slotte naar 'Betaalgegevens toevoegen'. Voer uw bankpas- of creditcardgegevens in en zorg ervoor dat u automatisch opladen uitschakelt. Zodra u 10 USD heeft geladen, kunt u deze een jaar lang gebruiken.

 

OpenAI API voor beginners: uw eenvoudig te volgen startersgids
 

Laten we de API-sleutel maken door naar “API-sleutels” te navigeren en “Nieuwe geheime sleutel maken” te selecteren. Geef het een naam en klik op “Geheime sleutel maken”.

 

OpenAI API voor beginners: uw eenvoudig te volgen startersgids
 

Kopieer de API en maak een omgevingsvariabele op de lokale machine.

 

OpenAI API voor beginners: uw eenvoudig te volgen startersgids
 

Ik gebruik Deepnote als mijn IDE. Het is eenvoudig om omgevingsvariabelen te maken. Ga eenvoudigweg naar “Integratie”, selecteer “maak omgevingsvariabele”, geef een naam en waarde voor de sleutel op en maak de integratie.

 

OpenAI API voor beginners: uw eenvoudig te volgen startersgids
 

Vervolgens zullen we het OpenAI Python-pakket installeren met behulp van pip. 

%pip install --upgrade openai

We gaan nu een client maken die wereldwijd toegang heeft tot verschillende soorten modellen.

Als u uw omgevingsvariabele heeft ingesteld met de naam “OPENAI_API_KEY”, hoeft u de OpenAI-client geen API-sleutel te geven.

from openai import OpenAI

client = OpenAI()

Houd er rekening mee dat u alleen een API-sleutel moet opgeven als de naam van uw omgevingsvariabele afwijkt van de standaardnaam.

import os
from openai import OpenAI

client = OpenAI(
  api_key=os.environ.get("SECRET_KEY"),
 )

We zullen een oude functie gebruiken om het antwoord te genereren. De voltooiingsfunctie vereist de modelnaam, prompt en andere argumenten om het antwoord te genereren.

completion = client.completions.create(
    model="gpt-3.5-turbo-instruct",
    prompt="Write a short story about Elon Musk being the biggest troll.",
    max_tokens=300,
    temperature=0.7,
)
print(completion.choices[0].text)

 

Het GPT3.5-model heeft een geweldig verhaal over Elon Musk opgeleverd. 

 

OpenAI API voor beginners: uw eenvoudig te volgen startersgids
 

We kunnen onze reactie ook streamen door een extra argument 'stream' op te geven. 

In plaats van te wachten op het volledige antwoord, maakt de streamfunctie het mogelijk om de uitvoer te verwerken zodra deze wordt gegenereerd. Deze aanpak helpt de waargenomen latentie te verminderen door de uitvoer van het taalmodel token per token te retourneren in plaats van alles in één keer.

stream = client.completions.create(
    model="gpt-3.5-turbo-instruct",
    prompt="Write a Python code for accessing the REST API securely.",
    max_tokens=300,
    temperature=0.7,
    stream = True
)
for chunk in stream:
        print(chunk.choices[0].text, end="")

 

OpenAI API voor beginners: uw eenvoudig te volgen startersgids

Het model maakte gebruik van API-chatvoltooiing. Laten we, voordat we het antwoord genereren, de beschikbare modellen verkennen.   

U kunt de lijst met alle beschikbare modellen bekijken of de Modellen pagina over de officiële documentatie. 

print(client.models.list())

OpenAI API voor beginners: uw eenvoudig te volgen startersgids
 

We zullen de nieuwste versie van GPT-3.5 gebruiken en deze voorzien van een lijst met een woordenboek voor systeemprompts en gebruikersberichten. Zorg ervoor dat u hetzelfde berichtpatroon volgt.

completion = client.chat.completions.create(
    model="gpt-3.5-turbo-1106",
    messages=[
        {
            "role": "system",
            "content": "You are an experienced data scientist, adept at presenting complex data concepts with creativity.",
        },
        {
            "role": "user",
            "content": "What is Feature Engineering, and what are some common methods?",
        },
    ],
)

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

 

Zoals we kunnen zien, hebben we een soortgelijk resultaat gegenereerd als de oude API. Waarom deze API gebruiken? Vervolgens zullen we leren waarom de API voor het voltooien van chats flexibeler en gemakkelijker te gebruiken is.

Feature engineering is the process of selecting, creating, or transforming features (variables) in a dataset to improve the performance of machine learning models. It involves identifying the most relevant and informative features and preparing them for model training. Effective feature engineering can significantly enhance the predictive power of a model and its ability to generalize to new data.

Some common methods of feature engineering include:

1. Imputation: Handling missing values in features by filling them in with meaningful values such as the mean, median, or mode of the feature.

2. One-Hot Encoding: Converting categorical variables into binary vectors to represent different categories as individual features.

3. Normalization/Standardization: Scaling numerical features to bring t.........

 

We zullen nu leren hoe we een multi-turn gesprek kunnen voeren met ons AI-model. Om dit te doen, voegen we het antwoord van de assistent toe aan het vorige gesprek en nemen we ook de nieuwe prompt op in hetzelfde berichtformaat. Daarna zullen we een lijst met woordenboeken verstrekken aan de functie voor het voltooien van de chat.

chat=[
    {"role": "system", "content": "You are an experienced data scientist, adept at presenting complex data concepts with creativity."},
    {"role": "user", "content": "What is Feature Engineering, and what are some common methods?"}
  ]
chat.append({"role": "assistant", "content": str(completion.choices[0].message.content)})
chat.append({"role": "user", "content": "Can you summarize it, please?"})

completion = client.chat.completions.create(
  model="gpt-3.5-turbo-1106",
  messages=chat
)

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

 

Het model heeft de context begrepen en de feature-engineering voor ons samengevat.

Feature engineering involves selecting, creating, or transforming features in a dataset to enhance the performance of machine learning models. Common methods include handling missing values, converting categorical variables, scaling numerical features, creating new features using interactions and polynomials, selecting important features, extracting time-series and textual features, aggregating information, and reducing feature dimensionality. These techniques aim to improve the model's predictive power by refining and enriching the input features.

Om geavanceerde toepassingen te ontwikkelen, moeten we tekst omzetten in insluitingen. Deze insluitingen worden gebruikt voor het zoeken naar gelijkenissen, semantisch zoeken en aanbevelingsmotoren. We kunnen insluitingen genereren door de API-tekst en modelnaam op te geven. Het is zo simpel. 

text = "Data Engineering is a rapidly growing field that focuses on the collection, storage, processing, and analysis of large volumes of structured and unstructured data. It involves various tasks such as data extraction, transformation, loading (ETL), data modeling, database design, and optimization to ensure that data is accessible, accurate, and relevant for decision-making purposes."

DE_embeddings = client.embeddings.create(input=text, model="text-embedding-3-small")
print(chat_embeddings.data[0].embedding)

 

[0.0016297283582389355, 0.0013418874004855752, 0.04802832752466202, -0.041273657232522964, 0.02150309458374977, 0.004967313259840012,.......]

Nu kunnen we tekst naar spraak, spraak naar tekst converteren en deze ook vertalen met behulp van de audio-API. 

transcripties

We zullen de Wi-Fi 7 zal alles veranderen YouTube-video en converteer deze naar mp3. Daarna openen we het bestand en leveren het aan de audiotranscriptie-API.

audio_file= open("Data/techlinked.mp3", "rb")
transcript = client.audio.transcriptions.create(
  model="whisper-1",
  file=audio_file
)
print(transcript.text)

 

Het Whisper-model is geweldig. Het heeft een perfecte transcriptie van de audio. 

The Consumer Electronics Show has officially begun in Las Vegas and we'll be bringing you all the highlights from right here in our regular studio where it's safe and clean and not a desert. I hate sand. The Wi-Fi Alliance announced that they have officially confirmed the Wi-Fi 7 standard and they've already started to certify devices to ensure they work together. Unlike me and Selena, that was never gonna last. The new standard will have twice the channel bandwidth of Wi-Fi 5, 6, and 6E, making it better for, surprise,......

Vertaling

We kunnen de Engelse audio ook in een andere taal transcriberen. In ons geval zullen we het omzetten in Urdu-taal. We voegen gewoon nog een argument 'taal' toe en geven het de ISO-taalcode 'ur'.

translations = client.audio.transcriptions.create(
    model="whisper-1",
    response_format="text",
    language="ur",
    file=audio_file,
)

print(translations)

 

De vertaling voor niet-Latijnse talen is onvolmaakt, maar bruikbaar voor een minimaal levensvatbaar product.

کنسومر ایلیکٹرانک شاہی نے لاس بیگیس میں شامل شروع کیا ہے اور ہم آپ کو جمہوری بہترین چیزیں اپنے ریگلر سٹوڈیو میں یہاں جارہے ہیں جہاں یہ آمید ہے اور خوبصورت ہے اور دنیا نہیں ہے مجھے سانڈ بھولتا ہے وائ فائی آلائنٹس نے اعلان کیا کہ انہوں نے وائ فائی سیبن سٹانڈرڈ کو شامل شروع کیا اور انہوں ن........

Tekst-naar-spraak

Om uw tekst om te zetten in natuurlijk klinkende audio, gebruiken we de spraak-API en voorzien we deze van de modelnaam, de naam van de stemacteur en de invoertekst. Vervolgens slaan we het audiobestand op in onze map "Gegevens". 

response = client.audio.speech.create(
  model="tts-1",
  voice="alloy",
  input= '''I see skies of blue and clouds of white
            The bright blessed days, the dark sacred nights
            And I think to myself
            What a wonderful world
         '''
)

response.stream_to_file("Data/song.mp3")

 

Om het audiobestand binnen Deepnote Notebook te beluisteren, gebruiken we de IPython Audio-functie.

from IPython.display import Audio
Audio("Data/song.mp3")

 

OpenAI API voor beginners: uw eenvoudig te volgen startersgids

De OpenAI API biedt gebruikers toegang tot een multimodaal model via de functie voor het voltooien van chats. Om beelden te begrijpen kunnen we gebruik maken van het nieuwste GPT-4 visiemodel. 

In het berichtargument hebben we een prompt gegeven voor het stellen van vragen over de afbeelding en de afbeeldings-URL. De afbeelding is afkomstig van Pixabay. Zorg ervoor dat u hetzelfde berichtformaat volgt om fouten te voorkomen.

response = client.chat.completions.create(
    model="gpt-4-vision-preview",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Could you please identify this image's contents and provide its location?",
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://images.pexels.com/photos/235731/pexels-photo-235731.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2",
                    },
                },
            ],
        }
    ],
    max_tokens=300,
)

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

 

De uitvoer legt het beeld perfect uit. 

This is an image of a person carrying a large number of rice seedlings on a carrying pole. The individual is wearing a conical hat, commonly used in many parts of Asia as protection from the sun and rain, and is walking through what appears to be a flooded field or a wet area with lush vegetation in the background. The sunlight filtering through the trees creates a serene and somewhat ethereal atmosphere.

It's difficult to determine the exact location from the image alone, but this type of scene is typically found in rural areas of Southeast Asian countries like Vietnam, Thailand, Cambodia, or the Philippines, where rice farming is a crucial part of the agricultural industry and landscape.

 

In plaats van een afbeeldings-URL op te geven, kunnen we ook een lokaal afbeeldingsbestand laden en dit aan de chatvoltooiings-API doorgeven. Om dit te doen, moeten we eerst de afbeelding downloaden via Manjeet Singh Yadav van pexels.com.

!curl -o /work/Data/indian.jpg "https://images.pexels.com/photos/1162983/pexels-photo-1162983.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2"

 

Vervolgens laden we de afbeelding en coderen we in base64-indeling. 

import base64

def encode_image(image_path):
  with open(image_path, "rb") as image_file:
    return base64.b64encode(image_file.read()).decode('utf-8')

image_path = "Data/indian.jpg"

# generating the base64 string
base64_image = encode_image(image_path)

 

In plaats van de afbeeldings-URL op te geven, zullen we de metagegevens en de base64-tekenreeks van de afbeelding opgeven.

response = client.chat.completions.create(
    model="gpt-4-vision-preview",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Could you please identify this image's contents.",
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/jpeg;base64,{base64_image}"
                    },
                },
            ],
        }
    ],
    max_tokens=100,
)

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

 

Het model heeft het beeld met succes geanalyseerd en er een gedetailleerde uitleg over gegeven.

The image shows a woman dressed in traditional Indian attire, specifically a classical Indian saree with gold and white colors, which is commonly associated with the Indian state of Kerala, known as the Kasavu saree. She is adorned with various pieces of traditional Indian jewelry including a maang tikka (a piece of jewelry on her forehead), earrings, nose ring, a choker, and other necklaces, as well as bangles on her wrists.

The woman's hairstyle features jasmine flowers arranged in

We kunnen ook afbeeldingen genereren met behulp van het DALLE-3-model. We hoeven alleen maar de modelnaam, prompt, grootte, kwaliteit en aantal afbeeldingen op te geven aan de afbeeldingen-API. 

response = client.images.generate(
  model="dall-e-3",
  prompt="a young woman sitting on the edge of a mountain",
  size="1024x1024",
  quality="standard",
  n=1,
)

image_url = response.data[0].url

 

De gegenereerde afbeelding wordt online opgeslagen en u kunt deze downloaden om deze lokaal te bekijken. Om dit te doen, zullen we de afbeelding downloaden met de `request`-functie, waarbij we de afbeeldings-URL en de lokale map opgeven waar u deze wilt opslaan. Daarna zullen we de functie Afbeelding van de Pillow-bibliotheek gebruiken om de afbeelding te openen en weer te geven.

import urllib.request

from PIL import Image

urllib.request.urlretrieve(image_url, '/work/Data/woman.jpg')

img = Image.open('/work/Data/woman.jpg')

img.show()

 

We hebben een gegenereerde afbeelding van hoge kwaliteit ontvangen. Het is gewoon geweldig!

 

OpenAI API voor beginners: uw eenvoudig te volgen startersgids
 

Als je moeite hebt met het uitvoeren van een van de OpenAI Python API's, bekijk dan gerust mijn project op Dieptepunt.

Ik experimenteer al een tijdje met OpenAPI en uiteindelijk hebben we slechts 0.22 dollar aan tegoed gebruikt, wat ik redelijk betaalbaar vind. Met mijn gids kunnen zelfs beginners beginnen met het bouwen van hun eigen AI-applicaties. Het is een eenvoudig proces: u hoeft uw eigen model niet te trainen of te implementeren. U krijgt toegang tot de modernste modellen met behulp van de API, die bij elke nieuwe release voortdurend wordt verbeterd.

 

OpenAI API voor beginners: uw eenvoudig te volgen startersgids
 

In deze handleiding bespreken we hoe u de OpenAI Python API instelt en eenvoudige tekstreacties genereert. We leren ook over multiturn-chat, insluitingen, transcriptie, vertaling, tekst-naar-spraak, visie en API's voor het genereren van afbeeldingen. 

Laat het me weten als je wilt dat ik deze API's gebruik om een ​​geavanceerde AI-applicatie te bouwen. 

Bedankt voor het lezen.
 
 

Abid Ali Awan (@1abidaliawan) is een gecertificeerde datawetenschapper-professional die dol is op het bouwen van machine learning-modellen. Momenteel richt hij zich op het creëren van content en het schrijven van technische blogs over machine learning en data science-technologieën. Abid heeft een Master in Technologie Management en een Bachelor in Telecommunicatie Engineering. Zijn visie is om een ​​AI-product te bouwen met behulp van een grafisch neuraal netwerk voor studenten die worstelen met een psychische aandoening.

spot_img

Laatste intelligentie

spot_img