Inicio rápido: Introducción a la generación de texto mediante Azure OpenAI Service

Use este artículo para empezar a realizar sus primeras llamadas a Azure OpenAI.

Prerrequisitos

  • Una suscripción a Azure (cree una cuenta gratuita).

  • Acceso concedido a Azure OpenAl en la suscripción de Azure que quiera.

    Actualmente, solo la aplicación concede acceso a este servicio. Para solicitar acceso a Azure OpenAI, rellene el formulario en https://aka.ms/oai/access. Si tiene algún problema, abra una incidencia en este repositorio para ponerse en contacto con nosotros.

  • Un recurso de Azure OpenAI con un modelo implementado. Para obtener más información sobre la implementación de modelos, consulte la guía de implementación de recursos.

Sugerencia

Pruebe el nuevo Azure AI Studio (versión preliminar) unificado que reúne funcionalidades de varios servicios de Azure AI.

Vaya a Azure OpenAI Studio.

Vaya a Azure OpenAI Studio en https://oai.azure.com/ e inicie sesión con las credenciales que le permitan obtener acceso al recurso de OpenAI. Durante o después del flujo de trabajo de inicio de sesión, seleccione el directorio, la suscripción de Azure y el recurso de Azure OpenAI adecuados.

En la página de inicio de Azure OpenAI Studio, navegue más allá para explorar ejemplos de finalización rápida, administrar las implementaciones y los modelos, y buscar recursos de aprendizaje, como documentación y foros de la comunidad.

Captura de pantalla de la página de inicio de Azure OpenAI Studio.

Vaya a Área de juegos para experimentar y ajustar el flujo de trabajo.

Área de juegos

Comience a explorar las funcionalidades de OpenAI con un enfoque sin código a través del área de juegos GPT-3. Se trata simplemente de un cuadro de texto donde puede enviar un mensaje para generar una finalización. Desde esta página puede iterar y experimentar rápidamente con las funcionalidades.

Captura de pantalla de la página de inicio de Azure OpenAI Studio con secciones resaltadas.

Puede seleccionar una implementación y elegir entre algunos ejemplos cargados previamente para empezar. Si el recurso no tiene una implementación, seleccione Crear una implementación y siga las instrucciones proporcionadas por el asistente. Para obtener más información sobre la implementación de modelos, consulte la guía de implementación de recursos.

Puede experimentar con las opciones de configuración como la temperatura y respuesta previa para mejorar el rendimiento de la tarea. Puede encontrar más información sobre cada parámetro la API de REST.

  • Al seleccionar el botón Generar, se enviará el texto especificado a la API de finalizaciones y se transmitirán los resultados de vuelta al cuadro de texto.
  • Seleccione el botón Deshacer para deshacer la llamada de generación anterior.
  • Seleccione el botón Regenerar para realizar una llamada de generación y reversión juntas.

El servicio Azure OpenAI también realiza la moderación de contenido en las entradas de solicitud y salidas generadas. Las solicitudes o respuestas se pueden filtrar si se detecta contenido dañino. Para más información, consulte artículo de filtro de contenido.

En el área de juegos GPT-3, también puede ver ejemplos de código de Python y curl rellenados previamente según la configuración seleccionada. Solo tiene que seleccionar Ver código junto a la lista desplegable de ejemplos. Puede escribir una aplicación para completar la misma tarea con el SDK de Python de OpenAI, curl u otro cliente de API de REST.

Pruebar el resumen de texto

Para usar el servicio OpenAI para el resumen de texto en el área de juegos GPT-3, siga estos pasos:

  1. Inicie sesión en Azure OpenAI Studio.

  2. Seleccione la suscripción y el recurso de OpenAl con los que quiere trabajar.

  3. Seleccione Área de juegos GPT-3 en la parte superior de la página inicio.

  4. Seleccione la implementación en la lista desplegable Implementaciones. Si el recurso no tiene una implementación, seleccione Crear una implementación y vuelva a consultar este paso.

  5. Seleccione Resumir texto en la lista desplegable Ejemplos.

    Captura de pantalla de la página de área de juegos de Azure OpenAI Studio con la selección de la lista desplegable

  6. Seleccione Generate. Azure OpenAI intentará comprender el contexto del texto y parafrasearlo de forma concisa. Debe obtener un resultado similar al texto siguiente:

    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.
    

La precisión de la respuesta puede variar según el modelo. En este ejemplo, el modelo basado en Davinci, es adecuado para este tipo de resumen, mientras que un modelo basado en Codex no funcionaría tan bien en esta tarea en particular.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Pasos siguientes

