Dela via


Snabbstart: Komma igång med att generera text med Azure OpenAI Service

Använd den här artikeln för att komma igång med dina första anrop till Azure OpenAI.

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt.

  • Åtkomst beviljad till Azure OpenAI i den önskade Azure-prenumerationen.

    För närvarande måste man ansöka om att få åtkomst till den här tjänsten. Du kan ansöka om åtkomst till Azure OpenAI genom att fylla i formuläret på https://aka.ms/oai/access. Öppna ett problem på den här lagringsplatsen för att kontakta oss om du har ett problem.

  • En Azure OpenAI-resurs med en distribuerad modell. Mer information om distributionsmodellerna finns i Förstå distributionsmodeller.

Dricks

Prova den nya enhetliga Azure AI Studio (förhandsversion) som samlar funktioner från flera Azure AI-tjänster.

Gå till Azure OpenAI Studio

Gå till Azure OpenAI Studio vid https://oai.azure.com/ och logga in med autentiseringsuppgifter som har åtkomst till din OpenAI-resurs. Under eller efter inloggningsarbetsflödet väljer du lämplig katalog, Azure-prenumeration och Azure OpenAI-resurs.

Från Azure OpenAI Studio-landningssidan går du vidare för att utforska exempel för snabb slutförande, hantera dina distributioner och modeller och hitta utbildningsresurser som dokumentation och communityforum.

Skärmbild av landningssidan för Azure OpenAI Studio.

Gå till Playground för att experimentera och finjustera arbetsflödet.

Lekplats

Börja utforska Azure OpenAI-funktioner med en metod utan kod via GPT-3 Playground. Det är bara en textruta där du kan skicka en uppmaning för att generera ett slutförande. Från den här sidan kan du snabbt iterera och experimentera med funktionerna.

Skärmbild av lekplatssidan i Azure OpenAI Studio med avsnitt markerade.

Du kan välja en distribution och välja bland några förinstallerade exempel för att komma igång. Om resursen inte har någon distribution väljer du Skapa en distribution och följer anvisningarna i guiden. Mer information om distributionsmodellerna finns i Förstå distributionsmodeller.

Du kan experimentera med konfigurationsinställningarna, till exempel temperatur och text före svar för att förbättra aktivitetens prestanda. Du kan läsa mer om varje parameter i REST-API:et.

  • Om du väljer knappen Generera skickas den angivna texten till API:et för slutförande och resultatet strömmas tillbaka till textrutan.
  • Välj knappen Ångra för att ångra det tidigare generationsanropet.
  • Välj knappen Återskapa för att slutföra ett ångra- och generationsanrop tillsammans.

Azure OpenAI utför även con tältläge ration på promptindata och genererade utdata. Uppmaningar eller svar kan filtreras om skadligt innehåll identifieras. Mer information finns i artikeln om innehållsfilter .

På GPT-3-lekplatsen kan du också visa Python- och curlkodexempel ifyllda i förväg enligt dina valda inställningar. Välj bara Visa kod bredvid listrutan exempel. Du kan skriva ett program för att slutföra samma uppgift med OpenAI Python SDK, curl eller annan REST API-klient.

Prova textsammanfattning

Följ dessa steg om du vill använda Azure OpenAI för textsammanfattning i GPT-3 Playground:

  1. Logga in på Azure OpenAI Studio.

  2. Välj den prenumeration och OpenAI-resurs som du vill arbeta med.

  3. Välj GPT-3 Playground längst upp på landningssidan.

  4. Välj din distribution i listrutan Distributioner . Om resursen inte har någon distribution väljer du Skapa en distribution och går sedan tillbaka till det här steget.

  5. Välj Sammanfatta text i listrutan Exempel .

    Skärmbild av lekplatssidan i Azure OpenAI Studio med listrutan Sammanfatta text synlig

  6. Välj Generate. Azure OpenAI försöker samla in kontexten för text och formulera om den kortfattat. Du bör få ett resultat som liknar följande text:

    Tl;dr A neutron star is the collapsed core of a supergiant star. These incredibly dense objects are incredibly fascinating due to their strange properties and their potential for phenomena such as extreme gravitational forces and a strong magnetic field.
    

Svarets noggrannhet kan variera beroende på modell. Den Davinci-baserade modellen i det här exemplet passar bra för den här typen av sammanfattning, medan en Codex-baserad modell inte skulle fungera lika bra för just den här uppgiften.

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Nästa steg

