Rogapp
Как подключить ChatGPT к приложению на MAUI
Простая интеграция

Интеграция ChatGPT в .NET MAUI-приложение

С помощью OpenAI API можно подключить умный чат-бот на базе ChatGPT прямо в ваше мобильное MAUI-приложение. Такой бот может помогать пользователю, выполнять команды, отвечать на вопросы и многое другое.
Что потребуется:
✅ Аккаунт на https://platform.openai.com
💳 Пополненный баланс — без этого API не будет работать!
🔑 API-ключ OpenAI (создаётся в личном кабинете)
📦 Проект .NET MAUI (.NET 8 или выше)
🌐 NuGet-пакеты:
  • System.Net.Http.Json (обычно уже в составе .NET)
  • При необходимости — Newtonsoft.Json или System.Text.Json
UI-интерфейс (MainPage.xaml)
<ContentPage ... Title="Чат с ChatGPT">
 <VerticalStackLayout Padding="20">
 <Label Text="Введите сообщение:" FontSize="20" HorizontalOptions="Center" />
 <Entry x:Name="UserInputEntry" Placeholder="Введите сообщение здесь" />
 <Button x:Name="SendButton" Text="Отправить" Clicked="OnSendClicked" />
 <Label x:Name="ResponseLabel" Text="Ответ появится здесь" FontSize="18"
 HorizontalOptions="Center" VerticalOptions="CenterAndExpand" />
 </VerticalStackLayout>
</ContentPage>
Логика взаимодействия с API (MainPage.xaml.cs)
using OpenAI;
using OpenAI.Chat;

public partial class MainPage : ContentPage
{
    private OpenAIClient _chatGptClient;

    public MainPage()
    {
        InitializeComponent();
        this.Loaded += MainPage_Loaded;
    }

    private void MainPage_Loaded(object sender, EventArgs e)
    {
        var openAiKey = "sk-..."; // Вставьте свой ключ OpenAI
        if (string.IsNullOrEmpty(openAiKey))
        {
            DisplayAlert("Ошибка", "API-ключ не указан", "OK");
            return;
        }

        _chatGptClient = new OpenAIClient(openAiKey);
    }

    private async void OnSendClicked(object sender, EventArgs e)
    {
        if (_chatGptClient == null)
        {
            await DisplayAlert("Ошибка", "Клиент OpenAI не инициализирован", "OK");
            return;
        }

        string prompt = UserInputEntry.Text;
        if (string.IsNullOrWhiteSpace(prompt))
        {
            await DisplayAlert("Ошибка", "Введите сообщение", "OK");
            return;
        }

        try
        {
            var client = _chatGptClient.GetChatClient("gpt-4o");
            var response = await client.CompleteChatAsync(prompt);
            ResponseLabel.Text = response.Value.Content.Trim();
        }
        catch (Exception ex)
        {
            await DisplayAlert("Ошибка", ex.Message, "OK");
        }
    }
}
Важно знать:
💳 OpenAI API — платный сервис.
Даже если у вас есть API-ключ, он не будет работать, пока не пополнен баланс.
Перейдите по ссылке и пополните счёт:
https://platform.openai.com/account/billing
Советы:
  • Вы можете использовать модель gpt-3.5-turbo, gpt-4 или gpt-4o — она указывается как параметр GetChatClient("gpt-4o").
  • Храните ключ в SecureStorage или Environment.GetEnvironmentVariable, если не хотите хардкодить его.
  • Можно добавить историю сообщений (List<ChatMessage>), чтобы бот «помнил» диалог