Enhancing AI Orchestration: Strategies for Effective Presentations
Written on
Chapter 1: Introduction to AI Orchestration
In our prior discussion—'Creating a Problem-Solving AI Plugin Utilizing Semantic Kernel and OpenAI'—we explored how to harness the capabilities of Semantic Kernel along with OpenAI to develop our Problem Solving Plugin. This tool enhances our problem-solving abilities and improves client interactions.
In this article, we will delve into achieving our objectives through AI orchestration, specifically by integrating Semantic Kernel's Sequential Planner, OpenAI's ChatGPT, and AI Plugins. We have an important strategic meeting approaching, and our challenge is to analyze a Business Problem Statement and prepare an engaging presentation.
Our primary objective is to craft a persuasive presentation addressing a Business Issue for the upcoming strategic meeting.
To achieve this goal, we will follow several key steps:
Section 1.1: Problem Solving Steps
Step 1: Define the Problem
First, we will scrutinize the Problem Statement to identify the underlying causes.
Step 2: Identify Alternative Solutions
Next, we will brainstorm various solutions to tackle the root causes of the identified issues.
Step 3: Evaluate Solutions
In this step, we will weigh the pros and cons of each proposed alternative. We will assess each option based on required resources, including time, data, personnel, and budget.
Step 4: Create a Mind Map
This step involves developing a mind map by dissecting the Problem Statement into its components:
- Problem Statement
- Causes of the Problem
- Effects of the Problem and Potential Impacts on Customers
- Potential Solutions — Quick Wins
- Potential Solutions — Long-term Strategies
- Recommended Actions
- Areas for Improvement
- Benefits of Improvement
Step 5: Create an Engaging Presentation
Using the mind map from Step 4, we will build a compelling presentation. We will construct our AI Assistant based on the aforementioned multi-step plan to achieve our goal of creating an impactful presentation.
Section 1.2: Building the AI Assistant
To develop our AI Assistant, we will utilize:
- Semantic Kernel's Sequential Planner, which is an advanced planning tool capable of executing a series of steps and passing outputs as needed.
- OpenAI's ChatGPT — Text Completion and Generation Services.
- AI Plugins — We will implement two plugins:
- Problem Solving AI Plugin for the problem-solving steps.
- ReportGenie AI Plugin for the mind mapping and presentation phases.
We will create the ReportGenie AI Plugin.
Step 1: Setting Up the ReportGenie AI Plugin
- Create a directory for the Report Genie Plugin, ensuring to have separate folders for Mind Map and Presentation:
Plugins-skReportGenie
Plugins-skReportGenieMindMap
Plugins-skReportGeniePresentation
- Configure the necessary JSON and prompt template files within each folder as follows:
Plugins-skReportGenieMindMapconfig.json
Plugins-skReportGenieMindMapskprompt.txt
Mind Map Configuration Example:
{
"schema": 1,
"description": "Generate a mind map based on the provided problem statement.",
"type": "completion",
"completion": {
"max_tokens": 1000,
"temperature": 0.9,
"top_p": 0.5,
"presence_penalty": 0.0,
"frequency_penalty": 0.0
},
"input": {
"parameters": [
{
"name": "input",
"description": "Mind map for the given problem statement.",
"defaultValue": ""
}
]
}
}
Mind Map Prompt Example:
You are skilled at creating mind maps by segmenting topics into smaller components.
{{$input}}
Your task is to:
- Identify the Causes of the Problem
- Determine the Effects of the Problem and the potential impact on customers
- Suggest Potential Solutions categorized as Quick Wins and Long-term Strategies
- Outline Necessary Actions
- Identify Areas for Improvement
- Highlight Benefits of Improvement
Presentation Configuration Example:
{
"schema": 1,
"description": "Create a presentation derived from the mind map of the problem statement.",
"type": "completion",
"completion": {
"max_tokens": 1000,
"temperature": 0.9,
"top_p": 0.5,
"presence_penalty": 0.0,
"frequency_penalty": 0.0
},
"input": {
"parameters": [
{
"name": "input",
"description": "Presentation derived from the mind map.",
"defaultValue": ""
}
]
}
}
Presentation Prompt Example:
You are an expert in crafting engaging presentations.
{{$input}}
Your task is to formulate a presentation from the mind map:
The presentation should follow this structure:
- Page 1: Title and Summary
- Page 2: The Problem
- Page 3: Causes and Effects of the Problem
- Page 4: Potential Impact on Customers
- Page 5: Suggested Solutions — Quick Wins vs. Long-term Strategies
- Page 6: Recommended Actions
- Page 7: Areas for Improvement and Benefits
Section 1.3: Execution Steps
Now, we will dive into the steps to create our AI Assistant using a multi-step plan by establishing a Kernel, preparing it, configuring the Sequential Planner, and orchestrating our AI Plugins to accomplish the goal of crafting an engaging presentation.
Step 2: Install Required Packages
Begin by installing the necessary libraries and system dependencies:
pip install semantic-kernel
pip install openai
pip install python-dotenv
Step 3: Import Required Libraries
import semantic_kernel as sk
from semantic_kernel.connectors.ai.open_ai import OpenAIChatCompletion, OpenAITextEmbedding
from IPython.display import display, Markdown
Step 4: Set Up the Kernel
For this step, we will utilize the LLM model gpt-3.5-turbo-0301. You'll need the OpenAI Org ID and API Key, which can be sourced from your environment variables.
kernel = sk.Kernel()
kernel.add_text_completion_service("openai", OpenAIChatCompletion("gpt-3.5-turbo-0301", api_key, org_id))
kernel.add_text_embedding_generation_service("openaiembedding", OpenAITextEmbedding("text-embedding-ada-002", api_key, org_id))
print("Kernel created, Text Completion and Text Embedding Generation Services added.")
Step 5: Import Skills into the Kernel
In this step, we will incorporate the Problem Solving AI Plugin and Report Genie Plugin into the Kernel.
pluginsDirectory = "../Plugins-sk" # Path to Plugins Directory
ProblemSolving_plugin = kernel.import_semantic_skill_from_directory(pluginsDirectory, "ProblemSolving")
ReportGenie_plugin = kernel.import_semantic_skill_from_directory(pluginsDirectory, "ReportGenie")
Step 6: Set Up the Sequential Planner
Here, we will import the necessary libraries and configure the Sequential Planner for orchestrating the Problem Solving and Report Genie Plugins.
from semantic_kernel.planning import SequentialPlanner
from semantic_kernel.planning.sequential_planner.sequential_planner_config import SequentialPlannerConfig
planner = SequentialPlanner(kernel)
Step 7: Establish the Goal
Next, we will define the goal for the Sequential Planner.
# Business Problem Statement
problemst = """The average customer service wait and on-hold time for the company exceeds five minutes during both its busy and slow seasons."""
# Define the Goal
ask = f"""
For the upcoming strategic meeting, need your help with:
Define the Problem, Identify Alternative Solutions, Evaluate Solutions,
Create a Mindmap, Create a Presentation using the Mindmap for addressing the problem statement:
{problemst}
"""
print(ask)
Step 8: Generate the Multi-step Plan
We will create a multi-step plan asynchronously based on the defined goal.
plan = await planner.create_plan_async(goal=ask)
print(plan)
print(plan._steps)
Step 9: Execute the Generated Plan
Finally, we will execute the generated plan and observe the results.
result = await plan.invoke_async()
for index, step in enumerate(plan._steps):
print(f"✅ Step {index+1} used function {step._function.name}")
trace_resultp = True # for tracing the execution path
display(Markdown(f"## ✨ Generated result from the ask: {ask}nn---n{result}"))
Chapter 2: Conclusion
Our AI Assistant has successfully executed the multi-step plan and orchestrated the AI Plugins to address the specified problem statement. We can experiment with various scenarios to refine our goal through our AI Assistant, which can help in formulating a multi-step executable plan.
Wishing you success in preparing for your upcoming strategic meetings!
Happy strategizing!
If you have any inquiries, feel free to connect with me on LinkedIn.
Key Considerations for Optimal Results
- Be mindful of the LLM model selection, usage, and associated costs as per OpenAI's rate limit guidelines.
- Understand the capabilities and limitations of Semantic Kernel, and consult its documentation for best practices.
The first video, "Semantic Kernel: AI Orchestration for Intelligent Apps," features insights from Bruno Borges and John Oliver on utilizing Semantic Kernel for effective AI application orchestration.
The second video, "Creating Your First ChatGPT Plugin with Semantic Kernel," featuring Matthew Bolanos, guides you through the process of developing a ChatGPT plugin using Semantic Kernel.