Exempel på källkodspaket (NuGet) | |

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • Åtkomst som beviljats till Azure OpenAI-tjänsten i den önskade Azure-prenumerationen. För närvarande måste man ansöka om att få åtkomst till den här tjänsten. Du kan ansöka om åtkomst till Azure OpenAI-tjänsten genom att fylla i formuläret på https://aka.ms/oai/access.
  • Den aktuella versionen av .NET Core
  • En Azure OpenAI Service-resurs med modellen gpt-35-turbo-instruct distribuerad. Mer information om distributionsmodellerna finns i Förstå distributionsmodeller.

Konfigurera

Skapa en ny .NET Core-app

I ett konsolfönster (till exempel cmd, PowerShell eller Bash) använder du dotnet new kommandot för att skapa en ny konsolapp med namnet azure-openai-quickstart. Det här kommandot skapar ett enkelt "Hello World"-projekt med en enda C#-källfil: Program.cs.

dotnet new console -n azure-openai-quickstart

Ändra katalogen till den nyligen skapade appmappen. Du kan skapa programmet med:

dotnet build

Kompileringsutdata får inte innehålla några varningar eller fel.

...
Build succeeded.
 0 Warning(s)
 0 Error(s)
...

Installera OpenAI .NET-klientbiblioteket med:

dotnet add package Azure.AI.OpenAI --prerelease

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI behöver du en slutpunkt och en nyckel.

Variabelnamn Värde
ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan också hitta värdet i Azure OpenAI Studio>Playground Code>View. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.

Gå till din resurs i Azure-portalen. Avsnittet Nycklar och slutpunkter finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsgränssnittet för en Azure OpenAI-resurs i Azure-portalen med slutpunkten och åtkomstnycklarna inringade i rött.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Skapa ett exempelprogram

Öppna filen program.cs från projektkatalogen och ersätt med följande kod:

using Azure;
using Azure.AI.OpenAI;
using static System.Environment;

string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");

var client = new OpenAIClient(new Uri(endpoint), new AzureKeyCredential(key));

CompletionsOptions completionsOptions = new()
{
    DeploymentName = "gpt-35-turbo-instruct", 
    Prompts = { "When was Microsoft founded?" },
};

Response<Completions> completionsResponse = client.GetCompletions(completionsOptions);
string completion = completionsResponse.Value.Choices[0].Text;
Console.WriteLine($"Chatbot: {completion}");

Viktigt!

För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information om säkerhet för autentiseringsuppgifter finns i artikeln om Säkerhet för Azure AI-tjänster.

dotnet run program.cs

Output

Chatbot:

Microsoft was founded on April 4, 1975.

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen. Innan du tar bort resursen måste du först ta bort alla distribuerade modeller.

Nästa steg

Exempel på källkodspaket (Go)| |

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • Åtkomst som beviljats till Azure OpenAI-tjänsten i den önskade Azure-prenumerationen. För närvarande måste man ansöka om att få åtkomst till den här tjänsten. Du kan ansöka om åtkomst till Azure OpenAI-tjänsten genom att fylla i formuläret på https://aka.ms/oai/access.
  • Gå till 1.21.0 eller senare installerat lokalt.
  • En Azure OpenAI Service-resurs med modellen gpt-35-turbo-instuct distribuerad. Mer information om distributionsmodellerna finns i Förstå distributionsmodeller.

Konfigurera

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI behöver du en slutpunkt och en nyckel.

Variabelnamn Värde
ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan också hitta värdet i Azure OpenAI Studio>Playground Code>View. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.

Gå till din resurs i Azure-portalen. Avsnittet Nycklar och slutpunkter finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsgränssnittet för en Azure OpenAI-resurs i Azure-portalen med slutpunkten och åtkomstnycklarna inringade i rött.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Skapa ett exempelprogram

Skapa en ny fil med namnet completions.go. Kopiera följande kod till filen completions.go.

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
)

func main() {
	azureOpenAIKey := os.Getenv("AZURE_OPENAI_API_KEY")
	modelDeploymentID := "gpt-35-turbo-instruct"

	azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")

	if azureOpenAIKey == "" || modelDeploymentID == "" || azureOpenAIEndpoint == "" {
		fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
		return
	}

	keyCredential, err := azopenai.NewKeyCredential(azureOpenAIKey)

	if err != nil {
		// TODO: handle error
	}

	client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)

	if err != nil {
		// TODO: handle error
	}

	resp, err := client.GetCompletions(context.TODO(), azopenai.CompletionsOptions{
		Prompt:       []string{"What is Azure OpenAI, in 20 words or less"},
		MaxTokens:    to.Ptr(int32(2048)),
		Temperature:  to.Ptr(float32(0.0)),
		Deployment: modelDeploymentID,
	}, nil)

	if err != nil {
		// TODO: handle error
	}

	for _, choice := range resp.Choices {
		fmt.Fprintf(os.Stderr, "Result: %s\n", *choice.Text)
	}

}

