Zephyrnet-logotyp

OpenAI API för nybörjare: Din lättanvända startguide – KDnuggets

Datum:

OpenAI API för nybörjare: din lätta att följa startguide
Bild av författare
 

I den här handledningen kommer vi att lära oss hur du ställer in och använder OpenAI API för olika användningsfall. Handledningen är utformad för att vara lätt att följa, även för dem med begränsad kunskap om Python-programmering. Vi ska utforska hur vem som helst kan generera svar och få tillgång till stora språkmodeller av hög kvalitet.

Smakämnen Öppna AI API låter utvecklare enkelt komma åt ett brett utbud av AI-modeller utvecklade av OpenAI. Det ger ett användarvänligt gränssnitt som gör det möjligt för utvecklare att integrera intelligenta funktioner som drivs av toppmoderna OpenAI-modeller i sina applikationer. API:et kan användas för olika ändamål, inklusive textgenerering, multi-turn chat, inbäddningar, transkription, översättning, text-till-tal, bildförståelse och bildgenerering. Dessutom är API:et kompatibelt med curl, Python och Node.js. 

För att komma igång med OpenAI API måste du först skapa ett konto på openai.com. Tidigare fick varje användare gratis kredit, men nu måste nya användare köpa kredit. 

För att köpa kredit, gå till "Inställningar", sedan "Fakturering" och slutligen "Lägg till betalningsinformation". Ange din betal- eller kreditkortsinformation och se till att inaktivera automatisk omdebitering. När du har laddat 10 USD kan du använda den i ett år.

 

OpenAI API för nybörjare: din lätta att följa startguide
 

Låt oss skapa API-nyckeln genom att navigera till "API-nycklar" och välja "Skapa ny hemlig nyckel". Ge den ett namn och klicka på "Skapa hemlig nyckel".

 

OpenAI API för nybörjare: din lätta att följa startguide
 

Kopiera API:et och skapa en miljövariabel på den lokala datorn.

 

OpenAI API för nybörjare: din lätta att följa startguide
 

Jag använder Deepnote som min IDE. Det är enkelt att skapa miljövariabler. Gå helt enkelt till "Integration", välj "skapa miljövariabel", ange ett namn och ett värde för nyckeln och skapa integrationen.

 

OpenAI API för nybörjare: din lätta att följa startguide
 

Därefter kommer vi att installera OpenAI Python-paketet med hjälp av pip. 

%pip install --upgrade openai

Vi kommer nu att skapa en klient som kan komma åt olika typer av modeller globalt.

Om du har ställt in din miljövariabel med namnet "OPENAI_API_KEY", behöver du inte förse OpenAI-klienten med en API-nyckel.

from openai import OpenAI

client = OpenAI()

Observera att du endast ska tillhandahålla en API-nyckel om namnet på din miljövariabel är ett annat än standardnamnet.

import os
from openai import OpenAI

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

Vi kommer att använda en äldre funktion för att generera svaret. Kompletteringsfunktionen kräver modellnamn, prompt och andra argument för att generera svaret.

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)

 

GPT3.5-modellen har genererat en fantastisk historia om Elon Musk. 

 

OpenAI API för nybörjare: din lätta att följa startguide
 

Vi kan också streama vårt svar genom att tillhandahålla ett extra argument "ström". 

Istället för att vänta på det fullständiga svaret, möjliggör stream-funktionen bearbetning av utdata så snart den genereras. Detta tillvägagångssätt hjälper till att minska upplevd latens genom att returnera utdata från språkmodellen token för token snarare än allt på en gång.

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 för nybörjare: din lätta att följa startguide

Modellen använde API-chattkomplettering. Innan vi genererar svaret, låt oss utforska de tillgängliga modellerna.   

Du kan se listan över alla tillgängliga modeller eller läsa Modeller sida på den officiella dokumentationen. 

print(client.models.list())

OpenAI API för nybörjare: din lätta att följa startguide
 

Vi kommer att använda den senaste versionen av GPT-3.5 och förse den med en lista över en ordbok för systemuppmaningar och användarmeddelanden. Se till att följa samma meddelandemönster.

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)

 

Som vi kan se har vi genererat ett liknande resultat som det äldre API:et. Så varför använda detta API? Därefter kommer vi att lära oss varför API:et för att slutföra chatt är mer flexibelt och enklare att använda.

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.........

 

Vi kommer nu att lära oss hur man för en multi-turn konversation med vår AI-modell. För att göra detta lägger vi till assistentens svar på föregående konversation och inkluderar även den nya prompten i samma meddelandeformat. Efter det kommer vi att tillhandahålla en lista med ordböcker till chattkompletteringsfunktionen.

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)

 

Modellen har förstått sammanhanget och sammanfattat funktionstekniken åt oss.

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.

