Guía de inicio rápido: Añadir DALL-E a la aplicación de escritorio .NET MAUI para Windows
En esta guía de inicio rápido, explicamos cómo integrar las funcionalidades de generación de imágenes de DALL-E en su aplicación de escritorio .NET MAUI para Windows.
Requisitos previos
- Visual Studio 2022 17.8 o posterior, con la carga de trabajo .NET MAUI Multi-platform App UI instalada. Para más información, consulte Instalación.
- Un proyecto funcional de .NET MAUI con integración de OpenAI en el que se integrará esta funcionalidad. Consulte Crear una aplicación de recomendaciones con .NET MAUI y ChatGPT : le explicamos cómo integrar DALL-E en la interfaz de usuario a través de este procedimiento.
- Una clave de API de OpenAI desde el panel para desarrolladores de OpenAI.
- Un paquete NuGet OpenAI para .NET versión 2.0.0 o posterior instalado en el proyecto. Esta versión es todavía preliminar. Si ha seguido el tutorial de ChatGPT para .NET MAUI, tendrá esta dependencia instalada y configurada.
¿Qué problema resolveremos?
Quiere agregar funcionalidades de generación de imágenes de DALL-E a la aplicación de escritorio .NET MAUI para Windows para ofrecer a los usuarios una experiencia completa e interactiva. Se puede usar la aplicación para generar recomendaciones basadas en texto y se quiere agregar la opción de generar imágenes que visualicen una actividad en la ubicación que han introducido.
Establecimiento de la variable de entorno
Para usar el SDK de OpenAI, deberá establecer una variable de entorno con la clave de API. En este ejemplo, usaremos la variable de entorno OPENAI_API_KEY
. Una vez que tenga la clave de API del panel para desarrolladores de OpenAI, puede establecer la variable de entorno desde la línea de comandos de la manera siguiente:
setx OPENAI_API_KEY <your-api-key>
Tenga en cuenta que este método funciona para el desarrollo en Windows, pero se recomienda usar un método más seguro para aplicaciones de producción y para soporte móvil. Por ejemplo, puede almacenar la clave de API en un almacén de claves seguro al que un servicio remoto pueda acceder en nombre de la aplicación. Consulte Procedimientos recomendados para la seguridad de claves en OpenAI para obtener más información.
Instalación e inicialización de la biblioteca OpenAI para .NET
En esta sección, instalaremos el SDK en el proyecto .NET MAUI y lo inicializaremos con la clave de API de OpenAI.
Si aún no ha instalado el
OpenAI
paquete NuGet, puede hacerlo ejecutandodotnet add package OpenAI -IncludePrerelease
a través de la ventana del terminal de Visual Studio.Una vez instalada, puede inicializar la
OpenAIClient
instancia a través del SDK con la clave de API de OpenAIMainPage.xaml.cs
de la siguiente manera:private OpenAIClient _chatGptClient; public MainPage() { InitializeComponent(); this.Loaded += MainPage_Loaded; } private void MainPage_Loaded(object sender, EventArgs e) { var openAiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY"); _chatGptClient = new(openAiKey); }
Modificación de la IU de la aplicación
A continuación, modificaremos la interfaz de usuario para incluir un control Image
que muestre una imagen generada debajo del texto de la recomendación.
Si está empezando con un nuevo proyecto, copie el XAML del tutorial
MainPage.xaml
desde el Crear una aplicación de recomendaciones con .NET MAUI y ChatGPT .Agregue un control
StackLayout
que incluya un controlLabel
y un controlCheckBox
aMainPage.xaml
debajo del controlLocationEntry
para permitir a los usuarios elegir si van a generar una imagen:... <Entry x:Name="LocationEntry" Placeholder="Enter your location" SemanticProperties.Hint="Enter the location for recommendations" HorizontalOptions="Center"/> <!-- Add this markup --> <StackLayout Orientation="Horizontal" HorizontalOptions="Center"> <Label Text="Generate image" VerticalOptions="Center"/> <CheckBox x:Name="IncludeImageChk" VerticalOptions="Center"/> </StackLayout> ...
Agregue un control
Image
debajo del controlSmallLabel
para mostrar la imagen generada:... <Image x:Name="GeneratedImage" WidthRequest="256" HeightRequest="256" HorizontalOptions="Center"/> </VerticalStackLayout>
Implementación de la generación de imágenes DALL-E
En esta sección, incluiremos un método para controlar la generación de imágenes y llamarlo por medio del método existente GetRecommendationAsync
para mostrar la imagen generada.
Si está empezando con un nuevo proyecto, compruebe que el código en
MainPage.xaml.cs
coincide con el código del tutorial Crear una aplicación de recomendaciones con .NET MAUI y ChatGPT.Agregue un método denominado
GetImageAsync
para controlar la generación de imágenes. El nuevo método llamará a la API de OpenAI para generar una imagen en función de la instrucción que crearemos en el paso siguiente. Devuelve un objetoImageSource
que sirve para mostrar la imagen en la interfaz de usuario:public async Task<ImageSource> GetImageAsync(string prompt) { // Use the DALL-E 3 model for image generation. ImageClient imageClient = _chatGptClient.GetImageClient("dall-e-3"); // Generate an image based on the prompt with a 1024x1024 resolution, the default for DALL-E 3. ClientResult<GeneratedImage> response = await imageClient.GenerateImageAsync(prompt, new ImageGenerationOptions { Size = GeneratedImageSize.W1024xH1024, ResponseFormat = GeneratedImageFormat.Uri }); // Image generation responses provide URLs you can use to retrieve requested image(s). Uri imageUri = response.Value.ImageUri; return ImageSource.FromUri(imageUri); }
Agregue una using (directiva) para las clases de generación de imágenes en la parte superior del archivo:
using OpenAI.Images;
Agregue el siguiente código al final del método
GetRecommendationAsync
para llamar condicionalmente el métodoGetImageAsync
y mostrar la imagen generada.if (IncludeImageChk.IsChecked) { var imagePrompt = $"Show some fun things to do in {LocationEntry.Text} when visiting a {recommendationType}."; GeneratedImage.Source = await GetImageAsync(imagePrompt); }
La cadena
imagePrompt
se basa en la entrada de ubicación del usuario y en el tipo de recomendación seleccionado.
Ejecución y prueba
Ejecute la aplicación, escriba una ubicación válida y haga clic en uno de los botones de recomendaciones. Deberíamos ver algo parecido a lo siguiente:
¿Cómo solucionamos el problema?
Hemos incorporado las funcionalidades de generación de imágenes de DALL-E a nuestra aplicación de escritorio .NET MAUI para Windows. Ahora los usuarios pueden generar imágenes en función de la ubicación que escriban y el tipo de recomendación que seleccionen. Esto ofrece una experiencia completa e interactiva para los usuarios y mejora la funcionalidad de la aplicación.
Limpieza de recursos
Es importante asegurarse de que la cuenta de OpenAI sea segura. Si no tiene pensado usar la clave de API de OpenAI para cualquier otro proyecto, deberá eliminarla del panel para desarrolladores de OpenAI. También debe fijar un límite de gasto razonable en su cuenta de OpenAI para evitar cargos inesperados. Puede comprobar el uso actual y los gastos en el panel de OpenAI en la página Usage (Uso(.
Contenido relacionado
- Instalación de .NET MAUI
- Creación de una aplicación de recomendación con .NET MAUI y ChatGPT
- Adición de DALL-E a la aplicación de escritorio del SDK de Aplicaciones para Windows o WinUI 3
- Creación de una aplicación .NET MAUI con marcado de C# y el kit de herramientas de la comunidad
- Desarrollo de aplicaciones y características de IA generativa responsable en Windows