Подключение и запрос модели ИИ с помощью .NET
Из этого краткого руководства вы узнаете, как создать консольное приложение чата .NET для подключения к модели OpenAI или Azure OpenAI. Приложение использует библиотеку Microsoft.Extensions.AI
, чтобы можно было писать код с помощью абстракций ИИ, а не конкретного пакета SDK. Абстракции искусственного интеллекта позволяют изменять базовую модель ИИ с минимальными изменениями кода.
Примечание.
Библиотека Microsoft.Extensions.AI
в настоящее время находится в предварительной версии.
Необходимые компоненты
- Пакет SDK для .NET 8.0. Установите пакет SDK для .NET 8.0.
- Ключ API из OpenAI, чтобы можно было запустить этот пример.
- В Windows требуется PowerShell
v7+
. Чтобы проверить версию, запуститеpwsh
в терминале. Он должен возвращать текущую версию. Если он возвращает ошибку, выполните следующую команду:dotnet tool update --global PowerShell
Необходимые компоненты
- Пакет SDK для .NET 8. Установите пакет SDK для .NET 8.
- Подписка Azure — создайте бесплатную учетную запись.
- Доступ к службе Azure OpenAI.
- Интерфейс командной строки разработчика Azure (необязательно). Установите или обновите интерфейс командной строки разработчика Azure.
Примечание.
Вы также можете использовать семантические ядра для выполнения задач, описанных в этой статье. Семантический ядро — это упрощенный пакет SDK с открытым исходным кодом, который позволяет создавать агенты ИИ и интегрировать последние модели ИИ в приложения .NET.
Клонирование примера репозитория
Вы можете создать собственное приложение, выполнив действия, описанные в разделах, или клонировать репозиторий GitHub, содержащий готовые примеры приложений для всех кратких руководств. Если вы планируете использовать Azure OpenAI, пример репозитория также структурирован как шаблон интерфейса командной строки разработчика Azure, который может подготовить ресурс Azure OpenAI для вас.
git clone https://github.com/dotnet/ai-samples.git
Создание приложения
Выполните следующие действия, чтобы создать консольное приложение .NET для подключения к модели ИИ.
В пустом каталоге на компьютере используйте
dotnet new
команду для создания нового консольного приложения:dotnet new console -o ExtensionsAI
Измените каталог в папку приложения:
cd ExtensionsAI
Установите необходимые пакеты.
dotnet add package Azure.Identity dotnet add package Azure.AI.OpenAI dotnet add package Microsoft.Extensions.AI.OpenAI dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecrets
dotnet add package OpenAI dotnet add package Microsoft.Extensions.AI.OpenAI dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecrets
Откройте приложение в Коде Visual Studio или в выбранном редакторе
code .
Создание службы ИИ
Пример репозитория GitHub структурирован как шаблон интерфейса командной строки разработчика Azure (azd
), который azd
можно использовать для подготовки службы и модели Azure OpenAI.
В терминале или командной строке перейдите в
src\quickstarts\azure-openai
каталог примера репозитория.azd up
Выполните команду, чтобы подготовить ресурсы Azure OpenAI. Для создания службы Azure OpenAI и развертывания модели может потребоваться несколько минут.azd up
azd
также настраивает необходимые секреты пользователей для примера приложения, например конечную точку Azure OpenAI и имя модели.
Настройка приложения
Перейдите в корневой каталог projet .NET из терминала или командной строки.
Выполните следующие команды, чтобы настроить ключ API OpenAI в качестве секрета для примера приложения:
dotnet user-secrets init dotnet user-secrets set OpenAIKey <your-openai-key> dotnet user-secrets set ModelName <your-openai-model-name>
Добавление кода приложения
Приложение использует Microsoft.Extensions.AI
пакет для отправки и получения запросов в модель ИИ.
В файле Program.cs добавьте следующий код для подключения и проверки подлинности в модели ИИ.
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.AI; using Azure.AI.OpenAI; using Azure.Identity; var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string endpoint = config["AZURE_OPENAI_ENDPOINT"]; string deployment = config["AZURE_OPENAI_GPT_NAME"]; IChatClient client = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()) .AsChatClient(deployment);
Примечание.
DefaultAzureCredential выполняет поиск учетных данных проверки подлинности из локального инструмента. Если вы не используете
azd
шаблон для подготовки ресурса Azure OpenAI, вам потребуется назначитьAzure AI Developer
роль учетной записи, которую вы использовали для входа в Visual Studio или Azure CLI. Дополнительные сведения см. в статье "Аутентификация в службах ИИ Azure" с помощью .NET.using Microsoft.Extensions.AI; using Microsoft.Extensions.Configuration; using OpenAI; var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string model = config["ModelName"]; string key = config["OpenAIKey"]; // Create the IChatClient IChatClient client = new OpenAIClient(key).AsChatClient(model);
Считывайте содержимое
benefits.md
файла и используйте его для создания запроса модели. Запрос указывает модели суммировать текстовое содержимое файла.// Create and print out the prompt string prompt = $""" summarize the the following text in 20 words or less: {File.ReadAllText("benefits.md")} """; Console.WriteLine($"user >>> {prompt}");
InvokePromptAsync
Вызовите функцию, чтобы отправить запрос модели, чтобы создать ответ.// Submit the prompt and print out the response ChatCompletion response = await client.CompleteAsync(prompt, new ChatOptions { MaxOutputTokens = 400 }); Console.WriteLine($"assistant >>> {response}");
dotnet run
Используйте команду для запуска приложения:dotnet run
Приложение выводит ответ завершения из модели ИИ. Настройте текстовое содержимое
benefits.md
файла или длину сводки, чтобы увидеть различия в ответах.
Очистка ресурсов
Если вам больше не нужен пример приложения или ресурсов, удалите соответствующее развертывание и все ресурсы.
azd down