Viktigt!

För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information om säkerhet för autentiseringsuppgifter finns i artikeln om Säkerhet för Azure AI-tjänster.

Öppna nu en kommandotolk och kör:

go mod init completions.go

Nästa körning:

go mod tidy
go run completions.go

Output

== Get completions Sample ==

Microsoft was founded on April 4, 1975.

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen. Innan du tar bort resursen måste du först ta bort alla distribuerade modeller.

Nästa steg

Exempel på källkodsartefakt (Maven) | |

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • Åtkomst som beviljats till Azure OpenAI-tjänsten i den önskade Azure-prenumerationen. För närvarande måste man ansöka om att få åtkomst till den här tjänsten. Du kan ansöka om åtkomst till Azure OpenAI-tjänsten genom att fylla i formuläret på https://aka.ms/oai/access.
  • En Azure OpenAI Service-resurs med modellen gpt-35-turbo-instruct distribuerad. Mer information om distributionsmodellerna finns i Förstå distributionsmodeller.

Konfigurera

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI behöver du en slutpunkt och en nyckel.

Variabelnamn Värde
ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan också hitta värdet i Azure OpenAI Studio>Playground Code>View. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.

Gå till din resurs i Azure-portalen. Avsnittet Nycklar och slutpunkter finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsgränssnittet för en Azure OpenAI-resurs i Azure-portalen med slutpunkten och åtkomstnycklarna inringade i rött.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Skapa ett nytt Java-program

Skapa ett nytt Gradle-projekt.

Skapa en ny katalog för din app i ett konsolfönster (till exempel cmd, PowerShell eller bash) och navigera till den.

mkdir myapp && cd myapp

Kör kommandot från arbetskatalogen gradle init . Det här kommandot skapar viktiga byggfiler för Gradle, inklusive build.gradle.kts, som används vid körning för att skapa och konfigurera ditt program.

gradle init --type basic

Välj en DSL när du uppmanas till det och välj Kotlin.

Installera Java SDK

Den här snabbstarten använder Gradle-beroendehanteraren. Du hittar klientbiblioteket och information för andra beroendehanterare på Den centrala Maven-lagringsplatsen.

Leta upp build.gradle.kts och öppna det med önskad IDE eller textredigerare . Kopiera sedan i följande byggkonfiguration. Den här konfigurationen definierar projektet som ett Java-program vars startpunkt är klassen OpenAIQuickstart. Den importerar Azure AI Vision-biblioteket.

plugins {
    java
    application
}
application { 
    mainClass.set("GetCompletionsSample")
}
repositories {
    mavenCentral()
}
dependencies {
    implementation(group = "com.azure", name = "azure-ai-openai", version = "1.0.0-beta.3")
    implementation("org.slf4j:slf4j-simple:1.7.9")
}

Skapa ett exempelprogram

  1. Skapa en Java-fil.

    Från arbetskatalogen kör du följande kommando för att skapa en projektkällmapp:

    mkdir -p src/main/java
    

    Gå till den nya mappen och skapa en fil med namnet GetCompletionsSample.java.

  2. Öppna GetCompletionsSample.java i önskad redigerare eller IDE och klistra in följande kod.

    package com.azure.ai.openai.usage;
    
    import com.azure.ai.openai.OpenAIClient;
    import com.azure.ai.openai.OpenAIClientBuilder;
    import com.azure.ai.openai.models.Choice;
    import com.azure.ai.openai.models.Completions;
    import com.azure.ai.openai.models.CompletionsOptions;
    import com.azure.ai.openai.models.CompletionsUsage;
    import com.azure.core.credential.AzureKeyCredential;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class GetCompletionsSample {
    
        public static void main(String[] args) {
            String azureOpenaiKey = System.getenv("AZURE_OPENAI_API_KEY");;
            String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT");;
            String deploymentOrModelId = "gpt-35-turbo-instruct";
    
            OpenAIClient client = new OpenAIClientBuilder()
                .endpoint(endpoint)
                .credential(new AzureKeyCredential(azureOpenaiKey))
                .buildClient();
    
            List<String> prompt = new ArrayList<>();
            prompt.add("When was Microsoft founded?");
    
            Completions completions = client.getCompletions(deploymentOrModelId, new CompletionsOptions(prompt));
    
            System.out.printf("Model ID=%s is created at %s.%n", completions.getId(), completions.getCreatedAt());
            for (Choice choice : completions.getChoices()) {
                System.out.printf("Index: %d, Text: %s.%n", choice.getIndex(), choice.getText());
            }
    
            CompletionsUsage usage = completions.getUsage();
            System.out.printf("Usage: number of prompt token is %d, "
                    + "number of completion token is %d, and number of total tokens in request and response is %d.%n",
                usage.getPromptTokens(), usage.getCompletionTokens(), usage.getTotalTokens());
        }
    }
    

    Viktigt!

    För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information om säkerhet för autentiseringsuppgifter finns i artikeln om Säkerhet för Azure AI-tjänster.

  3. Gå tillbaka till projektrotmappen och skapa appen med:

    gradle build
    

    Kör den sedan med gradle run kommandot :

    gradle run
    