För att utveckla avancerade applikationer behöver vi konvertera text till inbäddningar. Dessa inbäddningar används för likhetssökning, semantisk sökning och rekommendationsmotorer. Vi kan generera inbäddningar genom att tillhandahålla API-text och modellnamn. Det är så enkelt. 

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 kan vi konvertera text till tal, tal till text och även översätta det med ljud-API. 

transkriptioner

Vi kommer att använda Wi-Fi 7 kommer att förändra allt YouTube-video och konvertera den till mp3. Efter det kommer vi att öppna filen och tillhandahålla den till ljudtranskriptions-API.

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

 

Whisper-modellen är fantastisk. Den har en perfekt transkription av ljudet. 

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,......

Översättning

Vi kan också transkribera det engelska ljudet till ett annat språk. I vårt fall kommer vi att konvertera det till urdu. Vi kommer bara att lägga till ett annat argument `språk` och förse det med ISO-språkkoden "ur".

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

print(translations)

 

Översättningen för icke-latinska språk är ofullkomlig, men användbar för en minsta möjliga produkt.

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

Text-till-tal

För att konvertera din text till naturligt ljud använder vi speech API och förser den med modellnamnet, röstskådespelarens namn och inmatad text. Därefter kommer vi att spara ljudfilen i vår "Data" -mapp. 

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")

 

För att lyssna på ljudfilen i Deepnote Notebook kommer vi att använda IPython Audio-funktionen.

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

 

OpenAI API för nybörjare: din lätta att följa startguide

OpenAI API ger användarna tillgång till en multimodal modell genom chattkompletteringsfunktionen. För att förstå bilder kan vi använda den senaste GPT-4 visionmodellen. 

I meddelandeargumentet har vi tillhandahållit en uppmaning om att ställa frågor om bilden och bildens URL. Bilden är hämtad från Pixabay. Se till att du följer samma meddelandeformat för att undvika fel.

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)

 

Utgången förklarar bilden perfekt. 

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.

 

Istället för att tillhandahålla en bild-URL kan vi också ladda en lokal bildfil och tillhandahålla den till chattkompletterings-API:et. För att göra detta måste vi först ladda ner bilden av Manjeet Singh Yadav från 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"

 

Sedan kommer vi att ladda bilden och koda i base64-format. 

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)

 

Istället för att tillhandahålla bildens URL kommer vi att tillhandahålla metadata och bildens base64-sträng.

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)

 

Modellen har framgångsrikt analyserat bilden och gett en detaljerad förklaring om den.

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

Vi kan också skapa bilder med DALLE-3-modellen. Vi behöver bara tillhandahålla modellnamn, prompt, storlek, kvalitet och antal bilder till bilders 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

 

Den genererade bilden sparas online och du kan ladda ner den för att se den lokalt. För att göra detta kommer vi att ladda ner bilden med funktionen `request`, som tillhandahåller bildens URL och den lokala katalogen där du vill spara den. Efter det kommer vi att använda Pillow-bibliotekets bildfunktion för att öppna och visa bilden.

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()

 

Vi har fått en genererad bild av hög kvalitet. Det är helt enkelt fantastiskt!

 

OpenAI API för nybörjare: din lätta att följa startguide
 

Om du kämpar för att köra någon av OpenAI Python API:erna, kolla gärna in mitt projekt på Deepnote.

Jag har experimenterat med OpenAPI ett tag nu, och det slutade med att vi bara använde 0.22 dollar i kredit, vilket jag tycker är ganska överkomligt. Med min guide kan även nybörjare börja bygga sina egna AI-applikationer. Det är en enkel process – du behöver inte träna din egen modell eller distribuera den. Du kan komma åt toppmoderna modeller med hjälp av API:t, som ständigt förbättras med varje ny version.

 

OpenAI API för nybörjare: din lätta att följa startguide
 

I den här guiden tar vi upp hur du ställer in OpenAI Python API och genererar enkla textsvar. Vi lär oss också om multiturn chat, inbäddningar, transkription, översättning, text-till-tal, vision och bildgenerering API:er. 

Låt mig veta om du vill att jag ska använda dessa API:er för att bygga en avancerad AI-applikation. 

Tack för att du läste.
 
 

Abid Ali Awan (@1abidaliawan) är en certifierad datavetare som älskar att bygga modeller för maskininlärning. För närvarande fokuserar han på att skapa innehåll och skriva tekniska bloggar om maskininlärning och datavetenskap. Abid har en magisterexamen i Technology Management och en kandidatexamen i telekommunikationsteknik. Hans vision är att bygga en AI-produkt med hjälp av ett grafiskt neuralt nätverk för studenter som kämpar med psykisk ohälsa.

plats_img

Senaste intelligens

plats_img