Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto rychlém startu vytvoříte chatovací aplikaci AI konzoly .NET, která se připojí k modelu AI s povoleným voláním místních funkcí. Aplikace používá knihovnu Microsoft.Extensions.AI, abyste mohli psát kód pomocí abstrakcí AI místo konkrétní sady SDK. Abstrakce AI umožňují změnit základní model AI s minimálními změnami kódu.
Požadavky
- SDK .NET 8.0 nebo novější – Nainstalujte SDK .NET 8.0.
- Klíč rozhraní API z OpenAI, abyste mohli tuto ukázku spustit.
Požadavky
- .NET 8.0 SDK nebo novější – Nainstalujte sadu .NET 8 SDK.
- Předplatné Azure – Vytvořte zdarma.
- Azure Developer CLI (volitelné) – Instalace nebo aktualizace Azure Developer CLI.
Vytvoření aplikace
Provedením následujících kroků vytvořte konzolovou aplikaci .NET pro připojení k modelu AI.
V prázdném adresáři v počítači pomocí příkazu
dotnet newvytvořte novou konzolovou aplikaci:dotnet new console -o FunctionCallingAIZměňte adresář do složky aplikace:
cd FunctionCallingAINainstalujte požadované balíčky:
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.UserSecretsOtevřete aplikaci v editoru Visual Studio Code nebo v editoru podle svého výběru.
code .
Vytvoření služby AI
Pokud chcete zřídit službu a model Azure OpenAI, proveďte kroky v článku Vytvoření a nasazení prostředku služby Azure OpenAI .
Z terminálu nebo příkazového řádku přejděte do kořenového adresáře projektu.
Spuštěním následujících příkazů nakonfigurujte koncový bod Azure OpenAI a název modelu pro ukázkovou aplikaci:
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>
Konfigurace aplikace
V terminálu nebo příkazovém řádku přejděte do kořenového adresáře projektu .NET.
Spuštěním následujících příkazů nakonfigurujte klíč rozhraní API OpenAI jako tajný klíč pro ukázkovou aplikaci:
dotnet user-secrets init dotnet user-secrets set OpenAIKey <your-OpenAI-key> dotnet user-secrets set ModelName <your-OpenAI-model-name>
Přidání kódu aplikace
Aplikace používá balíček Microsoft.Extensions.AI k odesílání a přijímání požadavků na model AI.
Do souboru Program.cs přidejte následující kód pro připojení a ověření modelu AI. Element
ChatClientje také nakonfigurován tak, aby používal vyvolání funkcí, což umožňuje modelu AI volat funkce .NET ve vašem kódu.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();Vytvořte nový objekt
ChatOptions, který obsahuje vloženou funkci, kterou model AI může volat za účelem získání aktuálního počasí. Deklarace funkce obsahuje delegáta ke spuštění logiky a parametry názvu a popisu, které popisují účel funkce modelu 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")] };Přidejte systémovou výzvu do
chatHistory, která poskytne modelu kontext a pokyny. Odešle výzvu uživatele s dotazem, který vyžaduje, aby model AI volal zaregistrovanou funkci, aby správně odpověděl na otázku.// 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}");Ke spuštění aplikace použijte příkaz
dotnet run:dotnet runAplikace vytiskne odpověď na dokončení z modelu AI, která obsahuje data poskytovaná funkcí .NET. Model AI pochopil, že registrovaná funkce byla k dispozici a volala ji automaticky, aby vygenerovala správnou odpověď.
Vyčistěte prostředky
Pokud už je nepotřebujete, odstraňte prostředek Azure OpenAI a odeberte nasazený model GPT-4.
- Na webu Azure Portalpřejděte k prostředku Azure OpenAI.
- Vyberte prostředek Azure OpenAI a pak vyberte Odstranit.