Output

Model ID=cmpl-7JZRbWuEuHX8ozzG3BXC2v37q90mL is created at 1684898835.
Index: 0, Text:

Microsoft was founded on April 4, 1975..
Usage: number of prompt token is 5, number of completion token is 11, and number of total tokens in request and response is 16.

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen. Innan du tar bort resursen måste du först ta bort alla distribuerade modeller.

Nästa steg

Exempel på källkodsartefakter (Maven) | |

Förutsättningar

Konfigurera

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI behöver du en slutpunkt och en nyckel.

Variabelnamn Värde
ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan också hitta värdet i Azure OpenAI Studio>Playground Code>View. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.

Gå till din resurs i Azure-portalen. Avsnittet Nycklar och slutpunkter finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsgränssnittet för en Azure OpenAI-resurs i Azure-portalen med slutpunkten och åtkomstnycklarna inringade i rött.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

Kommentar

Spring AI standardmodellnamnet till gpt-35-turbo. Det är bara nödvändigt att ange SPRING_AI_AZURE_OPENAI_MODEL värdet om du har distribuerat en modell med ett annat namn.

export SPRING_AI_AZURE_OPENAI_API_KEY="REPLACE_WITH_YOUR_KEY_VALUE_HERE"
export SPRING_AI_AZURE_OPENAI_ENDPOINT="REPLACE_WITH_YOUR_ENDPOINT_HERE"
export SPRING_AI_AZURE_OPENAI_MODEL="REPLACE_WITH_YOUR_MODEL_NAME_HERE"

Skapa ett nytt Spring-program

Skapa ett nytt Spring-projekt.

I ett Bash-fönster skapar du en ny katalog för din app och navigerar till den.

mkdir ai-completion-demo && cd ai-completion-demo

Kör kommandot från arbetskatalogen spring init . Det här kommandot skapar en standardkatalogstruktur för ditt Spring-projekt, inklusive huvudkällfilen för Java-klassen och den pom.xml fil som används för att hantera Maven-baserade projekt.

spring init -a ai-completion-demo -n AICompletion --force --build maven -x

De genererade filerna och mapparna liknar följande struktur:

ai-completion-demo/
|-- pom.xml
|-- mvn
|-- mvn.cmd
|-- HELP.md
|-- src/
    |-- main/
    |   |-- resources/
    |   |   |-- application.properties
    |   |-- java/
    |       |-- com/
    |           |-- example/
    |               |-- aicompletiondemo/
    |                   |-- AiCompletionApplication.java
    |-- test/
        |-- java/
            |-- com/
                |-- example/
                    |-- aicompletiondemo/
                        |-- AiCompletionApplicationTests.java

