Skip to content

Commit a6d5a5a

Browse files
committed
Fix bug and return chosen plugin name.
1 parent 6181ccc commit a6d5a5a

2 files changed

Lines changed: 10 additions & 5 deletions

File tree

dotnet/src/SemanticKernel.Core/Memory/AIContextExtensions.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ public static class AIContextExtensions
1919
/// <param name="plugins">The plugins collection to register the <see cref="AIFunction"/> objects on.</param>
2020
/// <param name="aiContext">The <see cref="AIContext"/> to get plugins from.</param>
2121
/// <param name="pluginName">The name to give to the plugin. This will be appended with _x where x is an ascending number, until a unique plugin name is found.</param>
22-
public static void AddFromAIContext(this ICollection<KernelPlugin> plugins, AIContext aiContext, string pluginName)
22+
/// <returns>The chosen plugin name.</returns>
23+
public static string AddFromAIContext(this ICollection<KernelPlugin> plugins, AIContext aiContext, string pluginName)
2324
{
2425
if (aiContext.AIFunctions is { Count: > 0 })
2526
{
@@ -29,10 +30,12 @@ public static void AddFromAIContext(this ICollection<KernelPlugin> plugins, AICo
2930
// Find a unique plugin name by appending a counter if necessary.
3031
while (plugins.Any(x => x.Name == pluginName))
3132
{
32-
pluginName = $"{originalPluginName}_{counter}";
33+
pluginName = $"{originalPluginName}_{counter++}";
3334
}
3435

3536
plugins.AddFromFunctions(pluginName, aiContext.AIFunctions.Select(x => x.AsKernelFunction()));
3637
}
38+
39+
return pluginName;
3740
}
3841
}

dotnet/src/SemanticKernel.UnitTests/Memory/AIContextProviderTests.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,13 @@ public void ExtensionCanAddPluginsFromAIContextProvider()
8080
}
8181
};
8282

83-
plugins.AddFromAIContext(aiContext, "TestPlugin");
84-
plugins.AddFromAIContext(aiContext, "TestPlugin");
83+
Assert.Equal("TestPlugin", plugins.AddFromAIContext(aiContext, "TestPlugin"));
84+
Assert.Equal("TestPlugin_1", plugins.AddFromAIContext(aiContext, "TestPlugin"));
85+
Assert.Equal("TestPlugin_2", plugins.AddFromAIContext(aiContext, "TestPlugin"));
8586

86-
Assert.Equal(2, plugins.Count);
87+
Assert.Equal(3, plugins.Count);
8788
Assert.Contains(plugins, p => p.Name == "TestPlugin");
8889
Assert.Contains(plugins, p => p.Name == "TestPlugin_1");
90+
Assert.Contains(plugins, p => p.Name == "TestPlugin_2");
8991
}
9092
}

0 commit comments

Comments
 (0)