Código fuente | Paquete (NuGet) | Muestras

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita.
  • Acceso concedido al servicio Azure OpenAI en la suscripción de Azure deseada. Actualmente, solo la aplicación concede acceso a este servicio. Puede solicitar acceso a Azure OpenAI Service rellenando el formulario de https://aka.ms/oai/access.
  • La versión actual de .NET Core
  • Un recurso de Azure OpenAI Service con el modelo gpt-35-turbo-instruct implementado. Para obtener más información sobre la implementación de modelos, consulte la guía de implementación de recursos.

Configurar

Creación de una aplicación de .NET Core

En una ventana de consola (por ejemplo, cmd, PowerShell o Bash), use el comando dotnet new para crear una nueva aplicación de consola con el nombre azure-openai-quickstart. Este comando crea un sencillo proyecto "Hola mundo" con un solo archivo de origen de C#: Program.cs.

dotnet new console -n azure-openai-quickstart

Cambie el directorio a la carpeta de aplicaciones recién creada. Para compilar la aplicación:

dotnet build

La salida de la compilación no debe contener advertencias ni errores.

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

Instalar la biblioteca cliente de OpenAl .NET con:

dotnet add package Azure.AI.OpenAI --prerelease

Recuperación de la clave y el punto de conexión

Para realizar correctamente una llamada en Azure OpenAI, necesita un punto de conexión y una clave.

Nombre de la variable Valor
ENDPOINT Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Como alternativa, puede encontrar el valor en Azure OpenAI Studio>Playground>Code View. Punto de conexión de ejemplo: https://docs-test-001.openai.azure.com/.
API-KEY Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Puede usar KEY1 o KEY2.

Vaya al recurso en Azure Portal. La sección Claves y puntos de conexión se puede encontrar en la sección Administración de recursos. Copie el punto de conexión y la clave de acceso, ya que los necesitará para autenticar las llamadas API. Puede usar KEY1 o KEY2. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.

Captura de pantalla de la interfaz de usuario de información general de un recurso de Azure OpenAI en Azure Portal con el punto de conexión y la ubicación de las claves de acceso en círculo en rojo.

Variables de entorno

Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Crear una aplicación de ejemplo

En el directorio del proyecto, abra el archivo program.cs y reemplácelo con el código siguiente:

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

Importante

En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para obtener más información sobre la seguridad de las credenciales, consulte el artículo Seguridad de servicios de Azure AI.

dotnet run program.cs

Resultados

Chatbot:

Microsoft was founded on April 4, 1975.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso. Antes de eliminar el recurso, primero debe eliminar los modelos implementados.

Pasos siguientes

Código fuente | Paquete (Go)| Muestras

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita.
  • Acceso concedido al servicio Azure OpenAI en la suscripción de Azure deseada. Actualmente, solo la aplicación concede acceso a este servicio. Puede solicitar acceso a Azure OpenAI Service rellenando el formulario de https://aka.ms/oai/access.
  • Go 1.21.0 o posterior instalado localmente.
  • Un recurso de Azure OpenAI Service con el modelo gpt-35-turbo-instuct implementado. Para obtener más información sobre la implementación de modelos, consulte la guía de implementación de recursos.

Configuración

Recuperación de la clave y el punto de conexión

Para realizar correctamente una llamada en Azure OpenAI, necesita un punto de conexión y una clave.

Nombre de la variable Valor
ENDPOINT Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Como alternativa, puede encontrar el valor en Azure OpenAI Studio>Playground>Code View. Punto de conexión de ejemplo: https://docs-test-001.openai.azure.com/.
API-KEY Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Puede usar KEY1 o KEY2.

Vaya al recurso en Azure Portal. La sección Claves y puntos de conexión se puede encontrar en la sección Administración de recursos. Copie el punto de conexión y la clave de acceso, ya que los necesitará para autenticar las llamadas API. Puede usar KEY1 o KEY2. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.

Captura de pantalla de la interfaz de usuario de información general de un recurso de Azure OpenAI en Azure Portal con el punto de conexión y la ubicación de las claves de acceso en círculo en rojo.

Variables de entorno

Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Crear una aplicación de ejemplo

Cree un nuevo archivo llamado completions.go. Copie el código siguiente en el archivo 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)
	}

}

Importante

En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para obtener más información sobre la seguridad de las credenciales, consulte el artículo Seguridad de servicios de Azure AI.