Redigera Spring-programmet

  1. Redigera filen pom.xml .

    Öppna filen pom.xml i önskad redigerare eller IDE från roten i projektkatalogen och skriv över filen med följande innehåll:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>3.2.0</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>ai-completion-demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>AICompletion</name>
        <description>Demo project for Spring Boot</description>
        <properties>
            <java.version>17</java.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.experimental.ai</groupId>
                <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
                <version>0.7.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
        <repositories>
            <repository>
                <id>spring-snapshots</id>
                <name>Spring Snapshots</name>
                <url>https://repo.spring.io/snapshot</url>
                <releases>
                    <enabled>false</enabled>
                </releases>
            </repository>
        </repositories>
    </project>
    
  2. Från mappen src/main/java/com/example/aicompletiondemo öppnar du AiCompletionApplication.java i önskad redigerare eller IDE och klistrar in följande kod:

    package com.example.aicompletiondemo;
    
    import java.util.Collections;
    import java.util.List;
    
    import org.springframework.ai.client.AiClient;
    import org.springframework.ai.prompt.Prompt;
    import org.springframework.ai.prompt.messages.Message;
    import org.springframework.ai.prompt.messages.MessageType;
    import org.springframework.ai.prompt.messages.UserMessage;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class AiCompletionApplication implements CommandLineRunner
    {
        private static final String ROLE_INFO_KEY = "role";
    
        @Autowired
        private AiClient aiClient;
    
        public static void main(String[] args) {
            SpringApplication.run(AiCompletionApplication.class, args);
        }
    
        @Override
        public void run(String... args) throws Exception
        {
            System.out.println(String.format("Sending completion prompt to AI service. One moment please...\r\n"));
    
            final List<Message> msgs =
                    Collections.singletonList(new UserMessage("When was Microsoft founded?"));
    
            final var resps = aiClient.generate(new Prompt(msgs));
    
            System.out.println(String.format("Prompt created %d generated response(s).", resps.getGenerations().size()));
    
            resps.getGenerations().stream()
              .forEach(gen -> {
                  final var role = gen.getInfo().getOrDefault(ROLE_INFO_KEY, MessageType.ASSISTANT.getValue());
    
                  System.out.println(String.format("Generated respose from \"%s\": %s", role, gen.getText()));
              });
        }
    
    }
    

    Viktigt!

    För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information om säkerhet för autentiseringsuppgifter finns i artikeln om Säkerhet för Azure AI-tjänster.

  3. Gå tillbaka till projektrotmappen och kör appen med hjälp av följande kommando:

    ./mvnw spring-boot:run
    

Output

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.1.5)

2023-11-07T12:47:46.126-06:00  INFO 98687 --- [           main] c.e.a.AiCompletionApplication            : No active profile set, falling back to 1 default profile: "default"
2023-11-07T12:47:46.823-06:00  INFO 98687 --- [           main] c.e.a.AiCompletionApplication            : Started AiCompletionApplication in 0.925 seconds (process running for 1.238)
Sending completion prompt to AI service. One moment please...

Prompt created 1 generated response(s).
Generated respose from "assistant": Microsoft was founded on April 4, 1975.

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen. Innan du tar bort resursen måste du först ta bort alla distribuerade modeller.

Nästa steg

Fler exempel finns på GitHub-lagringsplatsen Azure OpenAI Samples

Exempel på källkodspaket (npm) | |

Kommentar

Den här artikeln har uppdaterats för att använda det senaste OpenAI npm-paketet som nu har fullt stöd för Azure OpenAI. Om du letar efter kodexempel för äldre Azure OpenAI JavaScript SDK är de för närvarande fortfarande 1tillgängliga på den här lagringsplatsen.

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • Åtkomst som beviljats till Azure OpenAI-tjänsten i den önskade Azure-prenumerationen. För närvarande måste man ansöka om att få åtkomst till den här tjänsten. Du kan ansöka om åtkomst till Azure OpenAI-tjänsten genom att fylla i formuläret på https://aka.ms/oai/access.
  • LTS-versioner av Node.js
  • En Azure OpenAI Service-resurs med modellen gpt-35-turbo-instruct distribuerad. Mer information om distributionsmodellerna finns i Förstå distributionsmodeller.

Konfigurera

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI behöver du en slutpunkt och en nyckel.

Variabelnamn Värde
ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan också hitta värdet i Azure OpenAI Studio>Playground Code>View. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.

Gå till din resurs i Azure-portalen. Avsnittet Nycklar och slutpunkter finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsgränssnittet för en Azure OpenAI-resurs i Azure-portalen med slutpunkten och åtkomstnycklarna inringade i rött.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Skapa en ny katalog för din app i ett konsolfönster (till exempel cmd, PowerShell eller bash) och navigera till den.

Installera klientbiblioteket

Installera de nödvändiga paketen för JavaScript med npm från kontexten för din nya katalog:

npm install openai dotenv @azure/identity

Appens package.json-fil uppdateras med beroendena.

Skapa ett exempelprogram

Öppna en kommandotolk där du skapade det nya projektet och skapa en ny fil med namnet Completion.js. Kopiera följande kod till filen Completion.js.

