Bilde av forfatter
I denne opplæringen lærer vi hvordan du setter opp og bruker OpenAI API for ulike brukstilfeller. Opplæringen er designet for å være enkel å følge, selv for de med begrenset kunnskap om Python-programmering. Vi skal utforske hvordan hvem som helst kan generere svar og få tilgang til store språkmodeller av høy kvalitet.
De Åpne AI API lar utviklere enkelt få tilgang til et bredt spekter av AI-modeller utviklet av OpenAI. Det gir et brukervennlig grensesnitt som gjør det mulig for utviklere å inkorporere intelligente funksjoner drevet av toppmoderne OpenAI-modeller i applikasjonene sine. API-en kan brukes til ulike formål, inkludert tekstgenerering, multi-turn chat, innebygging, transkripsjon, oversettelse, tekst-til-tale, bildeforståelse og bildegenerering. I tillegg er API-en kompatibel med curl, Python og Node.js.
For å komme i gang med OpenAI API, må du først opprette en konto på openai.com. Tidligere fikk hver bruker gratis kreditt, men nå må nye brukere kjøpe kreditt.
For å kjøpe kreditt, gå til «Innstillinger», deretter «Fakturering» og til slutt «Legg til betalingsdetaljer». Skriv inn debet- eller kredittkortinformasjonen din, og sørg for å deaktivere automatisk påfylling. Når du har lastet 10 USD, kan du bruke den i et år.
La oss lage API-nøkkelen ved å navigere til "API-nøkler" og velge "Opprett ny hemmelig nøkkel". Gi den et navn og klikk på "Opprett hemmelig nøkkel".
Kopier API og lag en miljøvariabel på den lokale maskinen.
Jeg bruker Deepnote som min IDE. Det er enkelt å lage miljøvariabler. Bare gå til "Integrasjon", velg "opprett miljøvariabel", oppgi navn og verdi for nøkkelen, og lag integrasjonen.
Deretter vil vi installere OpenAI Python-pakken ved å bruke pip.
%pip install --upgrade openai
Vi vil nå opprette en klient som kan få tilgang til ulike typer modeller globalt.
Hvis du har satt miljøvariabelen din med navnet "OPENAI_API_KEY", trenger du ikke gi OpenAI-klienten en API-nøkkel.
from openai import OpenAI
client = OpenAI()
Vær oppmerksom på at du bare skal oppgi en API-nøkkel hvis navnet på miljøvariabelen din er forskjellig fra standarden.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("SECRET_KEY"),
)
Vi vil bruke en eldre funksjon for å generere svaret. Fullføringsfunksjonen krever modellnavnet, ledeteksten og andre argumenter for å generere 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 generert en fantastisk historie om Elon Musk.
Vi kan også streame svaret vårt ved å gi et ekstra argument "stream".
I stedet for å vente på hele svaret, muliggjør stream-funksjonen behandling av utdata så snart den er generert. Denne tilnærmingen bidrar til å redusere opplevd latens ved å returnere utdataene fra språkmodellen token for token i stedet for alt på en gang.
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="")
Modellen brukte API-chatfullføring. Før du genererer svaret, la oss utforske de tilgjengelige modellene.
Du kan se listen over alle tilgjengelige modeller eller lese Modeller side på den offisielle dokumentasjonen.
print(client.models.list())
Vi vil bruke den nyeste versjonen av GPT-3.5 og gi den en liste over en ordbok for systemmeldinger og brukermeldinger. Sørg for å følge samme meldingsmø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 generert et lignende resultat som det eldre API. Så hvorfor bruke denne APIen? Deretter skal vi lære hvorfor chat fullførings-APIet er mer fleksibelt og enklere å bruke.
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 skal nå lære hvordan du kan ha en samtale med flere svinger med AI-modellen vår. For å gjøre dette, vil vi legge til assistentens svar på forrige samtale og også inkludere den nye ledeteksten i samme meldingsformat. Etter det vil vi gi en liste over ordbøker til funksjonen for fullføring av 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)
Modellen har forstått konteksten og oppsummert funksjonsteknikken for 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.
For å utvikle avanserte applikasjoner må vi konvertere tekst til innebygging. Disse innebyggingene brukes til likhetssøk, semantisk søk og anbefalingsmotorer. Vi kan generere innbygginger ved å oppgi API-teksten og modellnavnet. Så enkelt er det.
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,.......]
Nå kan vi konvertere tekst til tale, tale til tekst, og også oversette det ved hjelp av lyd-API.
transkripsjoner
Vi skal bruke Wi-Fi 7 vil endre alt YouTube-video og konverter den til mp3. Etter det vil vi åpne filen og gi den til lydtranskripsjons-API.
audio_file= open("Data/techlinked.mp3", "rb")
transcript = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file
)
print(transcript.text)
Whisper-modellen er fantastisk. Den har en perfekt transkripsjon av lyden.
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,......
Oversettelse
Vi kan også transkribere engelsk lyd til et annet språk. I vårt tilfelle vil vi konvertere det til urdu-språk. Vi vil bare legge til et annet argument `språk` og gi det ISO-språkkoden "ur".
translations = client.audio.transcriptions.create(
model="whisper-1",
response_format="text",
language="ur",
file=audio_file,
)
print(translations)
Oversettelsen for ikke-latinske språk er ufullkommen, men brukbar for et minimum levedyktig produkt.
کنسومر ایلیکٹرانک شاہی نے لاس بیگیس میں شامل شروع کیا ہے اور ہم آپ کو جمہوری بہترین چیزیں اپنے ریگلر سٹوڈیو میں یہاں جارہے ہیں جہاں یہ آمید ہے اور خوبصورت ہے اور دنیا نہیں ہے مجھے سانڈ بھولتا ہے وائ فائی آلائنٹس نے اعلان کیا کہ انہوں نے وائ فائی سیبن سٹانڈرڈ کو شامل شروع کیا اور انہوں ن........
Tekst til tale
For å konvertere teksten til naturlig lyd, bruker vi tale-API og gir den modellnavnet, stemmeaktørens navn og inndatatekst. Deretter lagrer vi lydfilen i "Data"-mappen vår.
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")
For å lytte til lydfilen i Deepnote Notebook, bruker vi IPython Audio-funksjonen.
from IPython.display import Audio
Audio("Data/song.mp3")
OpenAI API gir brukere tilgang til en multimodal modell gjennom funksjonen for fullføring av chat. For å forstå bilder kan vi bruke den nyeste GPT-4 vision-modellen.
I meldingsargumentet har vi gitt en melding om å stille spørsmål om bildet og nettadressen til bildet. Bildet er hentet fra Pixabay. Sørg for at du følger samme meldingsformat for å unngå feil.
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)
Utgangen forklarer bildet 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.
I stedet for å oppgi en bilde-URL, kan vi også laste inn en lokal bildefil og gi den til chat fullførings-APIet. For å gjøre dette må vi først laste ned bildet av Manjeet Singh Yadav fra 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"
Deretter laster vi bildet og koder 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)
I stedet for å oppgi nettadressen til bildet, gir vi metadataene og bildets base64-streng.
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 vellykket analysert bildet og gitt en detaljert forklaring om det.
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 også generere bilder ved hjelp av DALLE-3-modellen. Vi må bare oppgi modellnavn, forespørsel, størrelse, kvalitet og antall bilder til bilder-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
Det genererte bildet lagres online, og du kan laste det ned for å se det lokalt. For å gjøre dette, laster vi ned bildet med "request"-funksjonen, og gir bilde-URLen og den lokale katalogen der du vil lagre det. Etter det vil vi bruke Pillow-bibliotekets bildefunksjon for å åpne og vise bildet.
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 mottatt et generert bilde av høy kvalitet. Det er rett og slett fantastisk!
Hvis du sliter med å kjøre noen av OpenAI Python API-ene, kan du gjerne sjekke ut prosjektet mitt på Deepnote.
Jeg har eksperimentert med OpenAPI en stund nå, og vi endte opp med å bruke bare 0.22 dollar i kreditt, noe jeg synes er ganske rimelig. Med guiden min kan til og med nybegynnere begynne å bygge sine egne AI-applikasjoner. Det er en enkel prosess – du trenger ikke trene din egen modell eller distribuere den. Du kan få tilgang til toppmoderne modeller ved å bruke API, som kontinuerlig forbedres med hver nye utgivelse.
I denne veiledningen dekker vi hvordan du setter opp OpenAI Python API og genererer enkle tekstsvar. Vi lærer også om multiturn chat, innebygging, transkripsjon, oversettelse, tekst-til-tale, visjon og bildegenerering APIer.
Gi meg beskjed hvis du vil at jeg skal bruke disse APIene til å bygge en avansert AI-applikasjon.
Takk for at du leser.
Abid Ali Awan (@1abidaliawan) er en sertifisert dataforsker som elsker å bygge maskinlæringsmodeller. For tiden fokuserer han på innholdsskaping og skriver tekniske blogger om maskinlæring og datavitenskapsteknologier. Abid har en mastergrad i teknologiledelse og en bachelorgrad i telekommunikasjonsteknikk. Hans visjon er å bygge et AI-produkt ved å bruke et grafisk nevralt nettverk for studenter som sliter med psykiske lidelser.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- PlatoHelse. Bioteknologisk og klinisk etterretning. Tilgang her.
- kilde: https://www.kdnuggets.com/openai-api-for-beginners-your-easy-to-follow-starter-guide?utm_source=rss&utm_medium=rss&utm_campaign=openai-api-for-beginners-your-easy-to-follow-starter-guide
- : har
- :er
- :ikke
- :hvor
- $OPP
- 1
- 10
- 12
- 13
- 14
- 16
- 17
- 19
- 2%
- 20
- 21
- 22
- 5
- 6
- 7
- 8
- 9
- a
- evne
- Om oss
- om det
- adgang
- tilgjengelig
- Tilgang
- Logg inn
- nøyaktig
- legge til
- I tillegg
- dyktig
- avansert
- rimelig
- Etter
- aggregerer
- landbruks
- AI
- AI-modeller
- sikte
- Alle
- Allianse
- tillater
- Alloy
- alene
- allerede
- også
- utrolig
- an
- analyse
- analysert
- og
- annonsert
- En annen
- noen
- noen
- api
- APIer
- vises
- Søknad
- søknader
- tilnærming
- ER
- AREA
- områder
- argument
- argumenter
- anordnet
- AS
- asia
- asiatisk
- spør
- Assistent
- assosiert
- At
- Atmosfære
- lyd
- tilgjengelig
- unngå
- bakgrunn
- Båndbredde
- BE
- vært
- før du
- nybegynnere
- begynt
- være
- Bedre
- Biggest
- fakturering
- binære
- velsignet
- blogger
- Blå
- Bright
- bringe
- Bringe
- bygge
- Bygning
- men
- by
- Kambodsja
- CAN
- kort
- bærer
- saken
- saker
- kategorier
- Sertifisert
- sertifisere
- endring
- Kanal
- chatte
- sjekk
- ren
- klikk
- kunde
- kode
- samling
- COM
- Felles
- vanligvis
- kompatibel
- fullføre
- ferdigstillelse
- komplekse
- fatte
- konsepter
- BEKREFTET
- forbruker
- Forbrukerelektronikk
- innhold
- innholdsskaping
- innhold
- kontekst
- kontinuerlig
- Samtale
- konvertere
- konvertering
- kunne
- land
- dekke
- skape
- skaper
- Opprette
- skaperverket
- kreativitet
- kreditt
- kredittkort
- avgjørende
- I dag
- mørk
- dato
- datavitenskap
- dataforsker
- Database
- Dager
- debet
- Beslutningstaking
- def
- Misligholde
- Grad
- utplassere
- ØRKEN
- utforming
- designet
- detaljert
- detaljer
- Bestem
- utvikle
- utviklet
- utviklere
- Enheter
- forskjellig
- vanskelig
- Vise
- do
- dokumentasjon
- dollar
- Don
- nedlasting
- hver enkelt
- enklere
- lett
- lett
- Edge
- Effektiv
- Elektronikk
- Elon
- Elon Musk
- embedding
- muliggjør
- koding
- endte
- Ingeniørarbeid
- Motorer
- Engelsk
- forbedre
- berikende
- sikre
- Enter
- Miljø
- feil
- Eter (ETH)
- ethereal
- Selv
- Hver
- eksakte
- erfaren
- eksperimentere
- Forklar
- forklaring
- utforske
- ekstra
- utdrag
- oppdrett
- Trekk
- Egenskaper
- føler
- felt
- filet
- fylling
- filtrering
- Endelig
- Finn
- Først
- fleksibel
- oversvømmet
- fokuserer
- fokusering
- følge
- Til
- panne
- format
- funnet
- Gratis
- fra
- funksjon
- generere
- generert
- genererer
- generasjonen
- få
- gif
- Gi
- gitt
- Globalt
- Go
- Gull
- graf
- Graf Neural Network
- Økende
- veilede
- Håndtering
- hatt
- hater
- Ha
- he
- hjelper
- her
- her.
- høykvalitets
- striper
- hans
- holder
- Hvordan
- Hvordan
- HTTPS
- i
- identifisere
- identifisering
- if
- sykdom
- bilde
- bildegenerering
- bilder
- importere
- viktig
- forbedre
- bedre
- in
- inkludere
- Inkludert
- innlemme
- indisk
- individuelt
- industri
- informasjon
- informative
- inngang
- installere
- integrering
- Intelligent
- interaksjoner
- Interface
- inn
- innebærer
- ISO
- IT
- DET ER
- smykker
- jpg
- bare
- KDnuggets
- nøkkel
- nøkler
- Vet
- kunnskap
- kjent
- landskap
- Språk
- språk
- stor
- LAS
- Las Vegas
- Siste
- Ventetid
- siste
- LÆRE
- læring
- Legacy
- la
- Bibliotek
- i likhet med
- Begrenset
- Liste
- ll
- laste
- lasting
- lokal
- lokalt
- plassering
- elsker
- maskin
- maskinlæring
- gjøre
- Making
- ledelse
- mange
- Master
- me
- bety
- meningsfylt
- mental
- Mentalt syk
- melding
- meldinger
- metadata
- metoder
- minimum
- minimum levedyktig produkt
- mangler
- Mote
- modell
- modellering
- modeller
- mer
- mest
- fjell
- Musk
- my
- meg selv
- navn
- navigere
- Trenger
- nettverk
- neural
- nevrale nettverket
- aldri
- Ny
- Nye funksjoner
- nye brukere
- neste
- node
- node.js
- nese
- note
- bærbare
- nå
- Antall
- of
- offisiell
- offisielt
- on
- gang
- ONE
- på nett
- bare
- åpen
- OpenAI
- optimalisering
- or
- OS
- Annen
- vår
- ut
- produksjon
- egen
- pakke
- side
- del
- deler
- Mønster
- betaling
- oppfattet
- perfekt
- perfekt
- ytelse
- person
- Filippinene
- brikke
- stykker
- plato
- Platon Data Intelligence
- PlatonData
- vær så snill
- polynomer
- makt
- powered
- prediktiv
- forbereder
- forrige
- tidligere
- prosess
- prosessering
- Produkt
- profesjonell
- Programmering
- prosjekt
- ledetekster
- beskyttelse
- gi
- forutsatt
- gir
- gi
- Kjøp
- formål
- Python
- kvalitet
- spørsmål
- ganske
- REGN
- område
- raskt
- heller
- Lese
- Lesning
- mottatt
- Anbefaling
- redusere
- redusere
- raffinering
- regelmessig
- slipp
- relevant
- svar
- representere
- anmode
- påkrevd
- Krever
- svar
- svar
- REST
- resultere
- retur
- retur
- Ris
- ikke sant
- Ringe
- Rolle
- Kjør
- Rural
- Distriktene
- s
- hellig
- trygge
- samme
- SAND
- Spar
- lagret
- skalering
- scene
- Vitenskap
- Forsker
- Søk
- Secret
- sikkert
- se
- velg
- velge
- semantisk
- sett
- innstillinger
- hun
- Kort
- bør
- Vis
- Viser
- betydelig
- lignende
- Enkelt
- ganske enkelt
- Sittende
- Størrelse
- skies
- So
- noen
- noe
- Snart
- hentet
- sørøst
- spesielt
- tale
- Standard
- Begynn
- startet
- Tilstand
- state-of-the-art
- lagring
- Story
- stream
- String
- strukturert
- strukturerte og ustrukturerte data
- Sliter
- Studenter
- studio
- vellykket
- slik
- oppsummere
- Sol
- sollys
- sikker
- overraskelse
- system
- T
- oppgaver
- Teknisk
- teknikker
- Technologies
- Teknologi
- telekommunikasjon
- tekst
- tekstgenerering
- Tekst-til-tale
- tekstlig
- Thailand
- enn
- Det
- De
- Filippinene
- deres
- Dem
- deretter
- Disse
- de
- tror
- denne
- De
- Gjennom
- tid
- til
- sammen
- token
- tradisjonelle
- Tog
- Kurs
- Transcript
- Transformation
- transformere
- oversette
- Oversettelse
- Oversettelser
- Trær
- troll
- sant
- tutorial
- To ganger
- typen
- typer
- typisk
- forståelse
- forstås
- I motsetning til
- ustrukturert
- urdu
- URL
- us
- bruk
- USD
- bruke
- brukt
- Bruker
- brukervennlig
- Brukere
- ved hjelp av
- verdi
- Verdier
- variabel
- variabler
- ulike
- Ve
- vektorer
- VEGAS
- versjon
- levedyktig
- video
- Vietnam
- Se
- syn
- Voice
- volumer
- venter
- walking
- ønsker
- var
- we
- VI VIL
- Hva
- Hva er
- hvilken
- Hviske
- hvit
- HVEM
- hvorfor
- Wi-fi
- bred
- Bred rekkevidde
- vil
- med
- innenfor
- kvinne
- herlig
- Arbeid
- arbeide sammen
- verden
- skrive
- skriving
- år
- du
- Young
- Din
- youtube
- zephyrnet