Ahora abra un símbolo del sistema y ejecute:

go mod init completions.go

Próxima ejecución:

go mod tidy
go run completions.go

Output

== Get completions Sample ==

Microsoft was founded on April 4, 1975.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso. Antes de eliminar el recurso, primero deberá eliminar los modelos implementados.

Pasos siguientes

Código fuente | Artefacto (Maven) | Muestras

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita.
  • Acceso concedido al servicio Azure OpenAI en la suscripción de Azure deseada. Actualmente, solo la aplicación concede acceso a este servicio. Puede solicitar acceso a Azure OpenAI Service rellenando el formulario de https://aka.ms/oai/access.
  • Un recurso de Azure OpenAI Service con el modelo gpt-35-turbo-instruct implementado. Para obtener más información sobre la implementación de modelos, consulte la guía de implementación de recursos.

Configurar

Recuperación de la clave y el punto de conexión

Para realizar correctamente una llamada en Azure OpenAI, necesita un punto de conexión y una clave.

Nombre de la variable Valor
ENDPOINT Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Como alternativa, puede encontrar el valor en Azure OpenAI Studio>Playground>Code View. Punto de conexión de ejemplo: https://docs-test-001.openai.azure.com/.
API-KEY Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Puede usar KEY1 o KEY2.

Vaya al recurso en Azure Portal. La sección Claves y puntos de conexión se puede encontrar en la sección Administración de recursos. Copie el punto de conexión y la clave de acceso, ya que los necesitará para autenticar las llamadas API. Puede usar KEY1 o KEY2. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.

Captura de pantalla de la interfaz de usuario de información general de un recurso de Azure OpenAI en Azure Portal con el punto de conexión y la ubicación de las claves de acceso en círculo en rojo.

Variables de entorno

Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Creación de una aplicación Java

Cree un proyecto de Gradle.

En una ventana de la consola (como cmd, PowerShell o Bash), cree un directorio para la aplicación y vaya a él.

mkdir myapp && cd myapp

Ejecute el comando gradle init desde el directorio de trabajo. Este comando creará archivos de compilación esenciales para Gradle, como build.gradle.kts, que se usa en tiempo de ejecución para crear y configurar la aplicación.

gradle init --type basic

Cuando se le solicite que elija un DSL, seleccione Kotlin.

Instalación del SDK de Java

En este inicio rápido se usa el administrador de dependencias Gradle. Puede encontrar la biblioteca de cliente y la información de otros administradores de dependencias en el repositorio central de Maven.

Busque build.gradle.kts y ábralo con el IDE o el editor de texto que prefiera. A continuación, cópielo en la siguiente configuración de compilación. Esta configuración define el proyecto como una aplicación Java cuyo punto de entrada es la clase OpenAIQuickstart. Importa la biblioteca de Visión de Azure AI.

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

Crear una aplicación de ejemplo

  1. Cree un archivo de Java.

    En el directorio de trabajo, ejecute el siguiente comando para crear una carpeta de origen del proyecto:

    mkdir -p src/main/java
    

    Vaya a la nueva carpeta y cree un archivo llamado GetCompletionsSample.java.

  2. Abra GetCompletionsSample.java en el editor o IDE que prefiera y pegue el código siguiente.

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

    Importante

    En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para obtener más información sobre la seguridad de las credenciales, consulte el artículo Seguridad de servicios de Azure AI.

  3. Vuelva a la carpeta raíz del proyecto y compile la aplicación con:

    gradle build
    

    A continuación, ejecútela con el comando gradle run:

    gradle run
    

Salida

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.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso. Antes de eliminar el recurso, primero deberá eliminar los modelos implementados.

Pasos siguientes

Código fuente | Artifacts (Maven) | Muestra

Requisitos previos

Configurar

Recuperación de la clave y el punto de conexión

Para realizar correctamente una llamada en Azure OpenAI, necesita un punto de conexión y una clave.

Nombre de la variable Valor
ENDPOINT Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Como alternativa, puede encontrar el valor en Azure OpenAI Studio>Playground>Code View. Punto de conexión de ejemplo: https://docs-test-001.openai.azure.com/.
API-KEY Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Puede usar KEY1 o KEY2.

Vaya al recurso en Azure Portal. La sección Claves y puntos de conexión se puede encontrar en la sección Administración de recursos. Copie el punto de conexión y la clave de acceso, ya que los necesitará para autenticar las llamadas API. Puede usar KEY1 o KEY2. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.

