{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Setup\n", "\n", "**Step 1**: Import Semantic Kernel SDK from pypi.org\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "!python -m pip install semantic-kernel==1.0.3" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from semantic_kernel import Kernel\n", "\n", "kernel = Kernel()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Configure the service you'd like to use via the `Service` Enum.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from services import Service\n", "\n", "# Select a service to use for this notebook (available services: OpenAI, AzureOpenAI, HuggingFace)\n", "selectedService = Service.AzureOpenAI" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Option 1: using OpenAI\n", "\n", "**Step 2**: Add your [OpenAI Key](https://openai.com/product/) key to either your environment variables or to the `.env` file in the same folder (org Id only if you have multiple orgs):\n", "\n", "```\n", "OPENAI_API_KEY=\"sk-...\"\n", "OPENAI_ORG_ID=\"\"\n", "```\n", "The environment variables names should match the names used in the `.env` file, as shown above.\n", "\n", "If using the `.env` file, please configure the `env_file_path` parameter with a valid path when creating the ChatCompletion class:\n", "\n", "```\n", "chat_completion = OpenAIChatCompletion(service_id=\"test\", env_file_path=)\n", "```\n", "\n", "Use \"keyword arguments\" to instantiate an OpenAI Chat Completion service and add it to the kernel:\n", "\n", "## Option 2: using Azure OpenAI\n", "\n", "**Step 2**: Add your [Azure Open AI Service key](https://learn.microsoft.com/azure/cognitive-services/openai/quickstart?pivots=programming-language-studio) settings to either your system's environment variables or to the `.env` file in the same folder:\n", "\n", "```\n", "AZURE_OPENAI_API_KEY=\"...\"\n", "AZURE_OPENAI_ENDPOINT=\"https://...\"\n", "AZURE_OPENAI_CHAT_DEPLOYMENT_NAME=\"...\"\n", "AZURE_OPENAI_TEXT_DEPLOYMENT_NAME=\"...\"\n", "AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME=\"...\"\n", "```\n", "The environment variables names should match the names used in the `.env` file, as shown above.\n", "\n", "If using the `.env` file, please configure the `env_file_path` parameter with a valid path when creating the ChatCompletion class:\n", "\n", "```\n", "chat_completion = AzureChatCompletion(service_id=\"test\", env_file_path=)\n", "```\n", "\n", "Use \"keyword arguments\" to instantiate an Azure OpenAI Chat Completion service and add it to the kernel:\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "service_id = None\n", "if selectedService == Service.OpenAI:\n", " from semantic_kernel.connectors.ai.open_ai import OpenAIChatCompletion\n", "\n", " service_id = \"default\"\n", " kernel.add_service(\n", " OpenAIChatCompletion(service_id=service_id, ai_model_id=\"gpt-3.5-turbo-1106\"),\n", " )\n", "elif selectedService == Service.AzureOpenAI:\n", " from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion\n", "\n", " service_id = \"default\"\n", " kernel.add_service(\n", " AzureChatCompletion(service_id=service_id),\n", " )" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Run a Semantic Function\n", "\n", "**Step 3**: Load a Plugin and run a semantic function:\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plugin = kernel.add_plugin(parent_directory=\"../../../prompt_template_samples/\", plugin_name=\"FunPlugin\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from semantic_kernel.functions import KernelArguments\n", "\n", "joke_function = plugin[\"Joke\"]\n", "\n", "joke = await kernel.invoke(\n", " joke_function,\n", " KernelArguments(input=\"time travel to dinosaur age\", style=\"super silly\"),\n", ")\n", "print(joke)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.9" } }, "nbformat": 4, "nbformat_minor": 2 }