Tambahkan DALL-E ke aplikasi desktop WinUI 3 / SDK Aplikasi Windows Anda
Dalam cara ini, kami akan mengintegrasikan kemampuan pembuatan gambar DALL-E ke dalam aplikasi desktop WinUI 3 / SDK Aplikasi Windows Anda.
Prasyarat
- Siapkan komputer pengembangan Anda (lihat Mulai menggunakan WinUI).
- Antarmuka obrolan fungsi di mana kemampuan ini akan diintegrasikan. Lihat Cara menambahkan penyelesaian obrolan OpenAI ke aplikasi desktop WinUI 3 / SDK Aplikasi Windows Anda - kami akan menunjukkan cara mengintegrasikan DALL-E ke dalam antarmuka obrolan dari cara ini.
- Kunci API OpenAI dari dasbor pengembang OpenAI Anda yang ditetapkan ke
OPENAI_API_KEY
variabel lingkungan. - OpenAI SDK terinstal di proyek Anda. Lihat dokumentasi OpenAI untuk daftar pustaka komunitas. Dalam cara ini, kita akan menggunakan betalgo/openai.
Menginstal dan menginisialisasi OpenAI SDK
Pastikan bahwa betalgo/OpenAI SDK
diinstal di proyek Anda dengan menjalankan dotnet add package Betalgo.OpenAI
dari jendela terminal Visual Studio. Inisialisasi SDK dengan kunci OPENAI API Anda sebagai berikut:
//...
using OpenAI;
using OpenAI.Managers;
using OpenAI.ObjectModels.RequestModels;
using OpenAI.ObjectModels;
namespace ChatGPT_WinUI3
{
public sealed partial class MainWindow : Window
{
private OpenAIService openAiService;
public MainWindow()
{
this.InitializeComponent();
var openAiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY");
openAiService = new OpenAIService(new OpenAiOptions(){
ApiKey = openAiKey
});
}
}
}
Mengubah UI aplikasi Anda
Ubah yang sudah ada MainWindow.xaml
untuk menyertakan Image
kontrol yang menampilkan gambar dalam percakapan:
<!-- ... existing XAML ... -->
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding ImageUrl}" Margin="5" Stretch="UniformToFill"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
<!-- ... existing XAML ... -->
Perhatikan bahwa cara ini mengasumsikan Bahwa Anda memiliki antarmuka obrolan dengan TextBox
dan Button
; lihat Cara menambahkan penyelesaian obrolan OpenAI ke aplikasi desktop WinUI 3 / SDK Aplikasi Windows Anda.
Menerapkan pembuatan gambar DALL-E
Di Anda MainWindow.xaml.cs
, tambahkan metode berikut untuk menangani pembuatan dan tampilan gambar:
// ... existing using statements ...
private async void SendButton_Click(object sender, RoutedEventArgs e)
{
ResponseProgressBar.Visibility = Visibility.Visible;
string userInput = InputTextBox.Text;
if (!string.IsNullOrEmpty(userInput))
{
InputTextBox.Text = string.Empty;
var imageResult = await openAiService.Image.CreateImage(new ImageCreateRequest
{
Prompt = userInput,
N = 2,
Size = StaticValues.ImageStatics.Size.Size256, // StaticValues is available as part of the Betalgo OpenAI SDK
ResponseFormat = StaticValues.ImageStatics.ResponseFormat.Url,
User = "TestUser"
});
if (imageResult.Successful)
{
foreach (var imageUrl in imageResult.Results.Select(r => r.Url))
{
AddImageMessageToConversation(imageUrl);
}
}
else
{
AddMessageToConversation("GPT: Sorry, something bad happened: " + imageResult.Error?.Message);
}
}
ResponseProgressBar.Visibility = Visibility.Collapsed;
}
private void AddImageMessageToConversation(string imageUrl)
{
var imageMessage = new MessageItem
{
ImageUrl = imageUrl
};
ConversationList.Items.Add(imageMessage);
}
Metode openAiService.Image.CreateImage()
ini bertanggung jawab untuk memanggil API DALL-E OpenAI. Lihat wiki Betalgo OpenAI SDK untuk contoh penggunaan lainnya.
Perhatikan keberadaan ImageUrl
di MessageItem
kelas . Ini adalah properti baru:
public class MessageItem
{
public string Text { get; set; }
public SolidColorBrush Color { get; set; }
public string ImageUrl { get; set; } // new
}
Jalankan dan uji
Jalankan aplikasi Anda, masukkan perintah, dan klik tombol "Hasilkan Gambar". Anda seharusnya melihat sesuatu seperti berikut:
Rekap
Dalam panduan ini, Anda telah mempelajari cara:
- Terima perintah gambar dari pengguna dalam
<TextBox>
. - Hasilkan gambar menggunakan OPENAI DALL-E API.
- Tampilkan gambar dalam
<Image>
.
Terkait
Windows developer