Captura de pantalla de la interfaz de usuario de información general de un recurso de Azure OpenAI en Azure Portal con el punto de conexión y la ubicación de las claves de acceso en círculo en rojo.

Variables de entorno

Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.

Nota:

Spring AI tiene como valor predeterminado el nombre del modelo en gpt-35-turbo. Solo es necesario proporcionar el valor SPRING_AI_AZURE_OPENAI_MODEL si ha implementado un modelo con otro nombre.

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"

Creación de una nueva aplicación de Spring

Cree un nuevo proyecto de Spring.

En una ventana de Bash, cree un nuevo directorio para la aplicación y diríjase a él.

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

Ejecute el comando spring init desde el directorio de trabajo. Este comando crea una estructura de directorio estándar para el proyecto de Spring, incluido el archivo de origen de la clase Java principal y el archivo pom.xml que se usa para administrar proyectos basados en Maven.

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

Los archivos y carpetas generados son similares a la estructura siguiente:

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

Edición de la aplicación Spring

  1. Edite el archivo pom.xml.

    Desde la raíz del directorio del proyecto, abra el archivo pom.xml en su editor o IDE preferido y sobrescriba el archivo con el siguiente contenido:

    <?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. En la carpeta src/main/java/com/example/aicompletiondemo, abra AiCompletionApplication.java en el editor o IDE preferidos y pegue el código siguiente:

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

    Importante

    En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para obtener más información sobre la seguridad de las credenciales, consulte el artículo Seguridad de servicios de Azure AI.

  3. Vuelva a la carpeta raíz del proyecto y ejecute la aplicación mediante el comando siguiente:

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

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso. Antes de eliminar el recurso, primero deberá eliminar los modelos implementados.

Pasos siguientes

Para obtener más ejemplos, consulte el repositorio de GitHub de ejemplos de Azure OpenAl

Código fuente | Paquete (npm) | Muestras

Requisitos previos

Configurar

Recuperación de la clave y el punto de conexión

Para realizar correctamente una llamada en Azure OpenAI, necesita un punto de conexión y una clave.

Nombre de la variable Valor
ENDPOINT Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Como alternativa, puede encontrar el valor en Azure OpenAI Studio>Playground>Code View. Punto de conexión de ejemplo: https://docs-test-001.openai.azure.com/.
API-KEY Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Puede usar KEY1 o KEY2.

Vaya al recurso en Azure Portal. La sección Claves y puntos de conexión se puede encontrar en la sección Administración de recursos. Copie el punto de conexión y la clave de acceso, ya que los necesitará para autenticar las llamadas API. Puede usar KEY1 o KEY2. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.

Captura de pantalla de la interfaz de usuario de información general de un recurso de Azure OpenAI en Azure Portal con el punto de conexión y la ubicación de las claves de acceso en círculo en rojo.

Variables de entorno

Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

En una ventana de la consola (como cmd, PowerShell o Bash), cree un directorio para la aplicación y vaya a él. Ejecute el comando npm init para crear una aplicación de nodo con un archivo package.json.

npm init

Instalación de la biblioteca cliente

Instale la biblioteca cliente de Azure OpenAI para JavaScript con npm:

npm install @azure/openai

El archivo package.json de la aplicación se actualizará con las dependencias.

Crear una aplicación de ejemplo

Abra un símbolo del sistema donde quiera el nuevo proyecto y cree un archivo llamado Completion.js. Copie el código siguiente en el archivo Completion.js.

const { OpenAIClient, AzureKeyCredential } = require("@azure/openai");
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] ;
const azureApiKey = process.env["AZURE_OPENAI_API_KEY"] ;

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

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

  const client = new OpenAIClient(endpoint, new AzureKeyCredential(azureApiKey));
  const deploymentId = "gpt-35-turbo-instruct";
  const result = await client.getCompletions(deploymentId, prompt);

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

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

module.exports = { main };

Importante

En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para obtener más información sobre la seguridad de las credenciales, consulte el artículo Seguridad de servicios de Azure AI.

Ejecute el script con el siguiente comando:

node.exe Completion.js

Salida

== Get completions Sample ==

Microsoft was founded on April 4, 1975.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso. Antes de eliminar el recurso, primero deberá eliminar los modelos implementados.

Pasos siguientes

