Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этом кратком руководстве описано, как создать консольное приложение чата искусственного интеллекта .NET, которое подключается к модели ИИ с включенным локальным вызовом функций. Приложение использует библиотеку Microsoft.Extensions.AI, чтобы можно было писать код с помощью абстракций ИИ, а не конкретного пакета SDK. Абстракции искусственного интеллекта позволяют изменять базовую модель ИИ с минимальными изменениями кода.
Необходимые условия
- Пакет SDK для .NET 8.0 или более поздней версии. Установите пакет SDK для .NET 8.0.
- Ключ API из OpenAI, чтобы запустить этот пример.
Необходимые условия
- Пакет SDK для .NET 8.0 или более поздней версии: Установить пакет SDK для .NET 8.
- Подписка Azure — Создайте её бесплатно.
- Интерфейс командной строки разработчика Azure (необязательно) — установить или обновить интерфейс командной строки разработчика Azure.
Создание приложения
Выполните следующие действия, чтобы создать консольное приложение .NET для подключения к модели ИИ.
В пустом каталоге на компьютере используйте команду
dotnet newдля создания нового консольного приложения:dotnet new console -o FunctionCallingAIИзмените каталог в папку приложения:
cd FunctionCallingAIУстановите необходимые пакеты:
dotnet add package Azure.Identity dotnet add package Azure.AI.OpenAI dotnet add package Microsoft.Extensions.AI dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecretsdotnet add package Microsoft.Extensions.AI dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecretsОткройте приложение в Visual Studio Code или выбранный редактор
code .
Создание службы ИИ
Чтобы подготовить службу и модель Azure OpenAI, выполните действия, описанные в статье "Создание и развертывание ресурса Службы OpenAI Azure ".
В терминале или командной строке перейдите в корневой каталог проекта.
Выполните следующие команды, чтобы настроить конечную точку и имя модели Azure OpenAI для примера приложения:
dotnet user-secrets init dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-Azure-OpenAI-endpoint> dotnet user-secrets set AZURE_OPENAI_GPT_NAME <your-Azure-OpenAI-model-name> dotnet user-secrets set AZURE_OPENAI_API_KEY <your-Azure-OpenAI-key>
Настройка приложения
Перейдите в корневой каталог проекта .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 добавьте следующий код для подключения и аутентификации к модели ИИ. Элемент
ChatClientтакже настроен для использования вызова функции, что позволяет ИИ-модели вызывать функции .NET в вашем коде.IConfigurationRoot config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string endpoint = config["AZURE_OPENAI_ENDPOINT"]; string deployment = config["AZURE_OPENAI_GPT_NAME"]; string apiKey = config["AZURE_OPENAI_API_KEY"]; IChatClient client = new ChatClientBuilder( new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(apiKey)) .GetChatClient(deployment).AsIChatClient()) .UseFunctionInvocation() .Build();using Microsoft.Extensions.AI; using Microsoft.Extensions.Configuration; using OpenAI; IConfigurationRoot config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string? model = config["ModelName"]; string? key = config["OpenAIKey"]; IChatClient client = new ChatClientBuilder(new OpenAIClient(key).GetChatClient(model ?? "gpt-4o").AsIChatClient()) .UseFunctionInvocation() .Build();Создайте новый объект
ChatOptions, содержащий встроенную функцию, которую модель искусственного интеллекта может вызывать для получения информации о текущей погоде. Объявление функции включает делегат для выполнения логики, а также параметры имени и описания, описывающие назначение функции модели ИИ.// Add a new plugin with a local .NET function // that should be available to the AI model. var chatOptions = new ChatOptions { Tools = [AIFunctionFactory.Create((string location, string unit) => { // Here you would call a weather API // to get the weather for the location. return "Periods of rain or drizzle, 15 C"; }, "get_current_weather", "Gets the current weather in a given location")] };Добавьте системный запрос в
chatHistory, чтобы предоставить модели контекст и инструкции. Отправьте пользователю запрос с вопросом, который требует от модели ИИ вызвать зарегистрированную функцию, чтобы правильно ответить на этот вопрос.// System prompt to provide context. List<ChatMessage> chatHistory = [new(ChatRole.System, """ You are a hiking enthusiast who helps people discover fun hikes in their area. You are upbeat and friendly. """)]; // Weather conversation relevant to the registered function. chatHistory.Add(new ChatMessage(ChatRole.User, "I live in Montreal and I'm looking for a moderate intensity hike. What's the current weather like?")); Console.WriteLine($"{chatHistory.Last().Role} >>> {chatHistory.Last()}"); ChatResponse response = await client.GetResponseAsync(chatHistory, chatOptions); Console.WriteLine($"Assistant >>> {response.Text}");Используйте команду
dotnet runдля запуска приложения:dotnet runПриложение выводит ответ завершения из модели ИИ, которая включает данные, предоставляемые функцией .NET. Модель искусственного интеллекта поняла, что зарегистрированная функция доступна и автоматически вызывает ее для создания правильного ответа.
Очистка ресурсов
Если они больше не нужны, удалите ресурс Azure OpenAI и развертывание модели GPT-4.
- На портале Azureперейдите к ресурсу Azure OpenAI.
- Выберите ресурс Azure OpenAI и выберите Удалить.