const { AzureOpenAI } = require("openai");

// Load the .env file if it exists
const dotenv = require("dotenv");
dotenv.config();

// You will need to set these environment variables or edit the following values
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>";
const apiKey = process.env["AZURE_OPENAI_API_KEY"] || "<api key>";
const apiVersion = "2024-04-01-preview";
const deployment = "gpt-35-turbo-instruct"; //The deployment name for your completions API model. The instruct model is the only new model that supports the legacy API.

const prompt = ["When was Microsoft founded?"];

async function main() {
  console.log("== Get completions Sample ==");

  const client = new AzureOpenAI({ endpoint, apiKey, apiVersion, deployment });  

  const result = await client.completions.create({ prompt, model: deployment, max_tokens: 128 });

  for (const choice of result.choices) {
    console.log(choice.text);
  }
}

main().catch((err) => {
  console.error("Error occurred:", err);
});

module.exports = { main };

Kör skriptet med följande kommando:

node.exe Completion.js

Output

== Get completions Sample ==

Microsoft was founded on April 4, 1975.

Microsoft Entra ID

Viktigt!

I föregående exempel demonstrerar vi nyckelbaserad autentisering. När du har testat med nyckelbaserad autentisering rekommenderar vi att du använder det säkrare Microsoft Entra-ID :t för autentisering som visas i nästa kodexempel. Att komma igång med [Microsoft Entra-ID] kräver några ytterligare krav.

const { AzureOpenAI } = require("openai");
const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity");

// Set AZURE_OPENAI_ENDPOINT to the endpoint of your
// OpenAI resource. You can find this in the Azure portal.
// Load the .env file if it exists
require("dotenv/config");

const prompt = ["When was Microsoft founded?"];

async function main() {
  console.log("== Get completions Sample ==");

  const scope = "https://cognitiveservices.azure.com/.default";
  const azureADTokenProvider = getBearerTokenProvider(new DefaultAzureCredential(), scope);
  const deployment = "gpt-35-turbo-instruct";
  const apiVersion = "2024-04-01-preview";
  const client = new AzureOpenAI({ azureADTokenProvider, deployment, apiVersion });
  const result = await client.completions.create({ prompt, model: deployment, max_tokens: 128 });

  for (const choice of result.choices) {
    console.log(choice.text);
  }
}

main().catch((err) => {
  console.error("Error occurred:", err);
});

module.exports = { main };

Kommentar

Om du får felet: Felet inträffade: OpenAIError: Argumenten apiKey och azureADTokenProvider är ömsesidigt uteslutande, endast en kan skickas åt gången. Du kan behöva ta bort en befintlig miljövariabel för API-nyckeln från systemet. Även om Microsoft Entra ID-kodexemplet inte uttryckligen refererar till API-nyckelmiljövariabeln genereras det här felet om det finns en i systemet som kör det här exemplet.

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen. Innan du tar bort resursen måste du först ta bort alla distribuerade modeller.

Nästa steg

Paket för bibliotekskällkod | (PyPi) |

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt

  • Åtkomst beviljad till Azure OpenAI i önskad Azure-prenumeration

    För närvarande måste man ansöka om att få åtkomst till den här tjänsten. Du kan ansöka om åtkomst till Azure OpenAI genom att fylla i formuläret på https://aka.ms/oai/access. Öppna ett problem på den här lagringsplatsen för att kontakta oss om du har ett problem.

  • Python 3.8 eller senare version

  • Följande Python-bibliotek: os, begäranden, json

  • En Azure OpenAI Service-resurs med en gpt-35-turbo-instruct distribuerad modell. Mer information om distributionsmodellerna finns i Förstå distributionsmodeller.

Konfigurera

Installera OpenAI Python-klientbiblioteket med:

pip install openai

Kommentar

Det här biblioteket underhålls av OpenAI och är för närvarande i förhandsversion. Se versionshistoriken eller version.py incheckningshistorik för att spåra de senaste uppdateringarna i biblioteket.

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI-tjänsten behöver du följande:

Variabelnamn Värde
ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkter när du undersöker din resurs från Azure-portalen. Du kan också hitta värdet i Azure OpenAI Studio>Playground>View-koden. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkter när du undersöker din resurs från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.
DEPLOYMENT-NAME Det här värdet motsvarar det anpassade namn som du valde för distributionen när du distribuerade en modell. Det här värdet finns under Resurshanteringsmodelldistributioner> i Azure-portalen eller under Hanteringsdistributioner> i Azure OpenAI Studio.