Código fuente de la biblioteca | Paquete (PyPi) |

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita.

  • Acceso concedido a Azure OpenAl en la suscripción de Azure que quiera.

    Actualmente, solo la aplicación concede acceso a este servicio. Para solicitar acceso a Azure OpenAI, rellene el formulario en https://aka.ms/oai/access. Si tiene algún problema, abra una incidencia en este repositorio para ponerse en contacto con nosotros.

  • Python 3.8 o una versión posterior

  • Las siguientes librerías de Python: os, requests, json

  • Un recurso de Azure OpenAI Service con un modelo gpt-35-turbo-instruct implementado. Para obtener más información sobre la implementación de modelos, consulte la guía de implementación de recursos.

Configurar

Instalar la biblioteca cliente de OpenAl Python con:

pip install openai

Nota:

OpenAI mantiene esta biblioteca y actualmente está en versión preliminar. Consulte el historial de versiones o el historial de confirmación de version.py para realizar el seguimiento de las actualizaciones más recientes de la biblioteca.

Recuperación de la clave y el punto de conexión

Para realizar correctamente una llamada en el servicio Azure OpenAI, necesitará lo siguiente:

Nombre de la variable Valor
ENDPOINT Este valor se puede encontrar en la sección Claves y punto de conexión al examinar su recurso en Azure Portal. Como alternativa, puede encontrar el valor en Azure OpenAI Studio>Área de juegos>Ver código. Punto de conexión de ejemplo: https://docs-test-001.openai.azure.com/.
API-KEY Este valor se puede encontrar en la sección Claves y punto de conexión al examinar su recurso en Azure Portal. Puede usar KEY1 o KEY2.
DEPLOYMENT-NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones de modelos en Azure Portal o también en Management>Deployments en Azure OpenAI Studio.

Vaya al recurso en Azure Portal. Las claves y el punto de conexión se pueden encontrar en la sección Administración de recursos. Copie el punto de conexión y la clave de acceso, ya que los necesitará para autenticar las llamadas API. Puede usar KEY1 o KEY2. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.

Captura de pantalla de la hoja de información general de un recurso de Azure OpenAI en Azure Portal con la ubicación del punto de conexión y las claves de acceso en círculo rojo.

Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.

Variables de entorno

Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Creación de una nueva aplicación de Python

  1. Cree un nuevo archivo de Python denominado quickstart.py. A continuación, ábralo en el editor o IDE preferidos.

  2. Reemplace el contenido de quickstart-file.py por el código siguiente. Modifique el código para agregar la clave, el punto de conexión y el nombre de implementación:

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)

Importante

En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para obtener más información sobre la seguridad de las credenciales, consulte el artículo Seguridad de servicios de Azure AI.

  1. Ejecute la aplicación con el comando python en el archivo de inicio rápido:

    python quickstart.py
    

Resultados

La salida incluirá texto de respuesta que sigue a la solicitud Write a tagline for an ice cream shop.. Azure OpenA ha devuelto The coldest ice cream in town! en este ejemplo.

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

Ejecute el código varias veces más para ver qué otros tipos de respuestas obtiene, ya que la respuesta no siempre será la misma.

Descripción de los resultados

Dado que nuestro ejemplo de Write a tagline for an ice cream shop. proporciona poco contexto, es normal que el modelo no devuelva siempre los resultados esperados. Puede ajustar el número máximo de tokens si la respuesta parece inesperada o truncada.

El servicio Azure OpenAI también realiza la moderación de contenido en las entradas de solicitud y salidas generadas. Las solicitudes o respuestas se pueden filtrar si se detecta contenido dañino. Para más información, consulte artículo de filtro de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Pasos siguientes

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita.

  • Acceso concedido a Azure OpenAl en la suscripción de Azure que quiera.

    Actualmente, solo la aplicación concede acceso a este servicio. Para solicitar acceso al servicio Azure OpenAI, rellene el formulario de https://aka.ms/oai/access. Si tiene algún problema, abra una incidencia en este repositorio para ponerse en contacto con nosotros.

  • Python 3.8 o una versión posterior

  • Las siguientes librerías de Python: os, requests, json

  • Un recurso de Azure OpenAI con un modelo implementado. Para obtener más información sobre la implementación de modelos, consulte la guía de implementación de recursos.

Configuración

Recuperación de la clave y el punto de conexión

Para realizar correctamente una llamada a Azure OpenAI, necesitará lo siguiente:

Nombre de la variable Valor
ENDPOINT Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Como alternativa, puede encontrar el valor en Azure OpenAI Studio>Área de juegos>Vista de código. Punto de conexión de ejemplo: https://docs-test-001.openai.azure.com/.
API-KEY Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Puede usar KEY1 o KEY2.
DEPLOYMENT-NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones en Azure Portal o también en Management>Deployments en Azure OpenAI Studio.

