Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przewodniku szybkiego startu utworzysz konsolową aplikację czatu AI w .NET, która łączy się z modelem sztucznej inteligencji z włączonym wywoływaniem funkcji lokalnej. Aplikacja używa biblioteki Microsoft.Extensions.AI, aby można było napisać kod przy użyciu abstrakcji sztucznej inteligencji, a nie określonego zestawu SDK. Abstrakcje sztucznej inteligencji umożliwiają zmianę bazowego modelu sztucznej inteligencji przy minimalnych zmianach kodu.
Wymagania wstępne
- Zestaw .NET 8.0 SDK lub nowszy — Zainstaluj zestaw .NET 8.0 SDK.
- Klucz API z OpenAI, aby uruchomić ten przykład.
Wymagania wstępne
- Zestaw .NET 8.0 SDK lub nowszy — Zainstaluj zestaw .NET 8 SDK.
- Subskrypcja platformy Azure — Utwórz bezpłatną subskrypcję.
- Interfejs wiersza polecenia dla deweloperów Azure (opcjonalnie) — Zainstaluj lub zaktualizuj interfejs wiersza polecenia dla deweloperów Azure.
Tworzenie aplikacji
Wykonaj poniższe kroki, aby utworzyć aplikację konsolową platformy .NET w celu nawiązania połączenia z modelem sztucznej inteligencji.
W pustym katalogu na komputerze użyj polecenia
dotnet new, aby utworzyć nową aplikację konsolową:dotnet new console -o FunctionCallingAIZmień katalog na folder aplikacji:
cd FunctionCallingAIZainstaluj wymagane pakiety:
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.UserSecretsOtwórz aplikację w programie Visual Studio Code lub wybranym edytorze
code .
Tworzenie usługi sztucznej inteligencji
Aby aprowizować usługę Azure OpenAI i model, wykonaj kroki opisane w artykule Tworzenie i wdrażanie zasobu usługi Azure OpenAI Service .
W terminalu lub wierszu polecenia przejdź do głównego katalogu projektu.
Uruchom następujące polecenia, aby skonfigurować punkt końcowy i nazwę modelu usługi Azure OpenAI dla przykładowej aplikacji:
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>
Konfigurowanie aplikacji
Przejdź do katalogu głównego projektu platformy .NET z poziomu terminalu lub wiersza polecenia.
Uruchom następujące polecenia, aby skonfigurować klucz API OpenAI jako sekret dla przykładowej aplikacji.
dotnet user-secrets init dotnet user-secrets set OpenAIKey <your-OpenAI-key> dotnet user-secrets set ModelName <your-OpenAI-model-name>
Dodawanie kodu aplikacji
Aplikacja używa Microsoft.Extensions.AI pakietu do wysyłania i odbierania żądań do modelu AI.
W pliku Program.cs dodaj następujący kod, aby nawiązać połączenie i uwierzytelnić się w modelu AI.
ChatClientjest również skonfigurowany do używania wywoływania funkcji, co pozwala modelowi AI na korzystanie z funkcji .NET w Twoim kodzie.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();Utwórz nowy
ChatOptionsobiekt, który zawiera funkcję śródliniową, którą model sztucznej inteligencji może wywołać, aby uzyskać bieżącą pogodę. Deklaracja funkcji zawiera delegata do uruchamiania logiki oraz parametry nazwy i opisu, aby przedstawić cel funkcji modelowi AI.// 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")] };Dodaj monit systemowy do elementu
chatHistory, aby podać kontekst i instrukcje do modelu. Wyślij monit użytkownika z pytaniem, które wymaga, aby model sztucznej inteligencji wywołał zarejestrowaną funkcję w celu poprawnego udzielenia odpowiedzi na pytanie.// 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}");Uruchom aplikację za pomocą polecenia
dotnet run:dotnet runAplikacja wyświetla odpowiedź ukończenia z modelu AI, który zawiera dane dostarczane przez funkcję .NET. Model sztucznej inteligencji zrozumiał, że zarejestrowana funkcja była dostępna i została wywołana automatycznie, aby wygenerować właściwą odpowiedź.
Czyszczenie zasobów
Jeśli już ich nie potrzebujesz, usuń zasób usługi Azure OpenAI oraz wdrożenie modelu GPT-4.
- W witrynie Azure Portalprzejdź do zasobu Azure OpenAI.
- Wybierz zasób Azure OpenAI, a następnie wybierz pozycję Usuń.