{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "#### Watch the Getting Started Quick Start [Video](https://aka.ms/SK-Getting-Started-Notebook)\n", "\n", "> [!IMPORTANT]\n", "> You will need an [.NET 8 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) and [Polyglot](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.dotnet-interactive-vscode) to get started with this notebook using .NET Interactive." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "**Step 1**: Configure your AI service credentials\n", "\n", "Use [this notebook](0-AI-settings.ipynb) first, to choose whether to run these notebooks with OpenAI or Azure OpenAI,\n", "and to save your credentials in the configuration file." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "// Load some helper functions, e.g. to load values from settings.json\n", "#!import config/Settings.cs " ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "**Step 2**: Import Semantic Kernel SDK from NuGet" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "// Import Semantic Kernel\n", "#r \"nuget: Microsoft.SemanticKernel, 1.23.0\"" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "**Step 3**: Instantiate the Kernel" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "using Microsoft.SemanticKernel;\n", "using Kernel = Microsoft.SemanticKernel.Kernel;\n", "\n", "//Create Kernel builder\n", "var builder = Kernel.CreateBuilder();" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "// Configure AI service credentials used by the kernel\n", "var (useAzureOpenAI, model, azureEndpoint, apiKey, orgId) = Settings.LoadFromFile();\n", "\n", "if (useAzureOpenAI)\n", " builder.AddAzureOpenAIChatCompletion(model, azureEndpoint, apiKey);\n", "else\n", " builder.AddOpenAIChatCompletion(model, apiKey, orgId);\n", "\n", "var kernel = builder.Build();" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "**Step 4**: Load and Run a Plugin" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "// FunPlugin directory path\n", "var funPluginDirectoryPath = Path.Combine(System.IO.Directory.GetCurrentDirectory(), \"..\", \"..\", \"prompt_template_samples\", \"FunPlugin\");\n", "\n", "// Load the FunPlugin from the Plugins Directory\n", "var funPluginFunctions = kernel.ImportPluginFromPromptDirectory(funPluginDirectoryPath);\n", "\n", "// Construct arguments\n", "var arguments = new KernelArguments() { [\"input\"] = \"time travel to dinosaur age\" };\n", "\n", "// Run the Function called Joke\n", "var result = await kernel.InvokeAsync(funPluginFunctions[\"Joke\"], arguments);\n", "\n", "// Return the result to the Notebook\n", "Console.WriteLine(result);" ] } ], "metadata": { "kernelspec": { "display_name": ".NET (C#)", "language": "C#", "name": ".net-csharp" }, "language_info": { "name": "polyglot-notebook" }, "polyglot_notebook": { "kernelInfo": { "defaultKernelName": "csharp", "items": [ { "aliases": [], "name": "csharp" } ] } } }, "nbformat": 4, "nbformat_minor": 2 }