Vaya al recurso en Azure Portal. El punto de conexión y las claves se pueden encontrar en la sección Administración de recursos. Copie el punto de conexión y la clave de acceso, ya que los necesitará para autenticar las llamadas API. Puede usar KEY1 o KEY2. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.

Captura de pantalla de la hoja de información general de un recurso de Azure OpenAI en Azure Portal con la ubicación del punto de conexión y las claves de acceso en círculo rojo.

Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.

Variables de entorno

Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

API DE REST

En un shell de Bash, ejecute el siguiente comando. Debe reemplazar gpt-35-turbo-instruct por el nombre de implementación que eligió cuando implementó el modelo gpt-35-turbo-instruct. Si escribe el nombre del modelo, se producirá un error a menos que elija un nombre de implementación idéntico al nombre del modelo subyacente.

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\"}"

El formato de su primera línea del comando con un ejemplo de punto de conexión aparecería como se indica en curl https://docs-test-001.openai.azure.com/openai/deployments/{YOUR-DEPLOYMENT_NAME_HERE}/completions?api-version=2024-02-01 \. Si encuentra un error, compruebe de nuevo para asegurarse de que no tenga duplicado el / en la separación entre su punto de conexión y /openai/deployments.

Si desea ejecutar este comando en un símbolo del sistema normal de Windows, tendría que modificar el texto para quitar \ y los saltos de línea.

Importante

En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para obtener más información sobre la seguridad de las credenciales, consulte el artículo Seguridad de servicios de Azure AI.

Salida

La salida de la API de finalizaciones tendrá el siguiente aspecto.

{
    "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
    }
}

El servicio Azure OpenAI también realiza la moderación de contenido en las entradas de solicitud y salidas generadas. Las solicitudes o respuestas se pueden filtrar si se detecta contenido dañino. Para más información, consulte artículo de filtro de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Pasos siguientes

Requisitos previos

Recuperación de la clave y el punto de conexión

Para realizar correctamente una llamada en el servicio Azure OpenAI, necesitará lo siguiente:

Nombre de la variable Valor
ENDPOINT Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Como alternativa, puede encontrar el valor en Azure OpenAI Studio>Área de juegos>Vista de código. Punto de conexión de ejemplo: https://docs-test-001.openai.azure.com/.
API-KEY Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Puede usar KEY1 o KEY2.
DEPLOYMENT-NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones en Azure Portal o también en Management>Deployments en Azure OpenAI Studio.

Vaya al recurso en Azure Portal. El punto de conexión y las claves se pueden encontrar en la sección Administración de recursos. Copie el punto de conexión y la clave de acceso, ya que los necesitará para autenticar las llamadas API. Puede usar KEY1 o KEY2. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.

Captura de pantalla de la hoja de información general de un recurso de Azure OpenAI en Azure Portal con la ubicación del punto de conexión y las claves de acceso en círculo rojo.

Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.

Variables de entorno

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

Creación de un script de PowerShell

  1. Cree un nuevo archivo de PowerShell denominado quickstart.ps1. A continuación, ábralo en el editor o IDE preferidos.

  2. Reemplace el contenido de quickstart.ps1 por el código siguiente. Modifique el código para agregar la clave, el punto de conexión y el nombre de implementación:

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

    Importante

    En entornos de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como PowerShell Secret Management con Azure Key Vault. Para obtener más información sobre la seguridad de las credenciales, consulte el artículo Seguridad de servicios de Azure AI.

  3. Ejecute el script con PowerShell:

    ./quickstart.ps1
    

Salida

La salida incluirá texto de respuesta que sigue a la solicitud Once upon a time. Azure OpenA ha devuelto There was a world beyond the mist...where a en este ejemplo.

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

Ejecute el código varias veces más para ver qué otros tipos de respuestas obtiene, ya que la respuesta no siempre será la misma.

Descripción de los resultados

Dado que nuestro ejemplo de Once upon a time... proporciona poco contexto, es normal que el modelo no devuelva siempre los resultados esperados. Puede ajustar el número máximo de tokens si la respuesta parece inesperada o truncada.

El servicio Azure OpenAI también realiza la moderación de contenido en las entradas de solicitud y salidas generadas. Las solicitudes o respuestas se pueden filtrar si se detecta contenido dañino. Para más información, consulte artículo de filtro de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Pasos siguientes