Billede af forfatter
I denne vejledning lærer vi, hvordan du opsætter og bruger OpenAI API til forskellige brugssager. Selvstudiet er designet til at være nemt at følge, selv for dem med begrænset viden om Python-programmering. Vi vil undersøge, hvordan alle kan generere svar og få adgang til store sprogmodeller af høj kvalitet.
Åbn AI API giver udviklere let adgang til en bred vifte af AI-modeller udviklet af OpenAI. Det giver en brugervenlig grænseflade, der gør det muligt for udviklere at inkorporere intelligente funktioner drevet af state-of-the-art OpenAI-modeller i deres applikationer. API'et kan bruges til forskellige formål, herunder tekstgenerering, multi-turn chat, indlejringer, transskription, oversættelse, tekst-til-tale, billedforståelse og billedgenerering. Derudover er API'en kompatibel med curl, Python og Node.js.
For at komme i gang med OpenAI API skal du først oprette en konto på openai.com. Tidligere fik hver bruger gratis kredit, men nu skal nye brugere købe kredit.
For at købe kredit skal du gå til "Indstillinger", derefter "Fakturering" og til sidst "Tilføj betalingsoplysninger". Indtast dine debet- eller kreditkortoplysninger, og sørg for at deaktivere automatisk genopladning. Når du har indlæst 10 USD, kan du bruge det i et år.
Lad os oprette API-nøglen ved at navigere til "API-nøgler" og vælge "Opret ny hemmelig nøgle". Giv det et navn og klik på "Opret hemmelig nøgle".
Kopier API'en og opret en miljøvariabel på den lokale maskine.
Jeg bruger Deepnote som min IDE. Det er nemt at oprette miljøvariabler. Du skal blot gå til "Integration", vælge "opret miljøvariabel", angive et navn og en værdi for nøglen og oprette integrationen.
Dernæst installerer vi OpenAI Python-pakken ved hjælp af pip.
%pip install --upgrade openai
Vi vil nu oprette en klient, der kan få adgang til forskellige typer modeller globalt.
Hvis du har indstillet din miljøvariabel med navnet "OPENAI_API_KEY", behøver du ikke give OpenAI-klienten en API-nøgle.
from openai import OpenAI
client = OpenAI()
Bemærk venligst, at du kun bør angive en API-nøgle, hvis navnet på din miljøvariabel er forskelligt fra standarden.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("SECRET_KEY"),
)
Vi vil bruge en ældre funktion til at generere svaret. Fuldførelsesfunktionen kræver modelnavnet, prompten og andre argumenter for at 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 genereret en fantastisk historie om Elon Musk.
Vi kan også streame vores svar ved at give et ekstra argument `stream`.
I stedet for at vente på det komplette svar, muliggør stream-funktionen behandling af output, så snart det er genereret. Denne tilgang hjælper med at reducere opfattet latenstid ved at returnere output fra sprogmodellen token for token i stedet for alle på én 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 brugte API-chatfuldførelse. Inden du genererer svaret, lad os undersøge de tilgængelige modeller.
Du kan se listen over alle tilgængelige modeller eller læse Modeller side på den officielle dokumentation.
print(client.models.list())
Vi vil bruge den seneste version af GPT-3.5 og give den en liste over en ordbog til systemprompter og brugermeddelelser. Sørg for at følge det samme meddelelsesmø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 genereret et lignende resultat som det gamle API. Så hvorfor bruge denne API? Dernæst vil vi lære, hvorfor chatcompletion API er mere fleksibel og lettere at bruge.
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 vil nu lære, hvordan man fører en multi-turn-samtale med vores AI-model. For at gøre dette tilføjer vi assistentens svar til den forrige samtale og inkluderer også den nye prompt i samme meddelelsesformat. Derefter vil vi give en liste over ordbøger til chat-afslutningsfunktionen.
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ået konteksten og opsummeret feature engineering for os.
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 at udvikle avancerede applikationer skal vi konvertere tekst til indlejringer. Disse indlejringer bruges til lighedssøgning, semantisk søgning og anbefalingsmotorer. Vi kan generere indlejringer ved at angive API-teksten og modelnavnet. 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,.......]
Nu kan vi konvertere tekst til tale, tale til tekst og også oversætte det ved hjælp af audio API.
Transcriptions
Vi vil bruge Wi-Fi 7 vil ændre alt YouTube-video og konverter den til mp3. Derefter åbner vi filen og leverer den til lydtransskriptions-API'en.
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 transskription af 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,......
Oversættelse
Vi kan også transskribere den engelske lyd til et andet sprog. I vores tilfælde vil vi konvertere det til urdu sprog. Vi vil bare tilføje endnu et argument `sprog` og give det ISO sprogkode "ur".
translations = client.audio.transcriptions.create(
model="whisper-1",
response_format="text",
language="ur",
file=audio_file,
)
print(translations)
Oversættelsen til ikke-latinske sprog er ufuldkommen, men brugbar til et minimumslevedygtigt produkt.
کنسومر ایلیکٹرانک شاہی نے لاس بیگیس میں شامل شروع کیا ہے اور ہم آپ کو جمہوری بہترین چیزیں اپنے ریگلر سٹوڈیو میں یہاں جارہے ہیں جہاں یہ آمید ہے اور خوبصورت ہے اور دنیا نہیں ہے مجھے سانڈ بھولتا ہے وائ فائی آلائنٹس نے اعلان کیا کہ انہوں نے وائ فائی سیبن سٹانڈرڈ کو شامل شروع کیا اور انہوں ن........
Tekst til tale
For at konvertere din tekst til naturligt lydende lyd, vil vi bruge tale API og give den modelnavnet, stemmeskuespillerens navn og inputtekst. Dernæst gemmer vi lydfilen i vores "Data"-mappe.
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 at lytte til lydfilen i Deepnote Notebook bruger vi IPython Audio-funktionen.
from IPython.display import Audio
Audio("Data/song.mp3")
OpenAI API giver brugere adgang til en multimodal model gennem chat-afslutningsfunktionen. For at forstå billeder kan vi bruge den nyeste GPT-4 vision-model.
I beskedargumentet har vi givet en prompt til at stille spørgsmål om billedet og billedwebadressen. Billedet er hentet fra Pixabay. Sørg for, at du følger det samme meddelelsesformat for at undgå fejl.
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)
Outputtet forklarer billedet 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 at angive en billed-URL, kan vi også indlæse en lokal billedfil og give den til chat-afslutnings-API'en. For at gøre dette skal vi først downloade billedet af 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"
Derefter vil vi indlæse billedet og kode 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 at angive billed-URL'en, leverer vi metadata og billedets 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 med succes analyseret billedet og givet en detaljeret 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 billeder ved hjælp af DALLE-3 modellen. Vi skal blot give modelnavn, prompt, størrelse, kvalitet og antal billeder til billeders 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 genererede billede gemmes online, og du kan downloade det for at se det lokalt. For at gøre dette downloader vi billedet med `request`-funktionen, og giver billed-URL'en og den lokale mappe, hvor du vil gemme det. Derefter vil vi bruge Pillow-bibliotekets billedfunktion til at åbne og vise billedet.
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 modtaget et genereret billede af høj kvalitet. Det er simpelthen fantastisk!
Hvis du kæmper for at køre nogen af OpenAI Python API'erne, er du velkommen til at tjekke mit projekt ud Deepnote.
Jeg har eksperimenteret med OpenAPI i nogen tid nu, og vi endte med kun at bruge 0.22 dollars i kredit, hvilket jeg finder ret overkommeligt. Med min guide kan selv begyndere begynde at bygge deres egne AI-applikationer. Det er en simpel proces – du behøver ikke at træne din egen model eller implementere den. Du kan få adgang til state-of-the-art modeller ved hjælp af API, som løbende forbedres med hver ny udgivelse.
I denne vejledning dækker vi, hvordan du opsætter OpenAI Python API og genererer enkle tekstsvar. Vi lærer også om multiturn-chat, indlejringer, transskription, oversættelse, tekst-til-tale, vision og billedgenererings-API'er.
Lad mig det vide, hvis du vil have mig til at bruge disse API'er til at bygge en avanceret AI-applikation.
Tak for læsning.
Abid Ali Awan (@1abidaliawan) er en certificeret dataforsker, der elsker at bygge maskinlæringsmodeller. I øjeblikket fokuserer han på indholdsskabelse og skriver tekniske blogs om maskinlæring og datavidenskabsteknologier. Abid har en kandidatgrad i teknologiledelse og en bachelorgrad i telekommunikationsingeniør. Hans vision er at bygge et AI-produkt ved hjælp af et grafisk neuralt netværk til studerende, der kæmper med psykisk sygdom.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang 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
- $OP
- 1
- 10
- 12
- 13
- 14
- 16
- 17
- 19
- 2%
- 20
- 21
- 22
- 5
- 6
- 7
- 8
- 9
- a
- evne
- Om
- om det
- adgang
- tilgængelig
- Adgang
- Konto
- præcis
- tilføje
- Derudover
- dygtig
- fremskreden
- overkommelige
- Efter
- aggregere
- Landbrugs
- AI
- AI modeller
- sigte
- Alle
- Alliance
- tillader
- Alloy
- alene
- allerede
- også
- forbløffende
- an
- analyse
- analyseret
- ,
- annoncerede
- En anden
- enhver
- nogen
- api
- API'er
- kommer til syne
- Anvendelse
- applikationer
- tilgang
- ER
- OMRÅDE
- områder
- argument
- argumenter
- anbragt
- AS
- asia
- asiatisk
- spørge
- Assistant
- forbundet
- At
- Atmosfære
- lyd
- til rådighed
- undgå
- baggrund
- båndbredde
- BE
- været
- før
- begyndere
- begyndt
- være
- Bedre
- Største
- fakturerings- og
- binær
- velsignet
- blogs
- Blå
- Bright
- bringe
- Bringe
- bygge
- Bygning
- men
- by
- Cambodja
- CAN
- kort
- regnskabsmæssige
- tilfælde
- tilfælde
- kategorier
- Certificeret
- attestere
- lave om
- Kanal
- chatte
- kontrollere
- ren
- klik
- kunde
- kode
- samling
- KOM
- Fælles
- almindeligt
- kompatibel
- fuldføre
- færdiggørelse
- komplekse
- forstå
- begreber
- BEKRÆFTET
- forbruger
- elektronik Forbruger
- indhold
- indholdsskabelse
- indhold
- sammenhæng
- løbende
- Samtale
- konvertere
- konvertering af
- kunne
- lande
- dæksel
- skabe
- skaber
- Oprettelse af
- skabelse
- kreativitet
- kredit
- kreditkort
- afgørende
- For øjeblikket
- mørk
- data
- datalogi
- dataforsker
- Database
- Dage
- Debit
- Beslutningstagning
- def
- Standard
- Degree
- indsætte
- ØRKEN
- Design
- konstrueret
- detaljeret
- detaljer
- Bestem
- udvikle
- udviklet
- udviklere
- Enheder
- forskellige
- svært
- Skærm
- do
- dokumentation
- dollars
- Don
- downloade
- hver
- lettere
- nemt
- let
- Edge
- Effektiv
- Elektronik
- Elon
- Elon Musk
- indlejring
- muliggør
- kodning
- sluttede
- Engineering
- Motorer
- Engelsk
- forbedre
- berigende
- sikre
- Indtast
- Miljø
- fejl
- Ether (ETH)
- ethereal
- Endog
- Hver
- eksakt
- erfarne
- eksperimentere
- Forklar
- forklaring
- udforske
- ekstra
- udvinding
- landbrug
- Feature
- Funktionalitet
- føler sig
- felt
- File (Felt)
- fyldning
- filtrering
- Endelig
- Finde
- Fornavn
- fleksibel
- oversvømmet
- fokuserer
- fokusering
- følger
- Til
- pande
- format
- fundet
- Gratis
- fra
- funktion
- generere
- genereret
- generere
- generation
- få
- gif
- Giv
- given
- Globalt
- Go
- Guld
- graf
- Graf neuralt netværk
- Dyrkning
- vejlede
- Håndtering
- hat
- hader
- Have
- he
- hjælper
- hende
- link.
- høj kvalitet
- højdepunkter
- hans
- besidder
- Hvordan
- How To
- HTTPS
- i
- identificere
- identificere
- if
- sygdom
- billede
- billedgenerering
- billeder
- importere
- vigtigt
- Forbedre
- forbedring
- in
- omfatter
- Herunder
- indarbejde
- indiske
- individuel
- industrien
- oplysninger
- informative
- indgang
- installere
- integration
- Intelligent
- interaktioner
- grænseflade
- ind
- involverer
- ISO
- IT
- ITS
- smykker
- jpg
- lige
- KDnuggets
- Nøgle
- nøgler
- Kend
- viden
- kendt
- landskab
- Sprog
- Sprog
- stor
- LAS
- Las Vegas
- Efternavn
- Latency
- seneste
- LÆR
- læring
- Legacy
- lad
- Bibliotek
- ligesom
- Limited
- Liste
- ll
- belastning
- lastning
- lokale
- lokalt
- placering
- elsker
- maskine
- machine learning
- lave
- Making
- ledelse
- mange
- Master
- me
- betyde
- meningsfuld
- mentale
- Psykisk sygdom
- besked
- beskeder
- Metadata
- metoder
- minimum
- mindst levedygtigt produkt
- mangler
- tilstand
- model
- modellering
- modeller
- mere
- mest
- Bjerg
- Musk
- my
- mig selv
- navn
- navigering
- Behov
- netværk
- Neural
- neurale netværk
- aldrig
- Ny
- Nye funktioner
- nye brugere
- næste
- node
- node.js
- næse
- Bemærk
- notesbog
- nu
- nummer
- of
- officiel
- Officielt
- on
- engang
- ONE
- online
- kun
- åbent
- OpenAI
- optimering
- or
- OS
- Andet
- vores
- ud
- output
- egen
- pakke
- side
- del
- dele
- Mønster
- betaling
- opfattet
- perfekt
- perfekt
- ydeevne
- person,
- Filippinerne
- stykke
- stykker
- plato
- Platon Data Intelligence
- PlatoData
- Vær venlig
- polynomier
- magt
- strøm
- forudsigende
- forberede
- tidligere
- tidligere
- behandle
- forarbejdning
- Produkt
- professionel
- Programmering
- projekt
- prompter
- beskyttelse
- give
- forudsat
- giver
- leverer
- køb
- formål
- Python
- kvalitet
- Spørgsmål
- helt
- RAIN
- rækkevidde
- hurtigt
- hellere
- Læs
- Læsning
- modtaget
- Anbefaling
- reducere
- reducere
- raffinering
- fast
- frigive
- relevant
- svar
- repræsentere
- anmode
- påkrævet
- Kræver
- svar
- reaktioner
- REST
- resultere
- afkast
- vender tilbage
- Ris
- højre
- ring
- roller
- Kør
- Rural
- Landdistrikter
- s
- hellige
- sikker
- samme
- SAND
- Gem
- gemt
- skalering
- scene
- Videnskab
- Videnskabsmand
- Søg
- Secret
- sikkert
- se
- Vælg
- udvælgelse
- semantiske
- sæt
- indstillinger
- hun
- Kort
- bør
- Vis
- Shows
- betydeligt
- lignende
- Simpelt
- ganske enkelt
- Siddende
- Størrelse
- skyer
- So
- nogle
- noget
- Snart
- indkøbt
- sydøst
- specifikt
- tale
- standard
- starte
- påbegyndt
- Tilstand
- state-of-the-art
- opbevaring
- Story
- strøm
- String
- struktureret
- strukturerede og ustrukturerede data
- Kæmper
- Studerende
- Studio
- Succesfuld
- sådan
- opsummere
- Sol
- sollys
- sikker
- overraskelse
- systemet
- T
- opgaver
- Teknisk
- teknikker
- Teknologier
- Teknologier
- telekommunikation
- tekst
- tekstgenerering
- Tekst-til-tale
- tekstmæssige
- Thailand
- end
- at
- Filippinerne
- deres
- Them
- derefter
- Disse
- de
- tror
- denne
- dem
- Gennem
- tid
- til
- sammen
- token
- traditionelle
- Tog
- Kurser
- Transcript
- Transformation
- omdanne
- Oversætte
- Oversættelse
- Oversættelser
- Træer
- trold
- sand
- tutorial
- To gange
- typen
- typer
- typisk
- forståelse
- forstået
- I modsætning til
- ustruktureret
- urdu
- URL
- us
- brugbar
- USD
- brug
- anvendte
- Bruger
- brugervenlig
- brugere
- ved brug af
- værdi
- Værdier
- variabel
- variabler
- forskellige
- Ve
- vektorer
- VEGAS
- udgave
- levedygtig
- video
- Vietnam
- Specifikation
- vision
- Voice
- mængder
- Venter
- gå
- ønsker
- var
- we
- GODT
- Hvad
- Hvad er
- som
- Hviske
- hvid
- WHO
- hvorfor
- Wi-fi
- bred
- Bred rækkevidde
- vilje
- med
- inden for
- kvinde
- vidunderlig
- Arbejde
- arbejde sammen
- world
- skriver
- skrivning
- år
- dig
- unge
- Din
- youtube
- zephyrnet