Gå till din resurs i Azure-portalen. Nycklar och slutpunkt finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsbladet för en Azure OpenAI-resurs i Azure-portalen med platsen slutpunkt och åtkomstnycklar inringad i rött.

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Skapa ett nytt Python-program

  1. Skapa en ny Python-fil med namnet quickstart.py. Öppna den sedan i önskad redigerare eller IDE.

  2. Ersätt innehållet i quickstart.py med följande kod. Ändra koden för att lägga till din nyckel, slutpunkt och distributionsnamn:

import os
from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-02-01",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )
    
deployment_name='REPLACE_WITH_YOUR_DEPLOYMENT_NAME' #This will correspond to the custom name you chose for your deployment when you deployed a model. Use a gpt-35-turbo-instruct deployment. 
    
# Send a completion call to generate an answer
print('Sending a test completion job')
start_phrase = 'Write a tagline for an ice cream shop. '
response = client.completions.create(model=deployment_name, prompt=start_phrase, max_tokens=10)
print(start_phrase+response.choices[0].text)

Viktigt!

För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information om säkerhet för autentiseringsuppgifter finns i artikeln om Säkerhet för Azure AI-tjänster.

  1. Kör programmet med python kommandot i snabbstartsfilen:

    python quickstart.py
    

Output

Utdata innehåller svarstext efter uppmaningen Write a tagline for an ice cream shop. . Azure OpenAI returnerades The coldest ice cream in town! i det här exemplet.

Sending a test completion job
Write a tagline for an ice cream shop. The coldest ice cream in town!

Kör koden några gånger till för att se vilka andra typer av svar du får eftersom svaret inte alltid är detsamma.

Förstå dina resultat

Eftersom vårt exempel på Write a tagline for an ice cream shop. ger lite kontext är det normalt att modellen inte alltid returnerar förväntade resultat. Du kan justera det maximala antalet token om svaret verkar oväntat eller trunkerat.

Azure OpenAI utför även con tältläge ration på promptindata och genererade utdata. Uppmaningarna eller svaren kan filtreras om skadligt innehåll identifieras. Mer information finns i artikeln om innehållsfilter .

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Nästa steg

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt

  • Åtkomst beviljad till Azure OpenAI i önskad Azure-prenumeration

    För närvarande måste man ansöka om att få åtkomst till den här tjänsten. Du kan ansöka om åtkomst till Azure OpenAI-tjänsten genom att fylla i formuläret på https://aka.ms/oai/access. Öppna ett problem på den här lagringsplatsen för att kontakta oss om du har ett problem.

  • Python 3.8 eller senare version

  • Följande Python-bibliotek: os, begäranden, json

  • En Azure OpenAI-resurs med en distribuerad modell. Mer information om distributionsmodellerna finns i Förstå distributionsmodeller.

Konfigurera

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI behöver du följande:

Variabelnamn Värde
ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan också hitta värdet i kodvyn: Azure OpenAI Studio>Playground>Code View. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.
DEPLOYMENT-NAME Det här värdet motsvarar det anpassade namn som du valde för distributionen när du distribuerade en modell. Det här värdet finns under Resurshantering>Distributioner i Azure-portalen eller under Management (Hantering)>Deployments (Distributioner) i Azure OpenAI Studio.

Gå till din resurs i Azure-portalen. Slutpunkten och nycklarna finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsbladet för en Azure OpenAI-resurs i Azure-portalen med platsen slutpunkt och åtkomstnycklar inringad i rött.

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

REST-API

Kör följande kommando i ett bash-gränssnitt. Du måste ersätta gpt-35-turbo-instruct med det distributionsnamn du valde när du distribuerade gpt-35-turbo-instruct modellen. Om du anger modellnamnet uppstår ett fel om du inte väljer ett distributionsnamn som är identiskt med det underliggande modellnamnet.

curl $AZURE_OPENAI_ENDPOINT/openai/deployments/gpt-35-turbo-instruct/completions?api-version=2024-02-01 \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d "{\"prompt\": \"Once upon a time\"}"

Formatet för den första raden i kommandot med en exempelslutpunkt visas på följande sätt curl https://docs-test-001.openai.azure.com/openai/deployments/{YOUR-DEPLOYMENT_NAME_HERE}/completions?api-version=2024-02-01 \. Om du stöter på ett fel kontrollerar du att du inte har en fördubbling av / vid separationen mellan slutpunkten och /openai/deployments.

