Azure OpenAI integreren in uw app
Azure OpenAI biedt zowel taalspecifieke SDK's als een REST API die ontwikkelaars kunnen gebruiken om AI-functionaliteit toe te voegen aan hun toepassingen. Generatieve AI-mogelijkheden in Azure OpenAI worden geleverd via modellen. De modellen die beschikbaar zijn in de Azure OpenAI-service horen bij verschillende families, elk met hun eigen focus. Als u een van deze modellen wilt gebruiken, moet u implementeren via de Azure OpenAI-service.
Een Azure OpenAI-resource maken
Een Azure OpenAI-resource kan worden geïmplementeerd via zowel de Azure-opdrachtregelinterface (CLI) als de Azure-portal. Het maken van de Azure OpenAI-resource via Azure Portal is vergelijkbaar met het implementeren van afzonderlijke Azure AI Services-resources en maakt deel uit van de Azure AI Services-services.
- Ga naar Azure Portal
- Zoek naar Azure OpenAI, selecteer deze en klik op Maken
- Voer de juiste waarden in voor de lege velden en maak de resource.
De mogelijke regio's voor Azure OpenAI zijn momenteel beperkt. Kies de regio die zich het dichtst bij uw fysieke locatie bevindt of de dichtstbijzijnde regio met de beschikbaarheid voor de modellen die u wilt gebruiken.
Zodra de resource is gemaakt, hebt u sleutels en een eindpunt dat u in uw app kunt gebruiken.
Een model kiezen en implementeren
Elke modelfamilie excelleert bij verschillende taken en er zijn verschillende mogelijkheden van de modellen binnen elke familie. Modelfamilies worden onderverdeeld in drie hoofdfamilies:
- Generatieve vooraf getrainde transformator (GPT) - Modellen die natuurlijke taal en een aantal code begrijpen en genereren. Deze modellen zijn het meest geschikt voor algemene taken, gesprekken en chatindelingen.
- Code (
gpt-3
en eerder): codemodellen zijn gebouwd op GPT-modellen en getraind op miljoenen regels code. Deze modellen kunnen code begrijpen en genereren, waaronder het interpreteren van opmerkingen of natuurlijke taal om code te genereren.gpt-35-turbo
en latere modellen hebben deze codefunctionaliteit opgenomen zonder dat er een afzonderlijk codemodel nodig is. - Insluitingen : deze modellen kunnen insluitingen begrijpen en gebruiken. Dit is een speciale indeling van gegevens die kunnen worden gebruikt door machine learning-modellen en -algoritmen.
Deze module is gericht op algemene GPT-modellen, met andere modellen die in andere modules worden behandeld.
Voor oudere modellen wordt de modelfamilie en -mogelijkheid aangegeven in de naam van het basismodel, zoals text-davinci-003
, waarmee wordt aangegeven dat het een tekstmodel is, met davinci
de mogelijkheid op niveau en id 3
. Meer informatie over modellen, mogelijkheidsniveaus en naamconventies vindt u op de documentatiepagina van Azure OpenAI-modellen.
Recentere modellen geven aan welke gpt
generatie en of ze de turbo
versie zijn, zoals gpt-35-turbo
het GPT 3.5 Turbo-model .
Als u een model wilt implementeren dat u wilt gebruiken, gaat u naar Azure AI Studio en gaat u naar de pagina Implementaties . Verderop in deze module wordt uitgelegd hoe u dat doet.
Verificatie en specificatie van geïmplementeerd model
Wanneer u een model implementeert in Azure OpenAI, kiest u een implementatienaam om dit te geven. Bij het configureren van uw app moet u uw resource-eindpunt, sleutel en implementatienaam opgeven om op te geven naar welk implementatiemodel uw aanvraag moet worden verzonden. Hiermee kunt u verschillende modellen binnen dezelfde resource implementeren en aanvragen naar het juiste model verzenden, afhankelijk van de taak.
Prompt-engineering
Hoe de invoerprompt wordt geschreven, speelt een grote rol in hoe het AI-model reageert. Als u bijvoorbeeld wordt gevraagd om een eenvoudige aanvraag zoals 'Wat is Azure OpenAI', krijgt u vaak een algemeen antwoord dat lijkt op het gebruik van een zoekmachine.
Als u het echter meer informatie geeft over wat u in uw antwoord wilt, krijgt u een specifieker antwoord. Bijvoorbeeld, als u deze prompt krijgt:
Classify the following news headline into 1 of the following categories: Business, Tech, Politics, Sport, Entertainment
Headline 1: Donna Steffensen Is Cooking Up a New Kind of Perfection. The Internet’s most beloved cooking guru has a buzzy new book and a fresh new perspective
Category: Entertainment
Headline 2: Major Retailer Announces Plans to Close Over 100 Stores
Category:
U krijgt waarschijnlijk de 'Categorie:' onder kop ingevuld met 'Bedrijf'.
Er zijn verschillende voorbeelden die vergelijkbaar zijn met deze in de Azure AI Studio Playground, onder de vervolgkeuzelijst Promptvoorbeelden . Probeer zo specifiek mogelijk te zijn over wat u wilt in reactie van het model en u zult verbaasd zijn over hoe inzichtelijk het kan zijn!
Notitie
Het is nooit veilig om ervan uit te gaan dat antwoorden van een AI-model feitelijk of juist zijn. Teams of personen die belast zijn met het ontwikkelen en implementeren van AI-systemen, moeten werken om schade te identificeren, te meten en te beperken. Het is uw verantwoordelijkheid om eventuele reacties van een AI-model te verifiëren en ai op verantwoorde wijze te gebruiken. Bekijk de transparantieopmerkingen van Microsoft over Azure OpenAI voor verdere richtlijnen over het op verantwoorde wijze gebruiken van Azure OpenAI-modellen.
Meer informatie vindt u op de pagina Prompt engineering documentatie.
Beschikbare eindpunten
Azure OpenAI kan worden geopend via een REST API of een SDK die beschikbaar is voor Python, C#, JavaScript en meer. De eindpunten die beschikbaar zijn voor interactie met een geïmplementeerd model, worden anders gebruikt en bepaalde eindpunten kunnen alleen bepaalde modellen gebruiken. De beschikbare eindpunten zijn:
- Voltooiing : het model neemt een invoerprompt en genereert een of meer voorspelde voltooiingen. U ziet deze speeltuin in de studio, maar wordt niet uitgebreid behandeld in deze module.
- ChatCompletion : het model neemt invoer in de vorm van een chatgesprek (waarbij rollen worden opgegeven met het bericht dat ze verzenden) en de volgende voltooiing van de chat wordt gegenereerd.
- Insluitingen : het model neemt invoer en retourneert een vectorweergave van die invoer.
De invoer voor ChatCompletion
is bijvoorbeeld een gesprek met duidelijk gedefinieerde rollen voor elk bericht:
{"role": "system", "content": "You are a helpful assistant, teaching people about AI."},
{"role": "user", "content": "Does Azure OpenAI support multiple languages?"},
{"role": "assistant", "content": "Yes, Azure OpenAI supports several languages, and can translate between them."},
{"role": "user", "content": "Do other Azure AI Services support translation too?"}
Wanneer u het AI-model een echt gesprek geeft, kan het een beter antwoord genereren met een nauwkeurigere toon, formulering en context. Met ChatCompletion
het eindpunt kan het ChatGPT-model een realistischer gesprek voeren door de geschiedenis van de chat te verzenden met het volgende gebruikersbericht.
ChatCompletion
maakt ook niet-chatscenario's mogelijk, zoals samenvatting of extractie van entiteiten. Dit kan worden bereikt door een kort gesprek te geven, de systeeminformatie en de gewenste informatie op te geven, samen met de gebruikersinvoer. Als u bijvoorbeeld een functiebeschrijving wilt genereren, geeft u ChatCompletion
iets op zoals de volgende gespreksinvoer.
{"role": "system", "content": "You are an assistant designed to write intriguing job descriptions. "},
{"role": "user", "content": "Write a job description for the following job title: 'Business Intelligence Analyst'. It should include responsibilities, required qualifications, and highlight benefits like time off and flexible hours."}
Notitie
Completion
is beschikbaar voor alle gpt-3
generatiemodellen, terwijl ChatCompletion
dit de enige ondersteunde optie is voor gpt-4
modellen en het voorkeurseindpunt is wanneer u het gpt-35-turbo
model gebruikt. Het lab in deze module maakt gebruik van gpt-35-turbo
het ChatCompletion
eindpunt.