|
3 | 3 | import pytest
|
4 | 4 |
|
5 | 5 | import semantic_kernel as sk
|
| 6 | +from semantic_kernel.core_skills.math_skill import MathSkill |
6 | 7 | from semantic_kernel.core_skills.text_skill import TextSkill
|
7 | 8 | from semantic_kernel.planning import Plan
|
8 | 9 |
|
@@ -180,3 +181,33 @@ async def test_invoke_multi_step_plan_async():
|
180 | 181 | plan.add_steps([new_step, new_step2])
|
181 | 182 | result = await plan.invoke_async(context=context)
|
182 | 183 | assert result.result == "HELLO WORLD"
|
| 184 | + |
| 185 | + |
| 186 | +@pytest.mark.asyncio |
| 187 | +async def test_invoke_multi_step_plan_async_with_variables(): |
| 188 | + # create a kernel |
| 189 | + kernel = sk.Kernel() |
| 190 | + |
| 191 | + # import test (text) skill |
| 192 | + skill = MathSkill() |
| 193 | + skill_config_dict = kernel.import_skill(skill, "math") |
| 194 | + test_function = skill_config_dict["Add"] |
| 195 | + test_function2 = skill_config_dict["Subtract"] |
| 196 | + |
| 197 | + plan = Plan(name="test") |
| 198 | + |
| 199 | + # setup context for step 1 |
| 200 | + context1 = kernel.create_new_context() |
| 201 | + context1["amount"] = "10" |
| 202 | + new_step = Plan(name="test", function=test_function, parameters=context1._variables) |
| 203 | + |
| 204 | + # setup context for step 2 |
| 205 | + context2 = kernel.create_new_context() |
| 206 | + context2["amount"] = "5" |
| 207 | + new_step2 = Plan( |
| 208 | + name="test", function=test_function2, parameters=context2._variables |
| 209 | + ) |
| 210 | + |
| 211 | + plan.add_steps([new_step, new_step2]) |
| 212 | + result = await plan.invoke_async(input="2") |
| 213 | + assert result.result == "7" |
0 commit comments