Om du vill köra det här kommandot i en vanlig Windows-kommandotolk måste du ändra texten för att ta bort radbrytningarna \ och .

Viktigt!

För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information om säkerhet för autentiseringsuppgifter finns i artikeln om Säkerhet för Azure AI-tjänster.

Output

Utdata från API:et för slutföranden ser ut så här.

{
    "id": "ID of your call",
    "object": "text_completion",
    "created": 1675444965,
    "model": "gpt-35-turbo-instruct",
    "choices": [
        {
            "text": " there lived in a little village a woman who was known as the meanest",
            "index": 0,
            "finish_reason": "length",
            "logprobs": null
        }
    ],
    "usage": {
        "completion_tokens": 16,
        "prompt_tokens": 3,
        "total_tokens": 19
    }
}

Azure OpenAI-tjänsten utför även con tältläge ration på promptindata och genererade utdata. Uppmaningar eller svar kan filtreras om skadligt innehåll identifieras. Mer information finns i artikeln om innehållsfilter .

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Nästa steg

Förutsättningar

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI-tjänsten behöver du följande:

Variabelnamn Värde
ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan också hitta värdet i kodvyn: Azure OpenAI Studio>Playground>Code View. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.
DEPLOYMENT-NAME Det här värdet motsvarar det anpassade namn som du valde för distributionen när du distribuerade en modell. Det här värdet finns under Resurshantering>Distributioner i Azure-portalen eller under Management (Hantering)>Deployments (Distributioner) i Azure OpenAI Studio.

Gå till din resurs i Azure-portalen. Slutpunkten och nycklarna finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsbladet för en Azure OpenAI-resurs i Azure-portalen med platsen slutpunkt och åtkomstnycklar inringad i rött.

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

Miljövariabler

$Env:AZURE_OPENAI_API_KEY = 'YOUR_KEY_VALUE'
$Env:AZURE_OPENAI_ENDPOINT = 'YOUR_ENDPOINT'

Skapa ett nytt PowerShell-skript

  1. Skapa en ny PowerShell-fil med namnet quickstart.ps1. Öppna den sedan i önskad redigerare eller IDE.

  2. Ersätt innehållet i quickstart.ps1 med följande kod. Ändra koden för att lägga till din nyckel, slutpunkt och distributionsnamn:

    # Azure OpenAI metadata variables
    $openai = @{
        api_key     = $Env:AZURE_OPENAI_API_KEY
        api_base    = $Env:AZURE_OPENAI_ENDPOINT # your endpoint should look like the following https://YOUR_RESOURCE_NAME.openai.azure.com/
        api_version = '2024-02-01' # this may change in the future
        name        = 'YOUR-DEPLOYMENT-NAME-HERE' #This will correspond to the custom name you chose for your deployment when you deployed a model.
    }
    
    # Completion text
    $prompt = 'Once upon a time...'
    
    # Header for authentication
    $headers = [ordered]@{
        'api-key' = $openai.api_key
    }
    
    # Adjust these values to fine-tune completions
    $body = [ordered]@{
        prompt      = $prompt
        max_tokens  = 10
        temperature = 2
        top_p       = 0.5
    } | ConvertTo-Json
    
    # Send a completion call to generate an answer
    $url = "$($openai.api_base)/openai/deployments/$($openai.name)/completions?api-version=$($openai.api_version)"
    
    $response = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json'
    return "$prompt`n$($response.choices[0].text)"
    

    Viktigt!

    För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som PowerShell Secret Management med Azure Key Vault. Mer information om säkerhet för autentiseringsuppgifter finns i artikeln om Säkerhet för Azure AI-tjänster.

  3. Kör skriptet med PowerShell:

    ./quickstart.ps1
    

Output

Utdata innehåller svarstext efter uppmaningen Once upon a time . Azure OpenAI returnerades There was a world beyond the mist...where a i det här exemplet.

Once upon a time...
 There was a world beyond the mist...where a

Kör koden några gånger till för att se vilka andra typer av svar du får eftersom svaret inte alltid är detsamma.

Förstå dina resultat

Eftersom vårt exempel på Once upon a time... ger lite kontext är det normalt att modellen inte alltid returnerar förväntade resultat. Du kan justera det maximala antalet token om svaret verkar oväntat eller trunkerat.

Azure OpenAI utför även con tältläge ration på promptindata och genererade utdata. Uppmaningar eller svar kan filtreras om skadligt innehåll identifieras. Mer information finns i artikeln om innehållsfilter .

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Nästa steg